12

私は iOS (ネイティブ) 開発者であり、App Store が登場して以来ずっとそうです。それ以来、Windows Phone と Android についても少し学びました。ネイティブよりも HTML5 Web アプリを構築する傾向が避けられないことに気付いており、予想よりも急速に成長しているようです。ほとんどの場合、ネイティブに移行するための非常に多くの議論があり、HTML5 に移行するための議論はごくわずかです (つまり、クロスプラットフォームです!)。最近ではさらに多くの理由があり、それが正当でない場合もあります。

私は、モバイルアプリの「未来」が HTML5 にあり、プラットフォーム間での大量配布を可能にする PhoneGap のようなツールにあるという考えを支持しているわけではありません。Web アプリでのエクスペリエンスは、ネイティブ アプリと比較して常に標準以下であり、その上、多くの神話が浮かんでいる傾向があります。たとえば、「クライアントは、複数のプラットフォームでのネイティブ開発にお金を払いません。費用がかかりすぎます!」などです。これは神話です。多くのクライアントが、取得しているアプリの品質の違いを本当に知っている場合、料金を支払うことになります。これは、ほとんどの場合、クライアント向けの Web アプリを構築していない業界のリーダーによって何度も証明されています。CEO が外部委託したアプリを手に入れたときに起こった訴訟に近いことさえ知っています。それは PhoneGap/HTML5 アプリケーションでした。

HTML5 ルートに移行するとコードと時間が大幅に節約されるという噂もありますが、必ずしもそうとは限りません。デバイス/プラットフォーム全体でのテストは、これらのプラットフォーム全体でアプリを機能させるために必要な CSS と JavaScript の量は言うまでもなく、通常、コードの混乱を招き、関連する問題のデバッグに何時間も費やします。典型的なネイティブ開発者は、単純なリストベースのナビゲーション/詳細ビューをいくつかのプラットフォームで数時間でポップアウトできますが、HTML5 を構築して「模倣」し、まったく同じ機能とルック/フィールを偽装するのにほぼ同じ時間がかかる可能性があります。 . また、PhoneGap/HTML5 ルートに進むと、プラットフォームやテクノロジーの最先端ではなく、常に遅れをとることになるという事実についてはどうですか?

私の最大のフラストレーションは、一部の開発ショップが、クロスプラットフォームであることに魅力を感じてクライアントに PhoneGap/HTML5 アプローチを推奨していることさえあるように見えることです。実際には、パフォーマンスとルック/フィールの違いが伴います。

私は間違いなく時代に遅れずについて行き、最悪の事態に備えたいと思っています。それが、私がこれらのツールを学ぶために分岐している理由です. これについて考えているのは私だけですか?この意思決定プロセスをどのように行うかを合理的な方法で人々に説明する方法について何かアドバイスはありますか?

これについての返信を受け取る前に、ウェブアプリ ルートが正しい方法である場合があることを完全に理解していることに注意してください。大丈夫。また、年が経つにつれて HTML5 アプリの割合が増加し続けることを予測が示していることも理解しています..必要が生じた場合(カメラなど)」私の個人的な意見は、逆であるべきだということです。「UI と機能の特定の部分が HTML5 でより簡単/迅速に実行できる場合を除いて、すべてのアプリはネイティブであるべきです」。

考え?この種のフォーラムが不適切である場合は、事前にお詫び申し上げますが、ご意見やアドバイスをお待ちしております。ありがとう!-ヴィンセント

4

4 に答える 4

10

