ケーキを食べて食べることもできます。
インスタンスを使用して、Web アプリとネイティブ アプリを簡単に混在させることができUIWebView
ます。たとえば、Cocoa/Objective-C コードでパフォーマンスが重要な部分を実装したり、ネイティブとして書き直すには時間がかかりすぎる部分に WebKit ビューを挿入したりできます。
App Store での配布が必要な場合は、Web アプリ全体をネイティブ パッケージでラップすることもできます — PhoneGapを参照してください。
ユーザーがホーム画面にページを追加した場合、Safari 経由で起動されたように見えない純粋な Web アプリを開発することもできます — jQTouchを参照してください。
欠点:
Web アプリはネイティブ アプリケーションほど高速ではないかもしれませんが、HTML5 のオフライン サポートと、トランジションやアニメーションなどの WebKit 固有の拡張機能を使用すると、かなり遠くまで到達できます。必ずタッチ イベントを使用してください— Safari の遅延onclick
。
純粋な Web アプリを適切なネイティブ アプリケーションのように感じさせるのは困難です。たとえば、モバイル WebKit はposition:fixed
トップ ナビゲーション バーを複製するために必要なサポートをサポートしておらず、Web ビューのスクロール速度はテーブル ビューとは異なります。修正可能ですが、大量のJavaScriptが必要です。
利点:
急速な発展。sでアプリを複製する必要があったときに、複雑なレイアウトに CSS/HTML がどれほど便利であるかを本当に感謝していますUIView
(InterfaceBuilder は、半固定レイアウトでのみ使用できます)。
Apple が突然別のものを嫌ったり、禁止したりすることはありません。アプリが AppStore から削除された場合、ユーザーが Web 経由でアプリにアクセスできるようにすることができます (Google は Voice アプリと Latitude アプリでこれを行いました)。
Web アプリを Android やその他 (WinMo、HP Pre、最新の BlackBerry など) に移植する方が簡単です。Apple は第 1 位ですが、そのマインド シェアは市場シェアに比例しません。他の人は追いついています。
ネイティブを選ぶなら
Apple の方法で行う必要があります: Objective-C と Cocoa (アプリケーションの一部をプレーンな C または C++ で実行できます)。このテーマに関するチュートリアルや本はたくさんあるので、ここでは繰り返しません。ちょっとしたランダムなアドバイス:
plist は、iPhone の「ネイティブ」形式であるにもかかわらず、クライアントとサーバー間の通信には最適ではありません。XML plist は、XML 標準でも高いオーバーヘッドがあり、バイナリ plist を生成してデバッグするのは面倒かもしれません。JSONは実際には高速で、通常は簡単に操作できます。
ほんの少しの情報だけを取得すると、NSConnection
事態が複雑になるだけです。[NSData dataWithContentsOfURL:]
経由で起動されたメソッドで簡単に使用できますperformSelectorInBackground:
。
UITableView
がスクロールしている間、通知は配信されません。テーブルに画像を遅延ロードする場合は、コールバックを使用してそれらをロードおよび設定します。