Corona、Phonegap、Titaniumの比較 質問する

Corona、Phonegap、Titaniumの比較 質問する

私は Web 開発者で、自分の Web 製品を iPhone に移行したいと考えています。製品の 1 つは Google マップのようなものです。携帯電話の画面に地図を表示し、地図をドラッグしたりサイズを変更したり、地図に追加した情報を表示したりできます。

HTML、CSS、Javascript を使用してネイティブ iPhone アプリを開発できるテクノロジがいくつかあることは知っています。いくつか挙げてみました。

他にも類似の製品はありますか? それらの違いは何ですか? どれを選べばいいですか?

ベストアンサー1

私は、一番投票数の多い回答にコメントするためだけに、stackoverflow に登録しました。残念なことに、stackoverflow では新規メンバーがコメントを投稿できません。そのため、このコメントを回答らしく見せる必要があります。

Rory Blyth の回答には、2 つの JavaScript モバイル フレームワークに関する有効なポイントがいくつか含まれています。ただし、彼の重要なポイントは間違っています。真実は、Titanium と PhoneGap は、相違点よりも類似点の方が多いということです。どちらも、JavaScript API セットを通じてモバイル フォン機能を公開し、アプリケーションのロジック (html、css、javascript) はネイティブ WebView コントロール内で実行されます。

  1. PhoneGap は、Web アプリのネイティブ ラッパーだけではありません。PhoneGap JavaScript API を通じて、「Web アプリ」は、位置情報、加速度計カメラ、連絡先、データベース、ファイル システムなどの携帯電話の機能にアクセスできます。基本的に、携帯電話 SDK が提供するすべての機能は、JavaScript の世界に「ブリッジ」できます。一方、モバイル Web ブラウザーで実行される通常の Web アプリは、これらの機能のほとんどにアクセスできません (主な理由はセキュリティです)。したがって、PhoneGap アプリは、Web アプリというよりもモバイル アプリです。PhoneGap API をまったく使用しない Web アプリをラップするために PhoneGap を使用することは確かにできますが、PhoneGap はそのために作成されたわけではありません。

  2. Titanium は、HTML、CSS、または JavaScript コードを「ネイティブ ビット」にコンパイルしません。これらは、埋め込み画像ファイルのように、実行可能バンドルのリソースとしてパッケージ化されます。アプリケーションを実行すると、これらのリソースは UIWebView コントロールに読み込まれ、そこで実行されます (もちろん、ネイティブ ビットではなく JavaScript として)。JavaScript からネイティブ コード (または Objective-C) へのコンパイラーというものはありません。これは、PhoneGap でも同様に行われます。アーキテクチャの観点からは、これら 2 つのフレームワークは非常に似ています。

さて、両者に違いはあるのでしょうか? はい。まず、Titanium はより多くの携帯電話機能を JavaScript にブリッジすることで、PhoneGap よりも機能が豊富であるように見えます。最も顕著なのは、PhoneGap がネイティブ UI コンポーネントを JavaScript に公開していないことです (公開している場合も)。一方、Titanium には包括的な UI API があり、JavaScript で呼び出してあらゆる種類のネイティブ UI コントロールを作成および制御できます。これらの UI API を利用すると、Titanium アプリは PhoneGap アプリよりも「ネイティブ」に見えます。次に、PhoneGap は Titanium よりも多くの携帯電話プラットフォームをサポートしています。PhoneGap API はより汎用的で、iPhone、Android、Blackberry、Symbian などのさまざまなプラットフォームで使用できます。少なくとも現時点では、Titanium は主に iPhone と Android を対象としています。一部の API はプラットフォーム固有です (iPhone UI API など)。これらの API を使用すると、アプリケーションのクロスプラットフォーム機能が低下します。

したがって、アプリをより「ネイティブ」に見せたい場合は、Titanium の方が適しています。アプリを別のプラットフォームに簡単に「移植」したい場合は、PhoneGap の方が適しています。

2010年8月13日更新: Mickey さんの質問に対する Titanium の従業員の回答へのリンク。

2010 年 12 月 4 日更新:情報を最新の状態に保つために、この投稿を毎年見直すことにしました。1 年の間に多くのことが変化したため、最初の投稿の情報の一部が古くなっています。

