2

そのため、私はiPhone用の中規模のエンタープライズアプリに取り組んでおり、Androidに移植する必要があるかもしれません。移植性を気にせずにネイティブiOSSDKを使用してアプリを作成しました。私は当初、アプリ全体をJavaで書き直し、2つのコードベースを維持する必要があることに固執したため、クロスプラットフォームオプションのいくつかを調べました。

2つのクロスプラットフォームアプリケーションでシンプルな「HelloWorld」を作成し、1つはネイティブSDKを使用して、各プラットフォームのパフォーマンスと安定性を確認しました。これは決して完全に徹底的な実験ではなく、ただ迅速で汚いテストでした。PhoneGapとAppceleratorのTitaniumの起動時間が、「helloworld」を表示するためだけに非常に目立つことに驚いた。さらに、アプリケーションを閉じてから、すばやく連続して(30〜40回の高速反復)再度開くと、PhoneGapとTitaniumの両方がクラッシュしました。もう一方のネイティブアプリには問題はありませんでした。

最初は、1つのコードベースですべてを支配することが約束されているため、起動時間が遅くても生きていけると思っていました。次に、次の潜在的な障害に遭遇しました。

  1. デバッグのサポートは制限されているようです。

    電話ギャップウィキによると、(1)デスクトップで(2)リモートWebインスペクターを使用して(3)printfデバッグ[冗談ですか?]または(4)weinreを使用してデバッグすることをお勧めします

    Titaniumのデバッグは少し優れていますが、デバイスのデバッグサポートが不足しています。1年前のデバイスでのデバッグに対する未解決の要求があるため、将来修正される可能性があります。

    デバッグは、開発者が少ない小さなプロジェクトでは問題にならないかもしれませんが、プロジェクトが大きくなり、同じコードベースで作業する開発者が増えるにつれて、すぐに非常に重要になります。

  2. それでも、各デバイスのUIを調整する必要があります。

    これは一部の人にとっては問題になる場合とそうでない場合がありますが、私たちのアプリをネイティブアプリのように見せ、各プラットフォームのヒューマンインターフェイスガイドラインに準拠させたいと思います。そのため、UIレイヤーに重複したコードがあります。

この時点では、デバイスごとに個別のUIコードが必要であり、デバイス上のデバッグオプションはネイティブアプリほど豊富ではないため、クロスプラットフォーム開発フレームワークによる節約は見込めません。モデルをCで書き直すのが最善の方法だと思います。そうすれば、Android(NDKを使用)とiOSの間で、独自のネイティブUIを持つ各デバイスでそのコードを共有できます。

だから私の質問は、クロスプラットフォームのモバイルフレームワークでどのような経験がありますか?限られたデバッグと重複したUIコードに対する私の恐れは根拠がありませんか?各プラットフォームのネイティブアプリのように見えるアプリケーションが必要であることを覚えておいてください。

クロスプラットフォームフレームワークを使用したことがある方にとって、プロジェクトの規模はどれくらいでしたか?どのような問題に遭遇しましたか?フレームワークをもう一度使用しますか?

-シェーン

4

1 に答える 1

1

私はアクセラレータチタンをかなり使用しました。私の一般的な感覚は、IOSセクションは非常に良いですが、Androidはまだ不足しています。特にエラーメッセージでは、デバッグはそれほど悪くはありません。いくつかのプリントアウトを追加するだけですが、問題は99% androidでのエラーは、アプリがnullPointerExceptionでクラッシュしたようなもので、基になるJavaからのものであるため、どこにあるかについてのヒントはありません。控えめに言っても難しい場合があります。

ただし、UIは問題ではありません。チタンは、アプリをさまざまなデバイス画面に自動的にスケーリングするように制御します(設定がオンになっている場合、1.7でこれを調べる必要があります)。したがって、一般的に発生する唯一の問題は、IOSに右ナビゲーションボタンがあるなど、デバイス固有のものです。Androidに相当するものはないため、2つの異なるプラットフォームがあれば理解できる、そのための特別なコードを作成する必要があります。

IOSがすでに完全に開発されている場合、私が何をするかはわかりません。一般的に、両方のプラットフォームの学習曲線を回避し、同じコードベースを維持して時間を節約するために、これにアクセスします。どの程度のメリットが得られるかわかりません。これの。Appceleratorは優れていますが、コントロールにバグがあり、処理が遅くなり、学習に時間がかかりますが、メリットはあります。

個人的にはphonegapを使用しません。これは、phonegapが基本的にWebviewラッパーであるという考えが気に入らないためです。また、デスクトップでブラウザーベースの問題が発生し、一生続くことがあります。

于 2012-06-18T10:43:00.910 に答える