これは、ネイティブと HTML5 の単純なケースです。技術的に言えば、ブラウザベースのソリューションがネイティブベースのソリューションと同じくらい強力になることを妨げるものは何もありませんが、それが起こることは決してありません。その理由は次のとおりです。関係するベンダー: Apple、Google、および Microsoft には、これを実現するインセンティブがありません。考えてみてください。彼らがそれを完全に標準化した場合、彼らのプラットフォームにはほとんどまたはまったく利点がありません. メッセージングを例に取りましょう。HTML5 経由で提供される最高の Apple または Android メッセージング サービスを利用できますか? もちろんできますが、なぜプラットフォーム ベンダーはこのルートを取るのでしょうか? なぜ彼らは iOS SDK や Android SDK の価値を下げるのでしょうか? つまり、これはブラウザ戦争がモバイル空間でのみ繰り広げられたようなものです。ブラウザ戦争が始まったとき、誰もが uber-browser が登場すると思っていましたが、登場することはありませんでした。今回も同じ理由でありません。したがって、実際には、説明されているように、オープンとクローズの技術的な問題だけではありません。ベンダーが最新かつ最高のものをオープンな方法で提供しないという事実です。これは、ほとんどのクロス プラットフォーム ソリューションがベンダー リリースよりも一歩遅れている理由の 1 つです。

この別の例は、WebGL のサポートです。WebGL のサポートには、必要以上に時間がかかりました。WebGl よりも優れたものがあれば、それは最初にネイティブで提供され、次に WebGL は最終的にすべての主要なデバイスのすべてのブラウザーで完全にサポートされます。しかし、サポートは常にネイティブに遅れをとっています。ポイントは、ベンダーが好む方法であるため、ブラウザベースは常に一歩遅れることです。

また、実際には HTML5 アプリと同じようにネイティブ アプリでも HTTP を使用しているにもかかわらず、多くのアプリ ユーザーは、HTML5 に移行することで事実上 Web/インターネットに準拠していると考えていることにも注意してください。ほとんどのネイティブ アプリは、HTML5 アプリと同じように HTTP 経由でサービス アクセスを使用するため、これはよくある誤解です。唯一の違いは、JavaScript とネイティブな方法でリクエストとレスポンスを処理していることです。

セキュリティも考慮すべきもう 1 つの重要な問題です。HTML5 を使用している安全なアプリはいくつありますか? 安全なトランザクションを行うほとんどのアプリはネイティブであり、それには正当な理由があるに違いありません。

Android または iOS で最近リリースされた機能の例と、PhoneGap によって提供されるこれらの機能のサポート レベル、およびこれらの SDK 機能をサポートする際の PhoneGAP のロードマップを提供できると便利です。言い換えれば、SDK の新しいバージョンが公開されたとき、PhoneGAP はロックされておらず、Titanium もそうではありません。ただし、私の意見では、PhoneGap はネイティブ ソリューションの主な競合相手であるため、ネイティブ ソリューションとの比較が最も重要です。クロスプラットフォームである独自の SDK とネイティブを比較するのは時間の無駄だと思います。これは、PhoneGAP や Native に匹敵するほど魅力的ではありません。

ただし、PhoneGap に興奮している人には注意が必要です。組み込みのプラグインは必要なすべてのプラットフォームに存在する可能性がありますが、PhoneGap 用に独自のプラグインを作成する必要がある場合はどうすればよいでしょうか? (PhoneGAP で GAP の背後にある実際のストーリーを学習しようとしています) 既存のプラグインとはまったく異なることをしたい、または既存のプラグインをカスタマイズしたいからです。これは、ライト ワンスでどこにでも展開するシナリオではありません。その機能が必要なプラットフォームごとにカスタム プラグインを作成する必要があります。つまり、再びネイティブに戻ります。そのため、(HTML5 アプリを実行する予定のすべてのプラットフォームで) プラグインを慎重に評価し、それらが現在および将来必要になるものであることを確認してください。一方、PhoneGAP のない HTML5 はかなり不安定で、

もう 1 つのポイントは、アプリが実際にやり取りできる方法はいくつかありますが、HTTP を使用するのはその 1 つだけです。また、多くの場合、デバイス上のオペレーティング システムやリソースと最適な方法で対話する必要があります。基礎となるテクノロジーが使用されているかどうかは気にしないが、多くのネイティブ アプリとのやり取りに基づいて大きな期待を寄せているユーザーは言うまでもありません。

