ネイティブアプリケーション開発のためのPhonegapの使用[終了]


97

最近Phonegapに出会いました。誰かに試してもらいましょう。開発者がSencha touchやJqueryのようなHTML 5ベースのフレームワークを同時に使用して電話のネイティブ機能にアクセスできると主張するその驚くべきツール。また、コードはAndroidからIphoneにいくらかの労力で移植可能です。私がそれに突入する前に、フォーラムでPhonegapを使用した経験を知りたいと思います。問題点は何ですか?それはエンタープライズレベルのアプリケーション開発のために本当にスケーラブルです。

回答:


95

私はPhoneGapを使用していくつかのアプリケーションを作成しましたが、それが提供するものとしては素晴らしいです。私が指摘したいいくつかの簡単なメモがあります、それはあなたを助けるかもしれません。

Disable device-based features you're not using 加速度計、ジオロケーション機能はデフォルトでオンになっています。それらを使用していない場合はオフにします。アプリの読み込みが速くなり(初期化)、スムーズに実行されます。

onDeviceReady-これは、phonegapがロードされて準備ができると呼び出されるメソッドです。$(document).readyまたはあなたが慣れていることは何でも、ここでは実際には適用されません-インターフェイス/ハードコードされたHTMLのものだけを実行している場合を除きます。GeoLocation などのiPhone機能とやり取りしている場合は、onDeviceReadyが呼び出された後にすべてを実行する必要があります。

Pick a UI/library インターフェース/ライブラリー、jquery-mobile、sencha touch、jqtouchなどのオプションはたくさんあります。これらはそれぞれ独自のアプローチと機能セットを提供します。いくつかの調査を行って使用しますが、組み合わせることは避けてください。ここでいくつかのオプション、ツールについて読むことができます:http : //www.phonegap.com/tool(更新されたリンク)

Also, more on just mobile development in general, with PhoneGapAndroidマーケットとiPhone App Storeを通じて配布されるアプリを作成する場合は、アプリの開発方法に関するガイドラインを網羅したリストを読んでみます。たとえば、上のツールリンクには、Easy APNSと呼ばれる「ツール/プラグイン」があります。これはAndroidには役立ちますが、iPhoneで技術的に実行可能ですが、Apple通知を使用する必要があると記載されているため、開発契約に違反しています。ネットワークなど。これは単なる例ですが、それが最終目標である場合、そのことを読むことで多くの頭痛の種を節約できます。

全体として、特にWeb開発のバックグラウンドを持っている場合は、軽量アプリに最適です。LocalStorage、GeoLocationなどは非常にうまく機能します。これが少しお役に立てば幸いです...そして質問する気分です。

追加編集:

それはあなたが何をしたいか、そしてあなたが何をする方法を知っているかにかかっていると本当に思います。Mattは、iOS向けのネイティブアプリの開発の方が優れているなどと指摘しました。そうすることを学ぶ時間と知識があれば、もちろんネイティブの方が優れています。しかし、PhoneGapは、既存のスキルセットを利用してアプリを構築できるWeb開発者向けに作られています。また、PhoneGapを使用すると、iOS、Android、Symbian、Palm、Blackberry用のアプリをすばやく構築できます。それぞれのコードベースを少し調整します。


2
開発者はPhonegapで分かれているようです。
SaKet

8
結局のところ、AndroidとiOS向けのネイティブアプリを構築するためにさまざまな言語を学ぶ時間とお金がある場合は、ぜひそれを実行してください。複数のデバイスで本当によく、簡単です。
TNC

easyapns ...のみ(アンドロイドいない)iPhoneの通知のためではないあなたはそれが開発者の合意を破るという考えを取得する場所、アップル通知ネットワークを使用しない
Traveling_Monk

いい説明です。ありがとう:)
Mrunal

良いデバッガはあなたの親友です。リモートデバッグのiOSにこれをチェックアウト:stackoverflow.com/questions/7242997/...
JoshuaDavid

52

PhoneGapで読んだ最高のパフォーマンスガイドは次のとおりです...しっかりした安定したパフォーマンスを確保するために注意すべきことがたくさんあります...しかし、一晩で読むことができます。

ここに最高のナゲットがあります:

PhoneGap /モバイルWebパフォーマンスのヒント

新しい機能を有効にする

建築

Ext JS 4でアプリを設計する:http : //www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2


1
ドキュメンテーションの素晴らしいコレクション..本当にありがとう:)
Mrunal

29

Phonegapについて私の意見を述べる前に、私は決してWeb開発者ではないことを少し免責する必要があります。私にとって、JavaScriptとCSSを書くことは歯を引くようなものです。そうは言っても、Phonegapは好きではありません。