最も大きな変更は Titanium から発生しました。今年初め、Appcelerator は Titanium 1.0 をリリースしました。これは、アーキテクチャの観点から以前のバージョンから大幅に変更されています。1.0 では、UIWebView コントロールは使用されなくなりました。代わりに、UI 機能には Titanium API を呼び出します。この変更は、次の 2 つのことを意味します。

  1. アプリの UI は完全にネイティブになります。ネイティブ Titanium API がすべての UI ニーズの制御を引き継ぐため、アプリに Web UI は存在しません。Titanium は、「クロスプラットフォーム ネイティブ UI」の領域を開拓したことで、大きな評価を得ています。ネイティブ UI の外観と操作性は好みながら、公式プログラミング言語は好まないプログラマーに代替手段を提供します。

  2. Web ビューがなくなったため、アプリで HTML や CSS を使用することはできません。(注: Titanium で引き続き Web ビューを作成することはできます。ただし、Web ビューで利用できる Titanium の機能はほとんどありません。)Titanium Q&A: HTML と CSS はどうなったのですか?

  3. DOM オブジェクトの存在を前提とする JQuery などの一般的な JS ライブラリは使用できません。コーディング言語としては引き続き JavaScript を使用します。ただし、Web プログラマーとして Titanium 1.0 を使用する場合、利用できる Web テクノロジはほぼ JavaScript だけです。

Titanium ビデオ: Titanium 1.0 の新機能。

さて、Titanium 1.0 は JavaScript を「ネイティブ ビット」にコンパイルするのでしょうか? いいえ。Appcelerator は、この開発者ブログでようやくこの問題について明らかにしました。Titanium Guides プロジェクト: JS 環境。私たちプログラマーは、マーケティング部門の人たちよりも誠実な人間ですよね? :-)

PhoneGap についてお話しします。PhoneGap については、新しいことはあまりありません。私の認識では、今年後半に IBM が参加するまで、PhoneGap の開発はあまり活発ではありませんでした。IBM は Nitobi よりも多くのコードを PhoneGap に提供していると主張する人もいました。それが真実かどうかはともかく、PhoneGap が活発に開発されているというのは良いことです。

PhoneGap は、HTML、CSS、JavaScript といった Web テクノロジを基盤としています。Titanium のようにネイティブ UI 機能を JavaScript に橋渡しする計画は PhoneGap にはないようです。Web UI はパフォーマンスとネイティブな外観と操作感の点でネイティブ UI にまだ遅れをとっていますが、その差は急速に縮まっています。Web テクノロジには、パフォーマンスの面でモバイル Web UI に明るい機能を保証する 2 つのトレンドがあります。

  1. JavaScript エンジンがインタープリターから仮想マシンに移行します。JavaScript は、実行を高速化するためにネイティブ コードに JIT コンパイルされます。Safari JS エンジン: SquirrelFish Extreme

  2. Web ページのレンダリングは、CPU 依存から GPU アクセラレーションを使用するようになりました。ページ遷移や 3D アニメーションなどのグラフィックを多用するタスクは、ハードウェア アクセラレーションによって非常にスムーズになります。Chrome での GPU アクセラレーションによる合成

デスクトップ ブラウザーから生まれたこのような改善は、モバイル ブラウザーにも急速に導入されています。実際、iOS 3.2 と Android 2.0 以降、モバイル Web ビュー コントロールのパフォーマンスは大幅に向上し、HTML5 にも対応するようになりました。モバイル Web の将来は非常に有望で、大勢の人がこの街に集まっています。JQuery は最近、モバイル Web フレームワークを発表しました。JQuery Mobile が UI ガジェットを提供し、PhoneGap が電話機能を提供するため、この 2 つを組み合わせると完璧なモバイル Web プラットフォームが構築されると私は考えています。

また、煎茶タッチ別のモバイル Web UI ガジェット フレームワークとして。Sencha Touch バージョン 1.0 は、GPLv3 を含むデュアル ライセンス モデルで最近リリースされました。Sencha Touch は、JQuery Mobile と同様に PhoneGap と連携して動作します。

もしあなたがGWTプログラマー(私のような)なら、ぜひチェックしてみてくださいGWTモバイルGWT を使用してモバイル Web アプリを作成するためのオープン ソース プロジェクトです。GWT で PhoneGap を使用できるようにする PhoneGap GWT ラッパーが含まれています。

おすすめ記事