2

Android と iOS の両方のネイティブ アプリケーションを同時に開発しています。一度コードを書いて両方のプラットフォームで実行する「良い」方法がないことはわかっています。技術的には、Phonegap を使用できますが、ユーザーの観点からは、プラットフォームの違いにより、ネイティブ アプリのようには感じられません。 .

しかし、2 つのプラットフォーム間でコントローラー コードのサブセットを共有する方法はありますか? 「見えない」コード、つまり UI の (直接の) 描画とは関係なく、iOS および Android フレームワークを使用しないコードについて話しているのです。たとえば、Angry Birds を開発している場合、鳥の飛行軌道を制御する物理方程式を実装する最良の方法は何ですか? この種のコードを 2 つのプラットフォーム間で共有するにはどうすればよいでしょうか? 「最善」とは、1) 開発時間を最小限に抑える方法、2) メンテナンスを簡素化する方法、3) 将来のアップグレードを簡素化する方法を意味します。

4

2 に答える 2

2

私が見るオプション:

  1. サーバー側を使用してロジックを計算すると、プラットフォームに関係なく任意の UI で表示できます。ただし、このオプションではネットワーク接続が必要になるか、ping が原因で応答が遅くなる可能性があります。

  2. C/C++ で共通コードを記述します。このオプションはより複雑ですが、c/c++ がネイティブ コードにコンパイルされるため、100% のケースで機能します。つまり、ほとんどすべてのオペレーティング システムでサポートされています。

  3. Python や LUA などのスクリプト言語で一般的なコードを記述します。これには、クライアント側でインタープリターが必要になります。また、各フレームでスクリプトを実行し、その中で複雑なロジックを実行すると、パフォーマンスの問題が発生する可能性があります。

  4. phoneGap/モノ/マーマレードを使用.. . これにより、ネイティブ機能が制限され、ネイティブ SDK ではなく常にサードパーティに依存することになります。しかし、openGL es ゲームを開発している場合は、おそらくマーマレードが最適です。

私の意見では、特にゲームを開発していて、1 つのプラットフォームに限定したくない場合は、C/C++ が最適です。

PS: アングリーバードのようなゲームを開発する場合、自分で物理演算を実装するのではなく、BOx2d を使用します。

編集: Windows Phone 8 でのみサポートされるネイティブ コード

于 2012-04-14T13:13:03.077 に答える
0

Cで書くことが答えかもしれません。

Objective C は C の単なるスーパーセットであり、モデル レイヤーを C 関数の単なるラッパーとして記述できます。

この記事によると、JNIを使​​用してAndroidで非常によく似たことができます。

おっしゃる通り、これはモデルレイヤーでしかできません。iOS ではビューとコントローラー レイヤー用の Objective C を作成する必要があり、Android でも同じ状況になります。

于 2012-04-14T13:10:27.253 に答える