5

私たちは、PhoneGap1.8.1とTelerikのKendoUIを使用して、かなり充実したiOSアプリに数か月取り組んできました。iOSアプリは、ネイティブの同等のアプリの約90%の速度であり、これは私たちにとって完全に受け入れられます。同じ正確なコードベースを使用して、Androidの同等のjavascriptファイルに置き換え、デバイス(4.0.3を実行しているMotorola Xoom)を起動しましたが、パフォーマンスはひどいものです。最悪の場合、ページの遷移(おそらく0.3秒かかるはずです)には2〜5秒かかります。エミュレーターのパフォーマンスは悪くないにしても同じです(驚くことではありません)。

投稿できる役立つコードがあれば教えてください。そうでなければ、私たちはこの状況に遭遇した他の人々やパフォーマンス改善のための提案を探していると思います。この時点で、PhoneGapは私たちにとってAndroid開発の完全な非スターターです。

4

1 に答える 1

8

Sencha Touch 2を使用してクロスプラットフォームのモバイル開発を行っています(Kendo UIの経験はありません)。前回パフォーマンスを詳細に調べたとき、Sencha Touch 2は、フル機能/成熟したクロスプラットフォームモバイルフレームワーク(Jquery Mobile、Kendo UIなど)の中で最高のパフォーマンスでした。私たちの経験では、AndroidでのパフォーマンスはiOSよりもかなり遅いです(Sencha Touch 2はやや速いと考えられていますが)。スクロールリスト、画面遷移などはすべて標準以下です。パフォーマンスの違いにはかなり驚きました。Androidのパフォーマンスは4.0を実行しているGalaxyNexusの方が優れていますが、それでもiOSデバイスよりも著しく低速です。

残念ながら、 AndroidでもiOSでも同じようにアプリを動作させる方法がわかりません。これは私がしばらく前に来た不幸な現実です。表示されている問題は、さまざまなプラットフォームでのブラウザのパフォーマンスが原因です。phonegapは、UIWebViewとWebViewを使用して、ネイティブアプリラッパー内にhtmlページとjavascriptページをロードします。デバイスのブラウザにKendoUIアプリをロードできますか?パフォーマンスはネイティブラップされたアプリと同じになると思います。

私たちの「解決策」は、最初にAndroid向けに開発し、アプリが適切に機能するようにすることです。そうすれば、iOSデバイスで優れたものになることがわかります。

私は剣道のUIにあまり詳しくありませんが、推奨事項や微調整に関しては、DOMをできるだけ少なくするようにしています。アプリの起動時に、DOMでの作成を可能な限り少なくしてから、アプリが必要とするオブジェクトを作成/破棄します。また、javascriptの一般的な最適化だけでも役立ちます。

これは、これらのモバイルフレームワークの汚い小さな秘密だと思います。あなたがそれについて彼らに近づくとき、彼らの答えは、Androidブラウザのパフォーマンスが遅いので、アプリは遅くなるだろうということです。つまり、「私たちのせいではありません」が、すべてのプラットフォームでうまく機能するフレームワークを描き続けています。

私たちにとって、Sencha Touch 2は十分に高速であり、Androidデバイスで適切なエクスペリエンスをユーザーに提供します。そのため、プラットフォームごとにネイティブアプリを開発するよりも、大幅に時間を節約する価値があります。

明確にするために、表示されているパフォーマンスの問題は、PhoneGapとは関係がない可能性があります。これは、デバイスでのブラウザーのパフォーマンスです。PhoneGapは基本的に、WebViewをネイティブアプリラッパーでラップするだけです。PhoneGapとSenchaTouchのネイティブパッケージの両方を使用すると、Androidでパフォーマンスの問題が発生します。

于 2012-06-25T15:24:21.383 に答える