まず、さまざまなプラットフォームの「ネイティブ」コードの意味を指定する必要があります。
Androidでは、Javaファイルはdalvik用に特別にコンパイル/準備されています。したがって、それらはすでにファッションの「ネイティブ」であり、ここで行う必要のある作業はありません。NDKを使用してAndroid用のC/C ++ネイティブコードを取得したい場合は、運が悪いです。PlayNはこれを行わず、これは難しい問題です(JavaからC ++への移行)
PlayNの使用目的のMavenモジュラーレイアウトを見ると、共通コードでFactoryインターフェイスを定義し、各モジュールのプラットフォーム固有の実装を渡すことは難しくありません。この方法でAndroid固有の機能をサポートすることは大したことではありません。
HTMLバージョンの場合、JNIを使用しても問題なくHTMLライブラリを使用できますが、PlayNがすでに公開しているものと比較して、限られた価値であると私が想像したブラウザの特定の機能を実際に獲得しています。便利なのはテキスト/キーボード入力ですが、これを解決したトリプルプレイhttps://github.com/threerings/tripleplay UIライブラリをお勧めします。これは、アクティブなプロジェクトです。
iOSの場合、iOSモジュールは少しハックであり、コンパイルされたJavaクラスが.net(IKVM)のJVMランタイムを介して実行され、Monotouchツールを使用してすべてをネイティブコードにコンパイルするため、これはより複雑になる可能性があります。 iOS用。https://github.com/samskivert/ikvm-monotouchを参照してください
したがって、iOSの場合、コードをネイティブバージョンの形式にバインドすることはできません。また、ツールチェーンメソッドを介してアクセスできるものは、MonotouchがiOSに対応しているもの(私が想像するかなりの量)に大きく依存します。また、IKVM-Monotouchがサポートしているもの(PlayNを機能させるための最低限のことを想像しています)。
私はFlashパイプラインに精通していないので、評価を与えることはできませんが、非常に柔軟だと思います。
上記の回答は、アプリが実際にゲームであると想定して書かれています。そうではなく、さまざまなプラットフォーム用の標準ウィジェットライブラリをまとめて使用する場合は、可能であるはずです。ここでは、適切なMVPフレームワークを選択することをお勧めします。さまざまなホスト環境での仮定に応じて、全体がどれほど簡単になるかが決まります。
https://developers.google.com/web-toolkit/articles/mvp-architectureを読んで比較し、おそらくお気に入りのGWTMVPフレームワークは何ですか。
...これらのフレームワークの多くはGWT固有であり、他のプラットフォームでの再利用に対応していない可能性がありますが。