クロスプラットフォームフレームワークPhoneGap、Xamarin、Unity、Qt、Appcelerator Titanium、Telerik Platformは現在、モバイルデバイスのクロスプラットフォーム開発市場の80%を占めています。

以下の表は、各フレームワークの主な特徴を示しています。
Phonegap | シャマリン | 団結 | Qt | 加速器チタン | Telerik AppBuilder | |
言語 | JavaScript、HTML5、CSS3およびネイティブ言語(Java、Objective-C、C#) | C#、Xaml | C#、UnityScript、Boo | C ++ QML | JavaScript、Python、Ruby、PHP | .Net、JavaScript、HTML5、Java、PHP |
サポートされているレンズ | Android、iOS、Windows Phone、Blackberry、WebOS、Symbian、Bada、Ubuntu、Firefox OS。 | iOS、Android、Windows Phone、Windows 8 / RT、Tizen | Android、iOS、Windows Phone、Tizen、PS 4、Xbox One | Android、iOS、WinRT、Windows、Symbian、Linux、QNX | iOS、Android、BlackBerry、Windows、Tizen、Denso | iOS、Android、BlackBerry、Windows、Windows Phone |
価格 | PhoneGapの価格
有料版:9.99ドルから 無料版:利用可能 Adobe Creative Cloudメンバーシップ:利用可能 | 価格
シャマリン Xamarin Studio Community:無料 Visual Studio Community:無料 Visual Studio Professional:利用可能 Visual Studio Enterprise:利用可能 | 価格
団結 パーソナル版:無料 Professional Edition:月額75ドルから | 価格
Qt 無料版があります。 有料版は79ドルからです。 | 価格
加速器 無料試用 インディーズ:月額39ドル プロ:月額99ドル | 価格
Telerik AppBuilder 無料試用 月額39ドルから |
オープンソース | + | - | - | + | + | - |
UI | Web | ネイティブ | Uiキャンバス | ネイティブ | ネイティブ | Web |
Phonegap
PhoneGapを使用すると、標準のWebテクノロジー(HTML5、JavaScript、CSS3)を使用してモバイルアプリケーションを作成できます。 その結果、Android向けJava、iOS向けObjective-C、C#などのプログラミング言語を開発しなくても、フレームワークの人気が急速に高まりました。
PhoneGap Buildを使用すると、SDKツールをインストールすることなく、iOS、Android、Windows Phoneを同時にビルドできます(もちろん、これには多少のunningがあります-テスト用に送信する前に、少なくともAndroidでローカルにビルドすることをお勧めします) 。 しかし、もっと重要なのは、このサービスを使用すると、MacなしでクラウドでiOS向けにビルドできることです。
PhoneGapのインストールには信じられないほどの努力が必要なので、半日無料にすることをお勧めします...これは冗談です。 Xcodeのインストールには約3分かかりました。アーカイブのダウンロード、解凍、インストールで構成されていました。 それだけです。
PhoneGapは、モバイルデバイスのネイティブ機能を使用して次のことを処理する機能を提供します。
- 加速度計
- カメラ
- コンパス
- 連絡先
- ファイルストレージ
- ジオロケーション
- データベース
- イベント、通知、
- メディアなど
アプリケーションがこれらのポイントを超えない場合、PhoneGapフレームワークを使用した開発速度は、各プラットフォームのネイティブアプリケーションの開発よりも1桁速くなります。 PhoneGapのアプリケーション開発と説明を含むビデオ 。

利点:
- PhoneGapにはシンプルなAPIがあり、HTML、CSS、JavaScriptに出会った人のために開発を簡単に開始できます。
- 既存のJavaScriptライブラリ(jQuery、Prototype、Sencha Touch)を使用する機能
- すべてのモバイルプラットフォームのサポート
短所:
- ユーザーインターフェイスは、組み込みのブラウザーを使用して視覚化されます。 これにより、ネイティブアプリケーションと比較してフィードバックを取得するのが難しくなります。
- 多くの場合、既存のプラグインは廃止されるため、独自のプラグインを作成する必要がある場合があります。
シャマリン
Xamarinは、リストの2番目のクロスプラットフォームフレームワークです。 Xamarinでは、C#と.NETを使用して1つのアプリケーションロジックを作成できます。
機能的に、Xamarinプラットフォームは多くのサブプラットフォームを提供します。 これらのサブプラットフォームは大きな役割を果たします。これらを介して、アプリケーションはデバイス上のアプリケーションインターフェイスにリクエストを送信できます。 ビジュアルインターフェイスが定義され、ロジックがC#にアタッチされ、これはすべてAndroid、iOS、およびWindows Phoneで機能します。 Xamarinのアプリケーション開発ビデオ 。

利点:
- 大きく成長しているコミュニティ。
- 開発者はTestCloudを使用して、アプリケーションを自動的にテストできます。
- すでにC#と.NETに精通している場合は、いくつかの新しいフレームワークを学ぶのに多くの時間を費やす必要はありません。
- すでに記述されたコードを再利用できます。
- 異なるシステムでのアプリケーションは非常によく似ています。
- iOSの動的レイアウトは、制約を手動で使用するよりもはるかに簡単です。
- CustomRendererにより、標準コントロールは任意のプロパティで簡単に補完されます(たとえば、ボタンのグラデーション塗りつぶしは数分で完了しますが、そのままでは機能しません)。
短所:
- 特定の機能のデフォルトのソリューションはプラットフォーム松葉杖に依存しているため、モノドロイドでは実装が難しく、モノタッチでは非常に難しいインターフェイスパターンがあります。
- mono、monotouch、monodroidプラットフォームには問題があります。 アプリケーションは、安定性の特別な要件を満たしている必要があります。
- Androidページは、既存のアクティビティ/フラグメントの一部として配置できません。
- すべてのコントロールが実装されているわけではありません。
Telerik AppBuilder
AppBuilderを使用する主な理由の1つは、完全なオンラインIDEです。 ダウンロードすることなく、任意のコンピューターまたはモバイルデバイスからハイブリッドアプリケーションを作成、テスト、および公開することもできます。
もう1つの利点は、WindowsまたはLinuxで実行されるiOSアプリケーションを作成できることです。
最後に、AppBuilderのTelerikプラットフォームとの提携により、分析、ポップアップ通知、ユーザー認証、クラウドストレージなどの機能を使用できるようになります。 記事とビデオの詳細な説明。

利点:
- Telerikは、AppBuilder用のVisual StudioおよびSublime Textプラグインを提供しています。
- AppBuilderはCordova プラグインをインポートする簡単な方法を提供します 。
- 完全なオンラインIDE。
- 使いやすく、学びやすい。
短所:
- 小さなコミュニティ
団結
2Dおよび3DアプリケーションとUnityゲームを開発するためのマルチプラットフォームツールも、3Dコンテンツのデモンストレーションに最適なツールの1つです。 Unityを使用して作成されたアプリケーションは、Windows、OS X、Linux、Android、Apple iOS、Windows Phone、BlackBerry、およびWii、PlayStation 3、Xbox 360ゲームコンソールのオペレーティングシステムで動作します。

利点:
- さまざまなデバイス用のモバイルゲームを作成するための素晴らしいオプション
- 3Dエンジンは、複雑な構成なしで高品質の結果を提供します
- 多くの優れた無料のプラグインがあります。
- Unityを使用すると、開発者は独自のシェーダーを作成し、Unityがゲームをレンダリングする方法を変更できます。
短所:
- 初心者向けのUIと操作性
- 利用できないソースコード
- Unityコンパイラーは、一部のモバイルデバイスのARMプロセッサー向けに最適化されていません。
Qt
C ++でクロスプラットフォームウィンドウアプリケーションを作成するためのQtライブラリ。 Qtは、GUIを作成するためのクラスのセットとしてではなく、あらゆる場面でのクラスの完全なツールキットと見なされるべきです。 C ++だけでなく、JavaScriptに非常によく似たQMLでもプログラムを開発することができます。 これは、モバイルアプリケーションのラピッドプロトタイピングと開発を目的としたQtの開発の特別なブランチです。 タイルマップエディターQt開発ビデオ 。

利点:
- Qtには、開発に役立つ多くの優れたツールがあります。たとえば、IDE QT Creator、Qt Designer、コードプロファイリングなどです。
- ネットワーク、アニメーションなどの要素のための直感的なAPIを含むライブラリがあります。
短所:
- Qtは初心者には難しい
加速器チタン
Titaniumは、開発、展開、配布、そして最終的にはWebアプリケーションの実行のための完全にオープンなプラットフォームです。 Appcelerator Titaniumを使用すると、JavaScript、HTML、およびCSSでモバイルアプリケーションを作成できます。
現在人気のあるオペレーティングシステム(Windows、GNU / Linux、MacOS X)を使用して、最新の、そして最も重要なネイティブアプリケーションを作成できます。
このSDKを使用して作成されたアプリケーションは、真にネイティブです。 AndroidのNavigation Controllerは見慣れたものに見えますが、iOには似ていません。 外観だけでなく、アプリケーションコード自体もネイティブになります。 ところで、これは古典的なWebViewを作成し、それを目的のWebコンテンツで埋めることを妨げるものではありません。

利点:
- JavaScriptを使用すると、プラットフォーム言語を使用せずにアプリケーションを簡単に開発できます。
- Appceleratorを使用すると、リアルタイムの分析を実行できます
- ネイティブAPIを使用すると、それほど大きくないアプリケーションのパフォーマンスが向上します。
短所:
- ライブラリのロードにより、アプリケーションの起動時に遅延があります
- JavaScriptの使用はアプリケーションのパフォーマンスに悪影響を与えるため、複雑なアプリケーションを作成することは困難です。
React Native
React Nativeとは何ですか? これは、JS(React)に基づくJSフレームワークであり、UI(ビューレベル)を作成するためのJSライブラリです。
この技術は非常に有望ですが、まだ若いため、一部の場所ではまだプラットフォームが粗雑です。 Androidバージョンは後で登場したため、iOSアプリケーション用のコンポーネントが増えました。 また、アプリケーションがデプロイされると、JS全体がユーザーのデバイスに到達するため、プレゼンテーションレベルで秘密のビジネスロジックを保持しないでください。 React Nativeを使用して、Webアプリケーションのモバイルバージョンをすばやくプロトタイプ化できるようになったと言えます。 さらに、Webアプリケーションが既にReactJSで記述されている場合、転送速度は大幅に向上します。 React Native開発の例 。
利点:
- 単一のワークフローとツール:AndroidバージョンとiOSバージョンのどちらを使用しても問題ありません-引き続き同じツールを使用します。
- このため、開発のスピードと容易さ。
- JS APIレガシーアプリケーションバインディングとハイブリッドアプリ:既製のiOSアプリが既にあり、React Nativeにアップグレードしたいとします。 次に、ネイティブコンポーネントをラップして、React Nativeで使用できるようにします。 したがって、徐々にReactに切り替えることができ、ハイブリッドアプリケーションを取得できます。その半分はネイティブで、残りの半分はReactにあり、いくつかのレガシーコンポーネントはJS APIにあります。
完璧なソリューションはありません。各フレームワークには長所と短所があります。 非常に単純なアプリケーションの場合、応答性が重要な基準になるまでPhoneGapを使用することをお勧めします。 また、より深刻な開発にはXamarinを使用することをお勧めしますが、Xamarinを使用する場合でも、ほとんどのユーザーインターフェイス要素のネイティブ開発を組み合わせることをお勧めします。