このフレームワークには、非常に魅力的な側面がいくつかあります。主に、「Write-Once-Run-Anywere」の魅力と「I-Don't-Have-To-Learn-Objective-C?」の魅力があります。アピール。このフレームワークでは、加速度計などのハードウェア機能の一部にアクセスすることもできます。これらはすべてある程度まで有効です。

とはいえ、優れたiOSアプリは、クロスプラットフォームフレームワークを使用して構築されたものではありません。非常に多くの非常に詳細なビューアニメーションカーブやスクロールバウンスなど、そこにないまで、多くのユーザーや開発者が見落とすまで、ネイティブUIKitコントロールによって処理される非常に繊細でエレガントなUIインタラクションが多数あります。 WebビューベースのUI。あなたはそれらを完全に再現するために苦労することができますが、その時間の投資のために、なぜ単にネイティブにならないのですか?

注意すべき2番目のポイントは、Phonegapで構築されたiOSアプリケーションのサポートコミュニティは、ネイティブで開発されたアプリケーションよりも大幅に小さいことです。プロジェクト中にコミュニティに依存する必要がある場合は、これによって一時停止することもできます。

結局、それはあなたが提供したい体験の質に帰着します。Phonegapでは上限が低くなります。開発時間の短縮と移植性の向上と引き換えに、優れていないユーザーエクスペリエンスを受け入れる準備ができている場合、それは非常に実行可能なフレームワークです。

興味のある人のためのサブテキストとして、マルコ・アーメントとダン・ベンジャミンは最近このトピックについて議論しました。こちらで聴くことができます


5
+1コミュニティの大きさの大きなポイント。
David Tang

5
+1ユーザーエクスペリエンスの優れた点。iOSでは本当に重要です。

1
フォンギャップでも同じユーザーエクスペリエンスを作成できます。学習目的だけの問題ではないと思います。他のモバイルOSが普及するにつれ、AndroiがWindows MobileとFirefox OSに何が起こるかを見てみましょう。iOSが持つx%の市場シェアに制限されたくない場合は、クロスプラットフォームソリューションが最適なソリューションになります。
memical

1
@ memical、Facebook開発チームはあなたに反対するでしょう。市場のカバレッジの観点からそれが意味をなさないと言っているのではなく、ネイティブのパフォーマンスほどではありません。あなたの言うことにもかかわらず、それは事実です。
Matt Wilding、

4

インストール手順には、多数のパッケージ(Java、Apache Ant、Ruby、iOS SDK、Android SDK、およびPhoneGap自体)が含まれます。これらはすべて正しくインストールおよびセットアップする必要があります。これは大きな努力となるでしょう。公平に言うと、ベータ版にはPhoneGap Buildと呼ばれるものがあります。これにより、これがはるかに簡単になります。

NS Basic / App Studioで使用して、アプリストアの対象となるアプリを作成します。


PhoneGap Buildは、アドビがオリジナルの開発者Nitobiを購入してから6か月以上経過した1年後もまだベータ版です。
DOK

2

ゲームやウィジェットを作成していない場合は、見栄えのするシンプルなアプリを選択するだけでよいので、電話ギャップを選択します。

ただし、JSには注意する必要があります。たとえば、アニメーションを実行する場合は、小さな間隔(100ミリ秒など)でタイマーを設定するのを避け、jqueryなどのアニメーションは避けてください。たとえば、短い時間のタイマーを設定してフェードをアニメートする代わりに、各ポイントで不透明度を段階的に減らします(これはjqueryのフェードが機能する方法です)、不透明度1から不透明度0へのcss3遷移を使用する必要があります。

私のアドバイスは、すべての電話ギャップがie6を実行しない後、zeptojs.comのようなもので行くことです:-)

JSをもっと軽くする方法に関するチュートリアルをチェックしてください

http://bcksp.blogspot.com/


実際にゲームもビルドできるようになりました
記憶的'19

1

HTML5とPhonegapが提供する以上のハードウェア機能やパフォーマンスが必要ない場合は、カプセル化されたWebアプリ(および他の機能への制限付きアクセス)が優れたソリューションです。

多くの企業が大規模なWebアプリを展開しています。Phonegap(またはコンテンツが埋め込まれたプレーンなWebビューコントロール)を使用すると、これらのWebアプリをオフラインで実行できます(もちろん、必要なオンラインデータを除きます)。


0

複数の異なるデバイス間で展開する場合、言及されていない1つの「問題」:デバイスが多いほど、学習曲線が大きくなります。PhoneGapを使用してiOSデバイスに展開するには、MacでのXcodeの基本を学ぶ必要があります。Androidにデプロイするには、EclipseやAndroid SDKなどをインストールして学習する必要があります。他のプラットフォームでは、独自のSDKを使用する必要があります。初歩的なXcode、Javascript、Javaを学ぶことで、エラーや一般的な構文を理解することができます。

「一度作成すれば、どこにでもデプロイできます」というステップはたくさんありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.