私はWeb開発者であり、Web製品をiPhoneに移行したいと考えています。製品の1つはGoogleマップのようなものです。電話スクリーンに地図を表示します。地図をドラッグまたはサイズ変更して、地図に追加した情報を表示できます。
HTML、CSS、JavaScriptを使用してネイティブのiPhoneアプリを開発できるいくつかのテクノロジーがあることは知っています。私はいくつかを特定しました:
他に同様の製品はありますか?それらの違いは何ですか?どちらを選べばいいですか?
私はWeb開発者であり、Web製品をiPhoneに移行したいと考えています。製品の1つはGoogleマップのようなものです。電話スクリーンに地図を表示します。地図をドラッグまたはサイズ変更して、地図に追加した情報を表示できます。
HTML、CSS、JavaScriptを使用してネイティブのiPhoneアプリを開発できるいくつかのテクノロジーがあることは知っています。私はいくつかを特定しました:
他に同様の製品はありますか?それらの違いは何ですか?どちらを選べばいいですか?
回答:
投票数の多い回答にコメントするためだけに、stackoverflowに登録しました。悪い点は、stackoverflowでは新しいメンバーがコメントを投稿できないことです。だから私はこのコメントをもっと回答のように見せなければなりません。
Rory Blythの回答には、2つのJavaScriptモバイルフレームワークに関するいくつかの有効なポイントが含まれています。しかし、彼の要点は間違っています。真実は、TitaniumとPhoneGapは異なるよりも似ているということです。どちらも一連のJavaScript APIを通じて携帯電話の機能を公開し、アプリケーションのロジック(html、css、javascript)はネイティブのWebViewコントロール内で実行されます。
PhoneGapは、Webアプリのネイティブラッパーではありません。PhoneGap JavaScript APIを介して、「Webアプリ」は、位置情報、加速度計カメラ、連絡先、データベース、ファイルシステムなどの携帯電話機能にアクセスできます。基本的に、携帯電話SDKが提供するすべての機能は、 JavaScriptの世界。一方、モバイルWebブラウザーで実行される通常のWebアプリは、これらの機能のほとんどにアクセスできません(セキュリティが主な理由です)。したがって、PhoneGapアプリは、Webアプリというよりもモバイルアプリです。PhoneGapを使用して、PhoneGap APIをまったく使用しないWebアプリをラップすることはできますが、それはPhoneGapの目的ではありません。
Titaniumは、HTML、CSS、またはJavaScriptコードを「ネイティブビット」にコンパイルしません。これらは、埋め込まれた画像ファイルのように、実行可能バンドルへのリソースとしてパッケージ化されています。アプリケーションが実行されると、これらのリソースはUIWebViewコントロールに読み込まれ、そこで実行されます(もちろん、ネイティブビットではなくJavaScriptとして)。javascript-to-native-code(またはto-objective-c)コンパイラなどはありません。これは、PhoneGapでも同じ方法で行われます。アーキテクチャの観点から、これら2つのフレームワークは非常に似ています。
今、彼らは何か違うのですか?はい。まず、Titaniumは、より多くの携帯電話機能をJavaScriptにブリッジすることにより、PhoneGapよりも機能が豊富であるように見えます。最も注目すべきは、PhoneGapは多くの(存在する場合)ネイティブUIコンポーネントをJavaScriptに公開しないことです。一方、Titaniumには、あらゆる種類のネイティブUIコントロールを作成および制御するためにJavaScriptで呼び出すことができる包括的なUI APIがあります。これらのUI APIを利用して、TitaniumアプリはPhoneGapアプリよりも「ネイティブ」に見えます。次に、PhoneGapは、Titaniumよりも多くの携帯電話プラットフォームをサポートしています。PhoneGap APIはより一般的で、iPhone、Android、Blackberry、Symbianなどのさまざまなプラットフォームで使用できます。Titaniumは、主にiPhoneとAndroidを主に対象としています。一部のAPIはプラットフォーム固有です(iPhone UI APIなど)。
したがって、アプリの懸念がアプリをより「ネイティブ」に見えるようにすることである場合は、チタンの方が適しています。アプリを別のプラットフォームに簡単に「移植」できるようにしたい場合は、PhoneGapが適しています。
2010年8月13日更新: ミッキーの質問に対するTitanium従業員の回答へのリンク。
2010年4月12日更新: この投稿を毎年レビューして情報を最新に保つことにしました。1年の間に多くの事柄が変更され、最初の投稿の情報の一部が古くなりました。
最も大きな変化はチタンから来ました。今年の初め、AppceleratorはTitanium 1.0をリリースしました。これは、アーキテクチャの観点から、以前のバージョンから大幅に進化しました。1.0では、UIWebViewコントロールは使用されなくなりました。代わりに、任意のUI関数に対してTitanium APIを呼び出します。この変更はいくつかのことを意味します:
アプリのUIが完全にネイティブになります。ネイティブのTitanium APIがすべてのUIニーズの制御を引き継ぐため、アプリにWeb UIはもうありません。Titaniumは、「クロスプラットフォームネイティブUI」のフロンティアを開拓したことで、多くの功績がありました。ネイティブUIのルックアンドフィールを好むが、公式のプログラミング言語を嫌うプログラマに代わるものを提供します。
Webビューがなくなるため、アプリでHTMLまたはCSSを使用できなくなります。(注:TitaniumでもWebビューを作成できます。ただし、Webビューで利用できるTitaniumの機能はほとんどありません。) Titanium Q&A:HTMLとCSSはどうなりましたか?
DOMオブジェクトの存在を前提とするJQueryなどの一般的なJSライブラリを使用することはできません。JavaScriptを引き続きコーディング言語として使用します。しかし、それがWebプログラマーとしてTitanium 1.0になった場合に利用できる唯一のWebテクノロジーです。
では、Titanium 1.0はJavaScriptを「ネイティブビット」にコンパイルしますか?いいえ。Appceleratorは、この開発者ブログであるTitanium Guides Project:JS Environmentを使用して、この問題についてようやく解決しました。私たちのプログラマーは、マーケティング部門のプログラマーよりも本物の人ですよね。:-)
PhoneGapに進みます。PhoneGapについて言うべき新しいことは多くありません。私の考えでは、IBMが今年後半に参加するまで、PhoneGapの開発はあまり活発ではなかったと思います。一部の人々は、IBMがNitobiよりもPhoneGapに多くのコードを提供しているとさえ主張しました。それが本当であるかどうかは別として、PhoneGapが活発に開発されていることを知るのは良いことです。
PhoneGapは、引き続きHTML、CSS、JavaScriptなどのWebテクノロジーを基盤としています。PhoneGapは、TitaniumのようにネイティブUI機能をJavaScriptにブリッジする計画を持っているようには見えません。Web UIは、パフォーマンスとネイティブのルックアンドフィールにおいてネイティブUIよりも遅れていますが、そのようなギャップは急速に埋められています。パフォーマンスの点でモバイルWeb UIの優れた機能を保証するWebテクノロジーには、2つの傾向があります。
インタプリタから仮想マシンに移動するJavaScriptエンジン。JavaScriptは、実行を高速化するためにネイティブコードにコンパイルされたJITです。Safari JSエンジン:SquirrelFish Extreme
CPUに依存することからGPUアクセラレーションを使用することに移行するWebページのレンダリング。ページ遷移や3Dアニメーションなどのグラフィックを多用するタスクは、ハードウェアアクセラレーションのおかげで、はるかにスムーズになります。ChromeでのGPU高速合成
デスクトップブラウザに起因するこのような改善は、モバイルブラウザにすばやく配信されています。実際、iOS 3.2およびAndroid 2.0以降、モバイルWebビューコントロールのパフォーマンスが向上し、HTML5フレンドリーになりました。モバイルWebの未来は非常に有望であり、町に大きな子供を引き付けています。JQuery MobileがUIガジェットを提供し、PhoneGapが電話機能を提供することで、これら2つを組み合わせることで、完璧なモバイルWebプラットフォームが作成されると私は考えています。
Sencha Touchについても触れておきます、別のモバイルWeb UIガジェットフレームワークとしてます。Sencha Touchバージョン1.0は、GPLv3を含むデュアルライセンスモデルで最近リリースされました。Sencha Touchは、JQuery Mobileと同じようにPhoneGapでうまく機能します。
あなたがGWTプログラマー(私のように)である場合は、GWTでモバイル Webアプリを作成するためのオープンソースプロジェクトであるGWT Mobileを調べてみてください。これには、GWTでPhoneGapを使用できるようにするPhoneGap GWTラッパーが含まれています。
私が収集したものから、2つの違いは次のとおりです。
PhoneGapは基本的に、まだWebアプリであるもののネイティブラッパーを生成します。WhateverYourPlatformIsプロジェクトを吐き出し、ビルドしてデプロイします。私たちは(私は私の時間を過ごす場所これは)、それはあなたのようにそれを起動できるように、Webアプリケーションランチャー(独自のスプリングボードのアイコンを取得するショートカットを作成すると大差がいないようだiPhoneの話をしている場合は(のような)ネイティブアプリ)。「アプリ」自体は依然としてhtml / js / etcなどであり、ホストされたブラウザコントロール内で実行されます。それ以上にPhoneGapが提供するのは、JavaScriptとネイティブデバイスAPIの間のブリッジです。したがって、PhoneGap APIに対してJavaScriptを記述し、PhoneGapは対応する適切なネイティブ呼び出しを行います。その点で、プレーンな古いWebアプリをデプロイすることとは異なります。
チタンのソースはネイティブビットにコンパイルされます。つまり、html / js / etcなどです。単にプロジェクトにアタッチされてWebブラウザーコントロール内でホストされるだけでなく、ネイティブアプリに変換されます。つまり、たとえば、アプリのインターフェースはネイティブ UIコンポーネントで構成されます。ネイティブアプリを使用せずにネイティブのルックアンドフィールを取得する方法はいくつかありますが、...まあ...結局のところ悪夢のようです。
2つは、一般的なWebテクノロジー(html / js / css / blah blah blah)を使用してすべてのものを記述し、カスタムJavaScript APIを介してネイティブ機能にアクセスできるという点で似ています。
しかし、繰り返しますが、PhoneGapアプリ(PhonGapps?わからない...ばかげた名前ですか?言うのは簡単です-私はそれを知っています)は、Webアプリとして人生を開始し、Webアプリとして人生を終了します。iPhoneでは、html / js / etc。UIWebViewコントロール内で実行されるだけで、js呼び出しのPhoneGap JavaScript APIがネイティブAPIにルーティングされます。
Titaniumアプリはネイティブアプリになります-それらはウェブ開発技術を使用して開発されただけです。
これは実際にはどういう意味ですか?
Aチタンアプリがします見て、最終的には、それがあるため、「本物」アプリのようである「本物」のアプリ。
AのPhoneGapアプリは、最終的には、それがため、Webアプリはブラウザコントロールでホストされているように見えますでウェブアプリはブラウザコントロールでホストされています。
どちらがあなたにぴったりですか?
Web開発スキルを使用してネイティブアプリを作成する場合は、Titaniumが最適です。
複数のプラットフォーム(iPhone、Android、Blackberry、およびその他のプラットフォームに含めることを決定したもの)に現実的にデプロイできるWeb開発スキルを使用してアプリを作成する場合、およびネイティブプラットフォーム機能のサブセット(GPS、加速度計など)。統一されたJavaScript APIを使用する場合、PhoneGapはおそらく必要なものです。
あなたは尋ねるかもしれません:なぜ私はウェブ上でホストされているウェブアプリではなくPhoneGapp(名前を使うことに決めました)を書きたいのですか?その方法で一部のネイティブデバイス機能に引き続きアクセスすることはできますが、ユーザーに「ネイティブ」アプリをダウンロードしてインストールするように強制するよりも、真のWeb展開の利便性を利用できますか?
答えは:あなたがあなたのPhoneGappをApp Storeに提出してそれを請求できるからです。また、そのランチャーアイコンも表示されます。これにより、ユーザーがアプリを忘れることが難しくなります(アプリアイコンよりもブックマークを忘れる可能性がはるかに高くなります)。
あなたは確かにあなたのウェブホストされたウェブアプリへのアクセスに課金することができますが、実際にそれを行うためにプロセスを通過する人は何人ですか?App Storeでアプリを選び、[購入]ボタンをタップしてパスワードを入力すれば完了です。インストールします。数秒後、私はそれを使用しています。他の誰かの1回限りのモバイルWebトランザクションインターフェイスを使用する必要があった場合、それはおそらく私の名前、住所、電話番号、CC番号、およびその他の私が取り出したくないものを取り出さなければならないことを意味します。 tそれを通り抜ける。また、私はAppleを信頼しています-Steve Jobsが私の情報をログに記録せず、悪質な雑誌の購読をキックのために私のCCに請求することはないと確信しています。
とにかく、Web開発技術が関係しているという事実を除いて、PhoneGapとTitaniumは非常に異なります-表面的には同等であるだけです。
私はWebアプリが嫌いで、iTunes App Storeのレビューを読んだら、ユーザーはそれらを見つけるのがかなり上手です。名前は付けませんが、携帯電話にゴミのように見えて実行される「アプリ」がいくつかあります。それは、UIWebViewインスタンス内でホストされるWebアプリだからです。Webアプリを使用したい場合は、Safariを開いて、そこに移動します。iPhone-yなものが欲しいのでiPhoneを購入しました。たとえば、Safari内でおしゃれなGoogle Webアプリを使用しても問題はありませんが、GoogleがWebアプリをネイティブブックマークとしてSpringboardに表示しただけでは、だまされたような気がします。
今行かなければなりません。私のガールフレンドは、そのコンピューターを3秒間使用するのをやめてください。
私はAndroid / iPhone開発のコースを受講しており、8週間はTitaniumで過ごしました(フルタイムではありません)(バージョンはTitanium 1.4.2で、時間は2010年11月頃でした)。これが私の経験です。
APIガイドでは、機能はAndroidとiPhoneの両方で使用できると主張していますが、これは当てはまりません。多くのものが、いずれかのプラットフォームで機能しません。動作が異なるものがあります。
クラスの多くの人がiPhoneアプリケーションを作成しており、大幅な書き直しなしではAndroidで動作させることはできません。私はAnimap(スウェーデンのAndroidマーケット/ Appstoreを参照)と呼ばれるシンプルな子供向けアプリを開発し、Windowsでの開発を開始しました。Androidターゲットが機能するようになったら、OS Xでプロジェクトを開きました。iPhone用のビルド情報は表示されず、Android用のみが表示されます。OS Xでデュアルターゲットプロジェクトを開始する必要があります(関連するファイルを新しいプロジェクトにコピーしました)。次の問題-アニメーションはiPhoneでは機能しません(Androidでは機能します)。スクロールイベントは、iPhoneでは同じように機能しません。(つまり、Androidでは、ユーザーがスクロールを停止して画面から指を離したときにuntouchイベントが発生します。これはiPhoneでは発生しません)。
これはどこかで言及されていないため、基本的に最初の1つのプラットフォームで試行錯誤プログラミングを実行し、次に他のプラットフォームで実行する必要があります。試行錯誤で言うと、他のプラットフォームでAnimapが動作するようなシンプルなアプリを入手するには、約2日かかります。if(android)then ...またはif(iphone)...コード全体に必要です...
手紙の指示に従ってください。Java 64ビットを使用しないでください。KitchenSink 1.4.0デモアプリケーションはコンパイルされません。(1.3は正常に動作します!)パス名が長いと、外部プログラムがすべてのコマンドラインパラメータを受信できなくなるため、Cドライブに直接ファイルを配置する必要があります。(ただし、小さなプログラムの場合は問題ありません)1/3の場合、ツールチェーンは単純に停止し、もう一度「起動」を押す必要があります。その後、おそらく動作します...非常に信頼できません。シミュレーターは起動時に見つかりません。その後、Ctrl + Alt + Deleteでadb.exeを強制終了して、再試行する必要があります。
wifiネットワークでは、ライブ接続が失われることがあり、Titaniumがクラッシュします(コンパイル/デプロイインターフェース)。インターネット接続が機能していない場合、サーバーにログインできないため起動しません。
CSS、HTML、jQueryはこれに比べて簡単です。Titaniumは他の古いGUI APIに似ており、すべてのボタン/フィールドなどにいくつかのプロパティを設定する必要があります。フィールドを間違えるのは簡単です。設定する必要のあるすべてのプロパティを覚えていますか?正しい場所に大文字でつづりましたか?(これはコンパイラーによってキャッチされませんが、その部分をテストすることができれば実行時エラーとして表示されます)
Titaniumでは、コントロールの上に別のビューを追加したり、GUIの別の場所をクリックしたりすると、問題が発生します。
いくつかのAPIページにはAndroidシンボルが含まれていますが、コントロールを作成しようとしたときにのみnullが返されます。シンボルにもかかわらず、Androidプラットフォームで使用できるだけではありません。Androidは特定のメソッドをサポートしていないと記載されていることがありますが、API全体が欠落しています。
デモアプリケーション。パスが長くなりすぎてEclipseプロジェクトフォルダーに配置した場合、コンパイルされないことについて言及しましたか?ルートフォルダーのCドライブに配置する必要があります。現在、シンボリックリンクを使用しています(mklink / J ...)
ラベルを信頼できるように変更するには、適切にlabel.setText( 'Hello World')として使用する必要がありますが、これはまったく文書化されていません。
Titanium.API.info( 'Printouts is a only way to debug');
APIは適切な形式で利用できないため、Eclipseのヘルプなどで通常のコード補完を取得することはできません。アプタナは助けてください!
コンパイラ/ツールはマルチスレッド化されていないようです。多くの試行錯誤を繰り返す必要があるため、高速ハードドライブを備えた高速コンピュータは必須です。貧弱なドキュメントについて言及しましたか?あなたはそれを信頼できないので、あなたはそこですべてを試す必要があります!
以前のプロジェクトから、時間と人力を投入するだけで問題を解決することはできないので、自分が再びクローズドソースを使用しないことを約束しました。プロジェクトに遅れ、厳しい納期を守る必要がある場合に重要です。これはオープンソースであり、ツールチェーンが壊れて実際に修正される理由を確認できました。
バグデータベース
また、開いています。あなたは単にあなただけではなく、試行錯誤にさらに4時間を費やす代わりに回避策を実行していることがわかります。
コミュニティ
私がTitaniumで抱えていた問題の多くは、OSEのような、何百ものスレッド、イベント、メッセージパッシングをサポートするリアルタイムシステムに関する私のバックグラウンドに起因しています。これはTitanium 1.4で動作するはずですが、確実に動作しません。
Javascript(私にとっては新しい)は、実行時エラーが発生すると警告なしで終了します。これはまた、変数名のスペルミスやnullポインターの読み取りなどの小さな一般的なバグが、必要なときにクラッシュしないため、デバッグできることを意味します。代わりに、イベントハンドラなどのプログラムの一部が機能しなくなります。
次に、一部のパラメーターが関数で機能しない(少なくともAndroidプラットフォームではよくあることです)など、Titaniumにはより単純なバグがあります。
試行錯誤のデバッグサイクル速度複数のコンピューターでTitnium Developerを実行したところ、ボトルネックがハードドライブであることに気付きました。ラップトップのSSDドライブは、4200 rpmドライブよりもビルドサイクルが約3〜5倍速くなります。デスクトップでは、RAID 1(ストライピングモード)でデュアルドライブを使用すると、CPUがいくらか高速なシングルドライブよりもビルドが約25%速くなり、SSDドライブラップトップよりも優れています。
使い始めると、これは非常に輝きます。開いているバグトラッカーを見ると、バグの数は修正されたバグの数よりも速く増加し続けていることがわかります。これは通常、バグの数を減らすことに集中するのではなく、開発者が機能を追加し続ける兆候です。
お客様のマルチプラットフォームにかなりシンプルなアプリを提供しようとするコンサルタントとして、これが2つのプラットフォームでネイティブアプリ開発を行うよりも実際に速いかどうかはわかりません。これは、速度に問題がない場合はTitaniumを使用した方が速いのですが、突然見下ろすと穴の中に深く入り込み、回避策に何時間を費やす必要があるのかわかりません。特定の期限/時間/コストに対して特定の機能を約束することはできません。
自分自身:wxPythonで2年間Pythonを使用しています。(そのGUIは一貫性がありませんが、このように壊れることはありません。JavascriptとTitaniumによって使用されるスレッドモデルを理解していないのは私かもしれませんが、彼らのオープンディスカッションフォーラムによれば、私だけではありません。GUIオブジェクトが突然間違ったコンテキストを使用しています/更新しない.. ???)以前は、モバイルデバイス用のCおよびASMプログラミングの経験があります。
[編集-バグのある部分が追加され、スレッドセーフではない] [編集-現在1か月以上、ほとんどPCで動作していたが、一部はOS Xでも動作していた。iPhoneとAndroidのデュアルターゲティングが追加されました。Trial and Errorデバッグサイクル速度を追加しました。]
Corona SDK(Ansca Mobile)はコーディング言語としてLuaを使用しています。Luaの詳細については、lua.orgを参照してください。
さらにWeb統合とネイティブUI要素を追加する予定ですが、Webベースのテクノロジではなく、ゲーム開発などのグラフィックスを多用するアプリケーションに重点を置く傾向があります。言い換えれば、私たちは完全にJavaScript / HTML / CSSでCoronaアプリを書く人々を想定していません。
私は今から1週間以上チタンと仕事をしていて、その弱点をよく感じているように感じます。
1)複数のプラットフォームで同じコードを使用したい場合は、頑張ってください!backgroundGradientのようなものが表示され、Androidバージョンがサポートしていないことがわかるまで驚かれます。次に、グラデーション画像を使用するように戻す必要があります。コードを正しくするために、両方のバージョンで使用することもできますか?
2)奇妙な動作がたくさんあります。Titaniumandroid sdkでは、「重い」ウィンドウとは、戻るボタンを機能させるためだけのもの、またはより優れた方向イベントトラッキングを理解するために必要です。これは、Androidプラットフォームが実際にそうであるようにではなく、TitaniumがAPIを機能させる方法です。
3)暗闇の中で放り投げられると、物事はクラッシュし、コードにコメントを付け始める必要があります。コードを見つけたら、決して使用しないでください。6か月以上にわたって問題となっているAndroidの向きやパーセントなど、特定の明らかなバグがあります。
4)バグ....多くのバグがあり、それらは報告され、数か月間座って、数日で修正されます。Androidに他にも多くの問題があるときに、BlackBerryモバイルSDKをリリースする計画を立てていることに驚いています。
5)Titanium IphoneとTitanium AndroidのJavaScriptエンジンは完全に異なります。Androidバージョンでは、リモートjavascriptファイルをダウンロードし、mootools、jqueryなどのライブラリを含めて使用できます。私がAndroidアプリをコンパイルし続ける必要がなかったので、これを見つけたとき、私は天国にいました。Android APKインストールプロセスはとても時間がかかります!Iphoneはそれのどれも可能ではありません、また、iphoneバージョンははるかに速いjavascriptエンジンを持っています。
多くのネイティブUIパーツから離れている場合、つまり、代わりにsetIntervalを使用して方向の変化を検出し、グラデーションイメージに固執し、戻るボタンを忘れ、独自のアニメーションを作成し、ウィンドウヘッダー、ツールバー、ダッシュボードを忘れます。多くの書き換えを必要としない両方で動作するAPIを実際に作成できます。しかし、その時点では、それはWebアプリケーションと同じぐらい遅いです。
それは価値があるのでしょうか?すべての苦痛の後、それは毎分価値があります。ロジックを抽象化して、どこか他の場所に移動するのではなく、それぞれに異なるUIを構築できます。チタンを使用すると、流動性のあるアプリケーションをすばやく作成できます。各プラットフォームの強力なレイアウト機能は失われますが、シンプルだと思えば、物事は単一の言語で実行できます。
なぜウェブアプリではないのですか?エントリーレベルの市場のAndroidフォンでは、webviewの生成が非常に遅く、より複雑なロジックを実行するために使用できるメモリを大量に消費します。
AppceleratorとPhoneGapのより詳細で詳細な分析を次に示します。 。http
そして、それらがプログラムでどのように異なるかについての詳細は次のとおりです:http : //savagelook.com/blog/portfolio/phonegap-is-web-based-appcelerator-is-pure-javascript
HTML5ウィジェットをiphoneウィジェットのように見せることは1つのことですが、それらを同等にうまく機能させることは、まったく別の問題です。html5アニメーションのパフォーマンス(プレーンなビューのトランジションも含む)、長いリストのスクロール、ジェスチャーへの応答性がベタつかずぎくしゃくしています。iPhoneユーザーは違いに気づくでしょう。
また、さまざまなデバイスでサポートされているジェスチャの種類にもいくつかの違いがあり、プラットフォーム固有のコードや使いやすさの問題が発生します。
私は今のところネイティブアプリを使い続けると思います。
Rhomobile Rhodes(http://rhomobile.com/products/rhodes)は、PhoneGapへのアプローチと非常によく似ていますが、以下を備えた唯一のフレームワークです。
PhoneGapについての私の理解は、それらが多くのiPhone APIにJavaScript APIを提供しているということです。
Titaniumは、Web開発者の背景としては簡単なようです。基本的なTabViewアプリケーションを作成するためのシンプルなXMLファイルであり、コンテンツ領域のすべてがHTML / JSによって制御されます。Titaniumが一部のフレームワークへのJavaScriptアクセスを提供していることも知っています(特に位置情報、電話IDなどへのアクセス)。
更新:Titaniumはバージョン0.8のフレームワークにMaps APIを追加しました。
目的のcを学び、ネイティブアプリをプログラムする必要があります。あなたが人生を楽にすると思うこれらのものに依存しないでください。Appleは、ネイティブツールと言語を使用するのが最も簡単な方法であることを確認しました。100行のjavascriptの場合、要素に応じて、3行のコードで同じことを行うことも、まったくコードを行わないこともできます。チュートリアルをご覧ください。JavaScriptを理解していれば、目的cは難しくありません。回避策は悲惨であり、アップルはいつでも好きなときにプラグを抜くことができます。
あなたが言及したソリューションのうち、OS 3.0で導入されたMapKitフレームワークに直接アクセスできるように見えるものはありません。
Google Maps HTMLウィジェットはMapKit(例としてGoogle Latitudeを参照)ほど良くないため、ネイティブのCocoaタッチアプリケーションを開発するか、拡張してMapKit統合を追加できるソリューションを選択するのが最善の方法です。PhoneGapはこの方法で拡張可能であり(これはオープンソースであるため、デフォルトです)、他のソリューションのいくつかも同様に可能です。
編集:TitaniumがMapKitをサポートするようになりました
コロナを試しました。ストリーミングmp3オーディオをサポートしていないことに気づくまでは良かったです。それで、私はすぐに止まりました。私が本当にiPhoneアプリの開発者になりたいのなら、私はobj cを学ぶべきだと思います。私がラジオ局のリストを備えたアプリを作りたかったすべてそれらをクリックすると、それが再生を開始します。