そのため、私はiPhone用の中規模のエンタープライズアプリに取り組んでおり、Androidに移植する必要があるかもしれません。移植性を気にせずにネイティブiOSSDKを使用してアプリを作成しました。私は当初、アプリ全体をJavaで書き直し、2つのコードベースを維持する必要があることに固執したため、クロスプラットフォームオプションのいくつかを調べました。
2つのクロスプラットフォームアプリケーションでシンプルな「HelloWorld」を作成し、1つはネイティブSDKを使用して、各プラットフォームのパフォーマンスと安定性を確認しました。これは決して完全に徹底的な実験ではなく、ただ迅速で汚いテストでした。PhoneGapとAppceleratorのTitaniumの起動時間が、「helloworld」を表示するためだけに非常に目立つことに驚いた。さらに、アプリケーションを閉じてから、すばやく連続して(30〜40回の高速反復)再度開くと、PhoneGapとTitaniumの両方がクラッシュしました。もう一方のネイティブアプリには問題はありませんでした。
最初は、1つのコードベースですべてを支配することが約束されているため、起動時間が遅くても生きていけると思っていました。次に、次の潜在的な障害に遭遇しました。
デバッグのサポートは制限されているようです。
電話ギャップウィキによると、(1)デスクトップで(2)リモートWebインスペクターを使用して(3)printfデバッグ[冗談ですか?]または(4)weinreを使用してデバッグすることをお勧めします
Titaniumのデバッグは少し優れていますが、デバイスのデバッグサポートが不足しています。1年前のデバイスでのデバッグに対する未解決の要求があるため、将来修正される可能性があります。
デバッグは、開発者が少ない小さなプロジェクトでは問題にならないかもしれませんが、プロジェクトが大きくなり、同じコードベースで作業する開発者が増えるにつれて、すぐに非常に重要になります。
それでも、各デバイスのUIを調整する必要があります。
これは一部の人にとっては問題になる場合とそうでない場合がありますが、私たちのアプリをネイティブアプリのように見せ、各プラットフォームのヒューマンインターフェイスガイドラインに準拠させたいと思います。そのため、UIレイヤーに重複したコードがあります。
この時点では、デバイスごとに個別のUIコードが必要であり、デバイス上のデバッグオプションはネイティブアプリほど豊富ではないため、クロスプラットフォーム開発フレームワークによる節約は見込めません。モデルをCで書き直すのが最善の方法だと思います。そうすれば、Android(NDKを使用)とiOSの間で、独自のネイティブUIを持つ各デバイスでそのコードを共有できます。
だから私の質問は、クロスプラットフォームのモバイルフレームワークでどのような経験がありますか?限られたデバッグと重複したUIコードに対する私の恐れは根拠がありませんか?各プラットフォームのネイティブアプリのように見えるアプリケーションが必要であることを覚えておいてください。
クロスプラットフォームフレームワークを使用したことがある方にとって、プロジェクトの規模はどれくらいでしたか?どのような問題に遭遇しましたか?フレームワークをもう一度使用しますか?
-シェーン