6

複数のデバイスに展開したいプログラムがあります。

  • スタンドアロンキャプティブAIR
  • Webベースのフラッシュアプ​​リ
  • iOSアプリ
  • Androidアプリ

一部のUI以外のコードは、多くの部分で同一です。最善のアプローチは何だろうと思います。共有ライブラリプロジェクトがある場合、またはantまたは他の方法で制御される異なるコンパイラ設定を持つ1つの大きなプロジェクトがある場合。

4

4 に答える 4

3

共有ライブラリプロジェクトへのアクセスと使用は、クロスプラットフォームプロジェクトに実装するための最良の方法です。このアプローチ以外に、antBuildを使用できます。

于 2012-05-15T11:34:32.940 に答える
2

答えは通常、異なる「UIのもの」と関係がありますが、Flash / AIRのように聞こえるので、それはおそらく大きな問題ではありません。私の場合、「1つの大きなプロジェクト」アプローチを採用し、IDEと互換性のある本格的なCI/NIおよびSCMスイートを入手します。Eclipse / Aptanaを使用している場合、私はHusdon / Surroundが好きです。(完全な開示:私は@ Seapineで働いていました。)Eclipseを使用していない場合は、IDEと統合するCI / SCMオプションを確認する必要があります(たとえば、HudsonにはSurroundモジュールがあり、その逆も同様です)。 。共有ライブラリのことは機能しますが、FlashはどこでもFlashであるため、個別のプロジェクトの分割を増やす必要はないと思います。フル機能のCIは、コンパイラの違いを非常に効果的に管理できます。

于 2012-05-21T14:34:03.540 に答える
1

現在IOSAppStoreに存在し、間もなくAndroidとWebでリリースされる大規模なモバイル/Webプロジェクトにこのアプローチの組み合わせを使用しています。

  • コンパイラ指令を使用して特定のプラットフォームロジックと要素を処理する1つのメインプロジェクト
  • メインプロジェクトコードベース内の特定のプラットフォームロジックを処理するためのコンパイラ指令
  • プラットフォーム固有のロジックにswitchステートメントを使用する、ほとんどがプラットフォームに依存しない、ビデオおよびインタラクティブ機能エンジン用の個別のプロジェクト
  • グラフィックアセット用の1つの共有SWC。プラットフォーム固有の要素には、プラットフォームとアンダースコアが接頭辞として付けられます。コンパイラ指令は、画面に表示されるムービークリップを指定するために使用されます
  • さまざまなプラットフォームのコンパイルを行うためのAntスクリプト
  • ハードウェア固有の機能とインターフェイスするためのネイティブ拡張

AppStore統合、ソーシャルメディア機能、ネットワークモニタリング、通知、アプリ間通信などに、商用、オープンソース、自家製のANEを使用しています。

  • com.adobe.extension.NetworkInfo.ane
  • com.milkmangames.extensions.EasyPush.ane
  • com.milkmangames.extensions.GoViral.ane
  • com.milkmangames.extensions.StoreKit.ane

(私はmilkmangamesとは提携していません)

私は現在、インテントを使用してアプリ間通信を処理するためのAndroidANEを作成しています。これは私がオープンソーシングしているプロジェクトです:

https://github.com/interactivenyc/ANESampleProject

私は現在そこで問題に悩まされており、誰かがそのプロジェクトをフォローすることに興味があるなら、詳細を含む質問をすぐに投稿する予定です。プロジェクトのセットアップは、プロジェクトのフロントページに表示されるReadMeファイルでかなりよく説明されています。

于 2013-10-07T14:59:14.927 に答える
0

バージョン管理にgitを使用する場合は、サブモジュールを確認してください。私はそれを使用してすべてを1つのプロジェクトに保持しましたが、各モジュールを個別にバージョン管理すると、優れたソリューションが得られました。

于 2013-10-07T15:20:18.080 に答える