ネイティブ(つまり、ブラウザではnot)モバイルアプリを作成します。私はWeb開発者なので、Phonegapを試すべきか、またはJavaまたはObjective-Cでネイティブアプリをビルドするだけなのかを判断するのに苦労しています。
アプリの要件は簡単です。 GPS/wifiロケーション、Facebook統合、およびアプリケーション固有のFacebookと友達の関係を処理するためにデータベースが必要になると思います。たとえば、ゲームのハイスコアのように-そのようなもの。
私はWeb開発者であり、JavaでもObjective-cでもありません。まだPhonegapを使用したことがないので、それが実現できるかどうかはわかりません。私の要件。
私の質問は次のとおりです。 Phonegapをアプリに使用できますか、または新しい言語に飛び込む必要がありますか?
この記事のより大きなバージョンも見つけることができます[〜#〜] here [〜#〜] (、それを透明にする私の個人的なブログです。
ハイブリッドアプリ:
Pro:
短所:
ネイティブアプリ:
Pro:
短所:
あなたの場合、あなたが優れたウェブ開発/設計スキルを持っているか、優れたデザイナーを持っているなら、ハイブリッドアプリを選ぶべきです。このアプリが複雑なアプリになる場合にのみネイティブになります。あなたが望むすべては、ハイブリッドアプリで行うことができます。そして、あなたは素晴らしいサポートコミュニティを見つけるでしょう。
私が以前に言及しなかったことは、ここで特に注意する必要があります。経験豊富な開発者であっても、解決できない多くの問題を見つけるでしょう。ハイブリッド開発は、基本的なWeb開発と間違えられるべきではありません。
すべてのモバイルプラットフォームには、携帯電話の動作がデバイスによって異なることは言うまでもなく、独自の一連の問題があります。可能であれば、ネイティブアプリはほとんどすべてのデバイスで正常に動作するため、常に低速なデバイスで動作するアプリを作成してください。
最後にもう1つあります。ハイブリッドアプリを作成する場合、アプリの開発にかかる時間は約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モバイルフレームワーク -名前がすべてを伝える
アプリケーションにアニメーション効果がなく、シンプルな場合は、複数のタイプのモバイルOSで起動できる短い時間でweb(Phonegap)czで作成することを好みます。アプリにさらに多くのUIエフェクトとアニメーションが含まれている場合は、ネイティブを使用することをお勧めします。
webview(Phonegap)で開発している場合でも、Android and iOS
Phonegapがデバイスで実行する方法
Ios iOS WebViewでのアニメーションとビューの読み込みは孤立しており、アニメーション効果ははっきりと観察できます
Android
HTMLコードの実行中にAndroid、Android効率的なアニメーション表示ですが、一部のデバイス(ほとんどが古いバージョンと一部の会社のデバイス)は良好なアニメーション効果を提供できません。レンダリング効果はAndroidのデバイスによって異なります。
Phonegapについての私の謙虚な意見では、単純なアプリを開発することができます。ドキュメントだけでは不十分であり、他の人が言っているように、アプリをビルドするよりもバグの修正やプラグインの検索に多くの時間を費やすと言われています。私はAndroidまたはiOSまたは何でも、あなたの時間の投資としてそれを見て努力します。(はい、私のコメントは少し偏っています)。
最後に調べたところ、PhoneGapはすべてhtml、css、およびjavascriptでした。だから、あなたは家にいるように感じるかもしれません。 PhoneGapはGPSロケーションを処理できます。PhoneGapのドキュメントの この記事を参照してください。 Objective Cを習得するかどうかは、Web開発から少し離れているため、新しい言語をどれだけ早く習得するかにかかっています。
それは完全にあなたのニーズに依存します
最初のアプリ(ネイティブAndroid、データベース駆動、安らかな接続アプリ)を数か月公開した後、phonegapを使用してアプリを書き直すことにしました(アプリをiOSに複製するため、ObjCではなくjavascriptを使用します) ?)
Androidを使用していると、Java開発者、すべてをゼロから学び、コーディングするのに3週間かかりました。ListAdapterをRestful Serviceと同期させる方法について何度か頭を叩きました。私のサーバーから、アプリのテーマを設定する方法(特に、透明、境界線などの特殊効果に関しては、私の意見では非常に難しい)、およびコードベースを効果的に構成する方法(Javaに精通している場合) 、すべてのクラスが互いに非常に結合していることがわかります。これがほとんどのチュートリアルで書かれていることですから)
Phonegapでは、すべてが1週間で完了します。 Css、html、onsenui
およびangular
を使用すると、1年生の生徒の課題と同じようにGUIを開発でき、テーマは簡単です。実際のデバイスで実行する必要はありません。開発中にブラウザを使用するだけで、コードを変更して更新するだけで十分です。 Angular
は、DOMとの2方向のバインディングを提供します。これにより、データを収集および表示する際に非常に素晴らしいことができます。例えば:
<ul ng-each="for sentence in sentences" >
<li>{{ sentence.title }} </li>
</ul>
変数sentences
が変更されると(サーバーから取得)、DOMも自動的に変更されます。ただし、javascriptはjavascriptのみです。アプリをデバッグするとき、特にPouchDBでMapReduce関数を実行するとき(大きな間違いで、cordova-sqlite-plugin
今夜)そして、ほとんどの場合、問題を把握するためにログを読む必要があります(ChromeのツールとFirebugはブレークポイントをキャッチできません)。また、アプリの再構築(javascript、再び)が難しいため、最初の兆候でコードベースを注意深く整理しないと、混乱を招く可能性があります(そして、デバッグは再び苦痛になります)。 PhoneGapはWebベースでもあるため、「このプラットフォームでは、そのbla bla blaをサポートしていないため」(たとえば、localStorage
)と聞き、見つからない場合はそれを支持する必要があります。良いプラグイン。
結論 Webベースのストレージの制限を除いて、PhoneGapはデータベース駆動型のシンプルなGUIアプリと非常にうまく機能します(データベース駆動型アプリのほとんどは、いずれにせよシンプルなGUIを現在持っています)。その種のアプリを開発するなら、それを使い続けてください
ionic を使用してチェックアウトします。これは、受け入れられた回答に記載されているいくつかの短所を相殺するために、angular.jsによってサポートされています。従業員ディレクトリアプリを起動するためのチュートリアル: http://coenraets.org/blog/2014/02/sample-mobile-application-with-ionic-and-angularjs/
@Gajotresは素晴らしい反応を書きましたが、ハイブリッドアプリのパフォーマンスは2012年から大きく進歩しました。2017年のハイブリッドアプリ開発とネイティブアプリ開発の違いをカバーする 関連する質問 に答えました。
話の教訓は、過去数年間でハイブリッドアプリの開発が大幅に改善されたということですが、特定のユースケースではネイティブとは一致しません。
Ionic(最初に 201 でリリース)およびReact Native(最初に 2015 でリリース)ネイティブのようなコンポーネントを使用したハイブリッドアプリの構築がこれまでになく簡単になりましたハイブリッドアプリは、高速でバグが少なく、ネイティブUIとより深く対話できるようになりました。
ハイブリッドアプリのパフォーマンスのしきい値は、ほんの数年前よりも大幅に高くなっていますが、まだネイティブ言語でアプリを開発する必要があるかもしれません。
はい、一般的な感情は、ハイブリッドアプリはネイティブアプリよりも劣っていることです。これは、Webテクノロジーに精通している開発者にとってはイライラする可能性がありますが、正当な理由があります。
- ネイティブコンポーネントと対話できない:
cordova-plugin-statusbar
が存在します。Webテクノロジーを使用してネイティブコンポーネントとやり取りし、操作する制限があります。私が個人的に遭遇した大きな(そしてイライラする)問題の1つは、キーボードがアニメートするときにキーボードの上部に入力ができないことです。これは、 Slackのようなチャットアプリで。- 300msの遅延:最新のブラウザは 段階的に廃止 を始めていますが、Hybridアプリに存在する2番目の遅延の一部がアプリは遅く、ネイティブではないと感じます。この問題は、 FastClick.js などの回避策と Ionic などの一部のフレームワークをデフォルトで排除するユーザーが増えるにつれて、要因としては少なくなっています。
- 憎しみは正しい(並べ替え):ハイブリッドアプリの開発は長い道のりを歩んできましたが、まだ存在しない軽微な不具合や遅延機能がまだありますネイティブアプリで。画面の遷移、アプリの切り替え、およびバッテリの寿命は、バグが表示される一般的な領域であり、バグが次第に目立たなくなってきたとしても、しばらくの間そうなる可能性があります。
- いくつかの優れたネイティブソリューションがあります:Appleの Swift などの新しい言語では、ネイティブ言語でのコーディングが容易になっています。つまり、 React Native などのツールは、開発者がJavaScriptなどの使いやすいテクノロジーでコードを作成でき、ネイティブコードにコンパイルできるようにすることで、ネイティブとハイブリッドの間の灰色の領域に入ります。
話の教訓は、それがあなたの特定のユースケースにとって何が重要であるかに本当に依存するということです。ハイブリッドアプリは実行可能なオプションになり、恥ずかしいサイドショーではなくなりました。逆に、ネイティブUXとのやり取りには、ネイティブアプリ以外ではまだ不可能なマイナーな側面がまだあります。
全体として、プロジェクトをマッピングし、アプリがネイティブアプリの利点を必要とするかどうかを判断することをお勧めします。 Ionic View appなどのツールを使用すると、アプリの基本的なモックアップをまとめて、実際のデバイスでハイブリッドアプリが機能するかどうかを簡単にテストできます。
ここで見落とされがちな素晴らしいオプションの1つは、Xamarinを使用した開発です。
OPのWeb開発者スキルを活用するのには役立ちませんが、PhoneGapと比較して多くの長所があり、ほとんど欠点はありません。
したがって、Xamarinは、今日のクロスプラットフォーム開発にとって非常に堅実なオプションです。
また、ここですべての優れた記事を見つけることができます http://www.comentum.com/phonegap-vs-native-app-development.html 、この2つの方法を異なるカテゴリで比較します。
概要は以下のとおりです。
PhoneGapとネイティブUIを非常にうまく統合するAppGyverステロイドもあります。
ステロイドを使用すると、ネイティブタブ、ネイティブナビゲーションバー、ネイティブアニメーションとトランジション、ネイティブモーダルウィンドウ、ネイティブドロワー/パネル(facebookサイドメニュー)などをPhoneGapアプリに追加できます。基本的に、CSS + JSがカットしない場所であればどこでも、ステロイドはアクションを実行するためにネイティブレイヤーに到達します。
また、ステロイドを使用すると、1つではなく、複数ページアーキテクチャ(複数のWebビュー)を使用できます(必須ではありません)。シングルページアプリでは、移行のようなものはすべてCSSの回避策であり、Maniが言ったように、最新のタブレットや携帯電話でもスムーズにするのに十分な速度ではありません。 PhoneGapアプリの場合、特に多数のプロセスが実行されている場合、またはJSプロセスが(iOS 8で修正されている)ためにスクロールしている場合、それは常に明らかです。
マルチページアーキテクチャを使用すると、100%のネイティブパフォーマンスが得られます(これらの部分は実際にはareネイティブであるため)。また、phonegapとは異なり、一貫したユーザーインターフェイスの動作と簡単なデバッグが可能になります(単一ページのアプリでは、アプリで特定の状態を再現するのが難しいことがよくあります)。マルチページを使用すると、コードベースが簡潔に保たれるため、アプリの開発と保守がはるかに簡単になります。
デモを確認してください: http://youtu.be/oXWwDMdoTCk?t=20m17s