私の経験では、PhoneGap などのクロスプラットフォーム ソリューションは、開発しているアプリが非常に単純でない限り、決して期待に応えられません。これらのツールを使用すると、トランジショナル アニメーションや小さな UI の微調整などの基本的なことでさえ、困難な戦いになります。
ネイティブ開発には時間がかかる場合がありますが (複数のプラットフォーム用のアプリを構築している場合)、作成するものを完全に制御できるという利点があります。パフォーマンスの面では、ネイティブ開発は、ブラウザやその他の実行時解釈プラットフォーム内にネストされるオーバーヘッドがないという理由だけで、クロスプラットフォーム開発よりもはるかに先を行っています。
また、私の経験からすると、一度コードを書けばすぐにすべてのプラットフォームで動作するという神話は、一種の聖杯です。多くの人がそれを達成したと主張していますが、プラットフォーム固有のコード (「if Explorer、if safari、if chrome」など) を記述していることに常に気付くでしょう。
私のアドバイスは、アプリのしっかりしたアーキテクチャを作成することです。1 つのプラットフォームで一度アプリをビルドし、デザインのすべての不具合を解決してから、そのデザインを他のプラットフォームにコピーします。もう少し時間がかかりますが、アプリの強みと、アプリの機能やその他の小さなことを追加/変更する柔軟性は、それだけの価値があります.
例として、フェイスブックを取り上げます。彼らの以前のアプリ (覚えていれば) はクロスプラットフォーム アプリでした。遅く、応答がなく、常にクラッシュし、実際には使用できませんでした。約 1 年ほど前、数え切れないほどの苦情の後、彼らはネイティブ アプリのアップデートをリリースし、突然、これらの問題はすべて解消されました (まあ、少なくとも大部分は)。