ネイティブとphonegapで悩む、シンプルなアプリの要件
質問
ネイティブ(意味不明。 ではない の意味)モバイル アプリを作ろうとしています。私は Web 開発者なので、Phonegap を試すべきか、それとも Java または objective-c でネイティブ アプリを構築すべきかどうか、判断に迷っています。
アプリの要件は単純です。GPS/wifi の位置情報、Facebook の統合、および、アプリケーション固有の Facebook と友人の関係のいくつかを処理するためのデータベースが必要だと思います。たとえば、ゲームでのハイスコアのようなものです。
私は Web 開発者ですが、まだ java も objective-c も知りません。Phonegap を使用したことがないので、私の要件を満たすことができるかどうかはわかりません。
そこで、私の質問は以下の通りです。 私のアプリに Phonegap を使用できますか、それとも新しい言語に飛び込む必要がありますか?
どのように解決するのですか?
関連する
この記事の拡大版もご覧いただけます。 こちら は、私の個人的なブログであることを明確にするために。
ハイブリッドとネイティブアプリの比較
ハイブリッド アプリ。
プロ
- 特に長年のウェブ開発者であれば、より迅速な開発が可能です。
- 1つの言語を、利用可能なすべてのプラットフォームで使用できます。もちろん、これには Phonegap ラッパーが必要です。Objective C、Java、C#を学習しなくても、開発が可能です。Phonegapの実装の基本を理解するだけでよいのです。上記の言語を少し弄る必要はありますが、理解する必要はありません。
- Phonegapは、iOSネイティブのタブバーやAndroidネイティブのタブバーなど、いくつかのネイティブ機能を提供することができます。
- 低予算で、サポーターやデベロッパーの巨大なコミュニティがあります。
- ハイブリッド アプリは、両方のアプローチの利点の多くを提供します。最も一般的なデバイス API へのアクセス、および幅広いデバイス カバレッジがある一方で、完全なネイティブ アプリにありがちな専門スキル、大きな予算、および市場投入までの時間が不要になります。
短所。
- 文字通り、そして比喩的に、しばらくすると血の小便をすることになります。
- 携帯電話 (現在のタブレットでさえ) は、ハイブリッド アプリをスムーズに実行できるほど高速ではなく、モバイル JavaScript の機能はせいぜいベッド程度です。Android プラットフォームは悪夢で、CSS/CSS3 の実装が不十分なのは言うまでもなく、ページ遷移もスムーズには動きません。Android 2.Xと4.Xのネイティブアプリに違いがあるとお考えなら、Android 2.XのJavaScript/CSSの実装をご覧ください。 iOSはまだましですが、CSS3の実装が不足しており、ページ遷移ははるかに優れています。このように、ネイティブ アプリは常に優れたユーザー エクスペリエンスと一般的な感覚を持っています。
- アプリを構築するよりも、アプリを修正する方がはるかに多くの時間を費やすことになります。各プラットフォーム用にアプリを作成するのは首の痛くなる作業です。異なるプラットフォームのブラウザは、最新の HTML 機能や API をすべて一様にサポートしているわけではないので、開発やテストが困難になる可能性があります。
- 優れたデザイナーがいなければ、アプリを作ろうとは思わない。見た目がすべてだ。
- あなたが何をしているのかわからない場合は、あなたのアプリは、Appleのアプリストアの許可を得ることができない可能性が高いです。彼らはサードパーティのPhonegapのPayPalプラグインを発見した場合であってもGoogle Playストアは、あなたのアプリを禁止されます。
ネイティブ アプリ。
プロ
- ネイティブのモバイル アプリは、高速で流動的な最高のユーザー エクスペリエンスを実現し、デバイスの機能への最高のアクセスを提供し、アプリ ストアで発見することができます。
- 間違いなく、ネイティブ アプリは基盤となるモバイル プラットフォームに完全にアクセスできます。 ネイティブ アプリは通常、非常に高速で洗練されているため、高性能のアプリやゲームに最適です。これは十分すぎるほどです。
短所。
- 大きな予算で、少なくとも Java と Objective C の知識を持つ人/s が必要で、Windows モバイル アプリが必要なら C# も必要です。 開発をしたことがない人はObjective Cを選びましょう(iOSの方がまだましなプラットフォームです)。 それ以外の場合はJavaを選びましょう。Javaは他の言語と構文が似ているので、C#からJavaへ、JavaからC#へ、ということが簡単にできます。Objective Cは、それ自身の世界です。それはかなり珍しい構文を持っています。
- すべて開発するには長い時間がかかるかもしれませんし、時は金なりです。これは、アプリの複雑さに依存します。
あなたの場合、優れたWeb開発/デザインのスキルを持っているか、優れたデザイナーがいるのであれば、ハイブリッドアプリを選択すべきです。ネイティブにするのは、このアプリが複雑なものになる場合だけです。ハイブリッド アプリでは、あなたが望むものはすべて実現できます。そして、あなたは素晴らしい、サポートするコミュニティを見つけることができます。
ハイブリッド アプリ
前述しなかったことですが、ここでは特に注意する必要があります。たとえあなたが熟練した開発者であっても、解決できない多くの問題を見つけるでしょう。ハイブリッド開発は、基本的な Web 開発と間違えないようにしなければなりません。
携帯電話はデバイスによって動作が異なることは言うまでもありませんが、すべてのモバイルプラットフォームには独自の問題点があります。ネイティブアプリはほぼすべてのデバイスで正常に動作するため、可能であれば常に低速のデバイスで動作するアプリを作成する必要があります。
ハイブリッドアプリを作る場合、アプリ開発にかかる時間は全体の30%から50%程度で、残りは特定のプラットフォームのデバッグと学習に費やされます。私を信じてください、数年のモバイル開発の後でも、時々、一人で解決できない、あるいは十分に速く解決できない問題に直面することがあります。
だから、モバイルフレームワークを選ぶときは慎重に、2-3個を選び、それらについて数日かけて読んでください。
リンク
以下は、あなたが決めるのに役立ついくつかのリンクです。
PhoneGap + jQuery Mobile 1.4 チュートリアル - これは、PhoneGapとjQuery Mobileの最新バージョンのためのステップバイステップのチュートリアルです。
PhoneGap + jQuery Mobile 1.4 チュートリアル - MacOS版 - MacOSでのPhoneGapデプロイメントのステップバイステップのチュートリアルです。 jQuery Mobileの部分は以前の記事でカバーしていますので、重複はありません。
jQuery Mobile と Sencha Touch の比較 - jQuery MobileとSencha Touchの比較
jQuery Mobile と Kendo UI の比較 - jQuery MobileとKendo UIの比較
7つの最も有名なHTML5モバイルフレームワーク - 名前がすべてを物語る
あまり知られていない7つのHTML5モバイルフレームワーク - 名前がすべてを物語る
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] match_parentとfill_parentの違いは何ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み] アンドロイドアプリのユーザーデータを消去する
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アンドロイドフラグメント onRestoreInstanceState
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] アンドロイドのクライアントでヒープアップデートを有効にする方法
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。