HTML5 アプリケーションを実行する場合、基本的には別のアプリケーション、つまりブラウザー内でアプリを実行しています。ブラウザ アプリは、プラットフォーム ベンダーが許可するほど強力ではありません。そして、歴史が何らかのガイドである場合、それは進化し、より多くの機能が追加されますが、技術的およびビジネス上の理由から、最適化されたり、他のすべてのベンダーと同期したり、基盤となる OS および SDK と同じペースになったりすることは決してありません。

ユーザーは最高のエクスペリエンスを望んでいます。Android を所有している人は多く、iPhone と iPad を所有している人もたくさんいますが、両方を同時に所有している人は比較的少ないことに注意してください。言い換えれば、Android ユーザーはあなたのアプリの iOS バージョンをあまり気にしませんし、iOS ユーザーはあなたの Android アプリをあまり気にしません。しかし、ユーザーは、選択したプラットフォームでアプリがどのように動作するかを本当に気にかけています。彼らは、両方のプラットフォームで見たことがないので、両方のプラットフォームで半分もうまく動作するものを望んでいません。ユーザーはほとんどの場合、一度に 1 つのプラットフォームでアプリを体験します。

ネイティブ ソリューションと HTML5 の位置付けに関しては、意思決定者に、ネイティブが好きなネイティブ デベロッパーだけでなく、ネイティブ ソリューションが好きなプラットフォーム ベンダーもいるということを認識させることが重要だと思います。 OSの改良で。これは、モバイル エクスペリエンスが向上し、アプリ ユーザーが満足していることを意味します。

于 2012-07-13T19:19:35.957 に答える
3

なんとなく理解できると思います。私はしばらくネイティブ Android アプリケーションを開発していましたが、社内でのクロス プラットフォーム開発について多くの議論がありました。

私の経験では、本格的なアプリケーションを構築したい場合、Phonegap、Appcelerator、Adobe Air などの多くのモバイル クロスプラットフォーム ソリューションは失敗します。おそらく、これらのソリューションは将来的に改善されるでしょう。

現時点では、モバイル アプリケーションの開発には次のことをお勧めします。

  • 非常にシンプルなアプリ (ほんの数ビュー)、特別なことはありません: Phonegap をお勧めします。Simple Apps は phonegap で問題なく動作し、「クロスプラットフォーム」ソリューションが得られます。
  • もう少し複雑なもの (多くのサーバー通信、同期など): ネイティブを選びます。この場合、ネイティブ アプリケーションの API/パフォーマンス/デバッグ ツールは、多くの場合、「クロスプラットフォームの議論」よりも大きなメリットになります。

モバイル Web サイトは少し異なります。多くの場合、クリーンアップしてモバイル デバイス用に最適化するだけでよい「通常の」Web サイトが既に存在します。この場合、多くの時間を節約できる既存のコード/インターフェースを使用できます。

于 2012-07-13T19:38:29.463 に答える
0

これは、「将来、どちらのプログラミング言語が勝利するか」という質問、または (sotto voce) vi と emacs の質問に類似しています。アプリを作成する方法は複数あります。問題と開発者のスキルセットに応じて、ネイティブには利点があり、HTML5 にも利点があります。両方のワークフローに慣れることをお勧めします。これにより、将来的に推奨を行う資格が得られるだけでなく、他の人の意見を可能な限り受け入れることができます。

于 2012-07-13T18:22:51.310 に答える
0

その他の重要な問題がいくつかあります。優れたメタプログラミングの方法はありますか? Titanium や Java の背後にある最初のアイデアのように。また、マップなど、ネイティブに実装されている方が優れているものもあります。また、CPU、メモリの増加により、ネイティブを支持するいくつかの議論の関連性が低くなります。

于 2012-07-13T19:27:14.637 に答える