32

複数のオペレーティングシステム(Android、IOS、WindowsPhoneを含む)用のモバイルアプリ(私の最初のアプリ)を開発することを計画しています-野生のインターネットで、開発プロセスを最小限に抑えるための可能な解決策として、phonegapと呼ばれるフレームワークを見つけました。phonegapの利点は理解していますが、実際の欠点は見つかりませんでした... 1.)では、なぜphonegapを使用しないのかという問題があります。

2.)phonegapはOS内にラップされているため、遅いだけですか?はいの場合、どれくらい遅くなりますか?つまり、ネイティブアプリとphonegapの違いを実際に見分けることができますか、それともゲームなどのハードウェアアクセラレーションが必要な場合にのみ遅くなりますか?

プロジェクトに関するいくつかの情報。現在、私はいくつかの「.Net」サービスとプロバイダーを持っており、WCFを介して通信しています。アプリは、プロバイダーが行うようなサービスとの間でビデオストリームとオーディオデータを送受信できる必要があります。

3.)そのためにphonegapを使用することは可能ですか、それともネイティブアプリに固執する必要がありますか?

4

5 に答える 5

40

すべてのクロスプラットフォームフレームワーク(HTMLを含む)は、一般的に同じ長所と短所を共有しています。

利点:

  • すべてのターゲットプラットフォームで同じように機能するコードを一度記述します。

短所:

  • それが機能する方法は、多くの場合、それほど素晴らしいものではありません。
  • 一般に、ネイティブ実装よりもパフォーマンスが低くなります。
  • 一部には、場違いに見える独自のウィジェットセットもあります。
  • 個々のプラットフォームの癖のために、あなたはまだどこでもテストしなければなりません。
  • 機能への最小公分母アクセスを取得します。ネイティブ機能がサポートされている場合、多くの場合、アクセスできるのは1つの方法、つまりポータブルフレームワークの方法のみです。これは、ターゲットプラットフォームの推奨される方法と矛盾する場合があります。
  • ターゲットプラットフォームに固有の機能にアクセスする可能性がある場合、どこでも実行できる移植性が失われます。
  • いわゆる「クロスプラットフォーム」フレームワークはすべて、それ自体がプラットフォームです。癖についての以前のポイントを参照してください。今では、N個のプラットフォームを知る必要はなく、N+1を知る必要があります。

複数のプラットフォームを対象とした最良の結果を得るには、次のことをお勧めします。

明確に定義されたAPIを使用して、コアロジック(UIを使用しない部分)をクリーンに設計します。環境間でかなり簡単に移植できるように、十分に一般的にしてください。(SQLiteはObjective CとJavaで本当に違いますか?)

ターゲットプラットフォームのベストプラクティスに従ってUIを設計し、それぞれに見栄えがする(そして収まる)ようにします。(Androidの場合は、http://developer.android.com/designを参照てください)作成したAPIを介してUIをコアロジックと相互作用させます。

于 2012-08-06T13:59:37.213 に答える
16

私はネイティブとPhonegapのようなHTMLラッパーの両方で開発しました。Phonegapは、2〜3の異なる言語でコーディングする必要性を減らし、2〜3のコードベースに変更を加えるのに便利ですが、人々がスティックネイティブを使用したいアプリがあると予想される場合。私は実際にPhonegapでアプリを開発していましたが、期待に応えられなかったため、最終的にはすべてネイティブコードで書き直しました。

あなたのゲームやアプリは「HTMLラッパーアプリにとって」素晴らしいかもしれませんが、最終的には、日常のユーザーは、たとえごくわずかであっても、読み込みと反応の時間が遅いことに気付くでしょう。

IMO Phonegapは、集中的な処理が行われない(ゲームなど)非常に最小限のデータ操作(表示と編集)を行うアプリにのみ使用する必要があります。

アプリ市場は非常に競争が激しく、表示される上位のアプリとゲームはすべてネイティブコードです(理由があります)。

于 2012-08-06T13:53:50.133 に答える
11

AdobeのAIRプラットフォームは、ネイティブアプリの代わりに、どこにでも一度デプロイすれば、phonegapの優れた代替手段です。また、優れたハードウェアアクセラレーション機能も備えています。Webkitの実装が含まれているため、必要に応じてWeb標準を使用でき、オープンソースのapacheflexプロジェクトには多くの機能があります。Flash Builderは、Eclipseに基づく優れたコーディング環境です。ゲームの大きな進歩に加えて、データ駆動型のAIRアプリも間もなく登場するでしょう。As3はオブジェクト指向で非常に優れており、アニメーション用のフラッシュプロからイラストレーターやフォトショップまでの大規模なツールセットは世界クラスです。

于 2012-10-29T00:10:27.763 に答える
4

私は、すべてのアプリがモバイルバージョンのすべての可能なバージョンを作成する必要がある会社で働いています。実際、ラジオストリーミング、GPUアクセス、カメラフィルターなど、特定の種類のアプリを操作する必要がある場合は、ネイティブに設定してください。

私の個人的な意見では、Androidでも電話のギャップは非常に遅いです。iOSを使っているからなのか、それとも高い基準を持っているからなのかわかりません。ネイティブと連携することで、アプリの品質が常に向上します。

電話のギャップを使用して処理を高速化することは理解していますが、表示する情報またはフォームのみを含む単純なモバイルアプリを作成している場合に限ります。

ハードウェア/ソフトウェアの面では、このようなものをネイティブに開発する方が簡単です。iOSには、ほぼすべてのものが揃っています。私はアンドロイドについて知りませんが、それほど複雑であるべきではありません!

于 2012-08-06T13:59:06.617 に答える
2

PhonegapはWebViewsを使用するため、アプリストアにデプロイするためにネイティブコンテナーにビルドしてラップするWebサイトです。基本的なアプリの場合、およびWeb開発者の場合は、この方法でアプリを開発することをお勧めしますが、ターゲットOSの利点とネイティブ特性を最大限に活用したい場合は、ネイティブアプリケーションを開発することをお勧めします。お役に立てば幸いです。

于 2012-08-06T13:52:49.130 に答える