回答:
私はPhoneGapを使用していくつかのアプリケーションを作成しましたが、それが提供するものとしては素晴らしいです。私が指摘したいいくつかの簡単なメモがあります、それはあなたを助けるかもしれません。
Disable device-based features you're not using
加速度計、ジオロケーション機能はデフォルトでオンになっています。それらを使用していない場合はオフにします。アプリの読み込みが速くなり(初期化)、スムーズに実行されます。
onDeviceReady
-これは、phonegapがロードされて準備ができると呼び出されるメソッドです。$(document).readyまたはあなたが慣れていることは何でも、ここでは実際には適用されません-インターフェイス/ハードコードされたHTMLのものだけを実行している場合を除きます。GeoLocation などのiPhone機能とやり取りしている場合は、onDeviceReadyが呼び出された後にすべてを実行する必要があります。
Pick a UI/library
インターフェース/ライブラリー、jquery-mobile、sencha touch、jqtouchなどのオプションはたくさんあります。これらはそれぞれ独自のアプローチと機能セットを提供します。いくつかの調査を行って使用しますが、組み合わせることは避けてください。ここでいくつかのオプション、ツールについて読むことができます:http : //www.phonegap.com/tool(更新されたリンク)
Also, more on just mobile development in general, with PhoneGap
AndroidマーケットとiPhone App Storeを通じて配布されるアプリを作成する場合は、アプリの開発方法に関するガイドラインを網羅したリストを読んでみます。たとえば、上のツールリンクには、Easy APNSと呼ばれる「ツール/プラグイン」があります。これはAndroidには役立ちますが、iPhoneで技術的に実行可能ですが、Apple通知を使用する必要があると記載されているため、開発契約に違反しています。ネットワークなど。これは単なる例ですが、それが最終目標である場合、そのことを読むことで多くの頭痛の種を節約できます。
全体として、特にWeb開発のバックグラウンドを持っている場合は、軽量アプリに最適です。LocalStorage、GeoLocationなどは非常にうまく機能します。これが少しお役に立てば幸いです...そして質問する気分です。
追加編集:
それはあなたが何をしたいか、そしてあなたが何をする方法を知っているかにかかっていると本当に思います。Mattは、iOS向けのネイティブアプリの開発の方が優れているなどと指摘しました。そうすることを学ぶ時間と知識があれば、もちろんネイティブの方が優れています。しかし、PhoneGapは、既存のスキルセットを利用してアプリを構築できるWeb開発者向けに作られています。また、PhoneGapを使用すると、iOS、Android、Symbian、Palm、Blackberry用のアプリをすばやく構築できます。それぞれのコードベースを少し調整します。
PhoneGapで読んだ最高のパフォーマンスガイドは次のとおりです...しっかりした安定したパフォーマンスを確保するために注意すべきことがたくさんあります...しかし、一晩で読むことができます。
ここに最高のナゲットがあります:
http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
Sencha Touchのビデオパフォーマンスのヒント:http : //vimeo.com/17882927
Sencha Touchでのイベントの委任:すべての行に1人ではなく、1人のリスナーでリストを設計する方法 http://www.sencha.com/blog/event-delegation-in-sencha-touch/
Ext JS 4でアプリを設計する:http : //www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
Phonegapについて私の意見を述べる前に、私は決してWeb開発者ではないことを少し免責する必要があります。私にとって、JavaScriptとCSSを書くことは歯を引くようなものです。そうは言っても、Phonegapは好きではありません。
このフレームワークには、非常に魅力的な側面がいくつかあります。主に、「Write-Once-Run-Anywere」の魅力と「I-Don't-Have-To-Learn-Objective-C?」の魅力があります。アピール。このフレームワークでは、加速度計などのハードウェア機能の一部にアクセスすることもできます。これらはすべてある程度まで有効です。
とはいえ、優れたiOSアプリは、クロスプラットフォームフレームワークを使用して構築されたものではありません。非常に多くの非常に詳細なビューアニメーションカーブやスクロールバウンスなど、そこにないまで、多くのユーザーや開発者が見落とすまで、ネイティブUIKitコントロールによって処理される非常に繊細でエレガントなUIインタラクションが多数あります。 WebビューベースのUI。あなたはそれらを完全に再現するために苦労することができますが、その時間の投資のために、なぜ単にネイティブにならないのですか?
注意すべき2番目のポイントは、Phonegapで構築されたiOSアプリケーションのサポートコミュニティは、ネイティブで開発されたアプリケーションよりも大幅に小さいことです。プロジェクト中にコミュニティに依存する必要がある場合は、これによって一時停止することもできます。
結局、それはあなたが提供したい体験の質に帰着します。Phonegapでは上限が低くなります。開発時間の短縮と移植性の向上と引き換えに、優れていないユーザーエクスペリエンスを受け入れる準備ができている場合、それは非常に実行可能なフレームワークです。
興味のある人のためのサブテキストとして、マルコ・アーメントとダン・ベンジャミンは最近このトピックについて議論しました。こちらで聴くことができます。
インストール手順には、多数のパッケージ(Java、Apache Ant、Ruby、iOS SDK、Android SDK、およびPhoneGap自体)が含まれます。これらはすべて正しくインストールおよびセットアップする必要があります。これは大きな努力となるでしょう。公平に言うと、ベータ版にはPhoneGap Buildと呼ばれるものがあります。これにより、これがはるかに簡単になります。
NS Basic / App Studioで使用して、アプリストアの対象となるアプリを作成します。
ゲームやウィジェットを作成していない場合は、見栄えのするシンプルなアプリを選択するだけでよいので、電話ギャップを選択します。
ただし、JSには注意する必要があります。たとえば、アニメーションを実行する場合は、小さな間隔(100ミリ秒など)でタイマーを設定するのを避け、jqueryなどのアニメーションは避けてください。たとえば、短い時間のタイマーを設定してフェードをアニメートする代わりに、各ポイントで不透明度を段階的に減らします(これはjqueryのフェードが機能する方法です)、不透明度1から不透明度0へのcss3遷移を使用する必要があります。
私のアドバイスは、すべての電話ギャップがie6を実行しない後、zeptojs.comのようなもので行くことです:-)
JSをもっと軽くする方法に関するチュートリアルをチェックしてください
複数の異なるデバイス間で展開する場合、言及されていない1つの「問題」:デバイスが多いほど、学習曲線が大きくなります。PhoneGapを使用してiOSデバイスに展開するには、MacでのXcodeの基本を学ぶ必要があります。Androidにデプロイするには、EclipseやAndroid SDKなどをインストールして学習する必要があります。他のプラットフォームでは、独自のSDKを使用する必要があります。初歩的なXcode、Javascript、Javaを学ぶことで、エラーや一般的な構文を理解することができます。
「一度作成すれば、どこにでもデプロイできます」というステップはたくさんありません。