クロスプラットフォーム(Android、iOS、Windows)のモバイルアプリケーションを構築したい。
アプリケーションのUXをプラットフォームごとに異なるようにして、プラットフォーム固有になり、異なるプラットフォームのユーザーが共通のUIに固執しないようにします。この共通のUIは、ルックアンドフィールの点でうまく機能しない可能性があるためです。プラットフォーム内の他のネイティブアプリケーションと。ただし、すべてのプラットフォームで構築しようとしているのと同じアプリケーションなので、バックエンドはほとんど同じです。
この画像は、私が達成しようとしていることを表しています。
Storyboard(iOS)、XML(Android)、XAML(Windows)などのネイティブテクノロジーを使用してプラットフォームごとに異なるUIを構築し、これらのUI要素をネイティブコントローラーにバインドすることは可能ですか?そして、このコントローラーにすべてのプラットフォームで共通のjavascriptバックエンドを使用させる。
ネイティブアプリケーションとハイブリッドアプリケーションの概念を認識しています。彼らが直面する問題は次のとおりです
純粋なネイティブアプリケーションでは、ソースコードプラットフォーム全体を特定のものにする必要があるため、3つの異なる言語でバックエンドを3回記述します。 (少なくとも再利用可能)
ハイブリッドアプリケーション(PhoneGapで構築されたものなど)では、JavaScriptとhtmlでコードを記述できますが、すべてのプラットフォームで使用する必要があるHTML5/CSS3で共通のUIを作成します。ジェネリックよりもネイティブ。
この一般的なjavascriptバックエンドコードは実現可能ですか?そしてもしそうなら、私はこのJavaScriptコード全体を独立して作成し、.a(iOSの場合)、. jar(Androidの場合)、. dll(Windowsの場合)のようなプラットフォーム固有のライブラリとしてパッケージ化できる方法があります。または、他の方法を使用する必要がありますか?
前もって感謝します
この種のことをサポートするフレームワークがいくつかあります- Calatrava はJavascript/Coffescriptに焦点を当てています、またはバックエンドをJava Kirin (これは私が広範囲にわたって取り組んできたものです)詳細は この質問に対する私の回答 をチェックしてください。
目的1:Xamarinには、.NETの実装に基づく独自の方法があることを知っています。 1つの言語を使用して一般的なアプリケーションバックエンドを構築でき、ネイティブライブラリのラッパーがあります。彼らは、GUIを構築するという哲学をネイティブライブラリと共有しています。ただし、JavaScriptではありません。
Appcelerator Titaniumでこれを非常に簡単に実行できると思います。
このフレームワークを使用すると、JavaScriptでコードを記述して、ネイティブコードをコンパイルできます。たとえば、iOSでネイティブにレンダリングされるNavbar、Androidなどを使用できます。