PhoneGapとCordova後のモバイルアプリ開発

Todd Anglinは、Progressの製品戦略および開発者関係担当副社長です。

PhoneGapは、ほぼ10年間、ネイティブデバイス機能にアクセスできるモバイルアプリを作成するための低摩擦パスをWeb開発者に提供してきました。PhoneGapを使用すると、多くの開発者が、すでに知っていて気に入っているスキルとJavaScriptライブラリを使用して、iOSとAndroid(および、しばらくの間はWindows PhoneとBlackBerry)用のアプリを作成できます。このWebスキルとネイティブデバイスアクセス(一般に「ハイブリッド」として知られている)の組み合わせは、モバイルアプリ開発への主要なアプローチの1つとしてしっかりと根付いています。

さて、進化するPhoneGap(および関連するApache Cordovaオープンソースプロジェクト)の作業が遅くなっているので、ハイブリッドモバイル開発の次は何ですか?

明らかに、オープンソースプロジェクトとして、ApacheCordovaはすぐになくなることはありません。多くの企業がCordovaに多額の投資を行っており、企業のコミッターが衰退するにつれて、Cordovaコミュニティはギャップを埋め続けています。

しかし、PhoneGapは、最終的には時代遅れになるという明確な意図を持って作成されたプロジェクトであり、その瞬間が私たちにあるかもしれません。

過去10年間で、PhoneGapと「ハイブリッド1.0」に取って代わる準備ができている、間違いなく優れた2つのオプションが登場しました。これらはプログレッシブウェブアプリとJavaScript駆動のネイティブアプリです。

プログレッシブウェブアプリ

PhoneGapは常に、Web開発者がモバイルWebブラウザーの限界に達したときに、モバイルデバイスでより多くのことを実行できるようにすることを目的としていました。 PhoneGapは、Webのすべて(HTML、CSS、JavaScript)を再利用し、ネイティブコード(Objective-C、Swift、Java)で記述されたプラグインに依存して、JavaScriptを介して特定のネイティブデバイス機能にアクセスします。時間が経つにつれて、これは祝福と呪いの両方であることが証明されました。学習曲線は非常に短いですが、PhoneGapアプリに組み込まれたWebブラウザーは、パフォーマンスに苦労することがよくあります(Appleと、長い間、デフォルトのAndroid Webビューのおかげではありません)。それでも、PhoneGapは、多くの人にとって「十分に良い」結果を生み出す実用的なソリューションでした。

一方、Web標準は進化を続けており、過去3〜4年間で、「プログレッシブWebアプリ」という用語の下で、より高性能でオフライン対応のモバイルアプリを作成するために必要なWeb標準を改善する動きが促進されています。

プログレッシブウェブアプリにより、ウェブプラットフォームはさらに大きな一歩を踏み出します。Webアプリがネットワークスタックを完全に制御できるようになり、高度なキャッシュとオフライン操作を実行できるようになりました。スプラッシュ画面での起動、プッシュ通知の送信、ユーザーへの支払い情報の要求など、ネイティブモバイルアプリに関連することが多い他のことをウェブアプリに実行させるのに役立つ新しいAPIもあります。これを、加速度計やカメラなどへのアクセスなど、ブラウザに搭載されている他のすべての「HTML5」APIに追加すると、さまざまな種類のアプリに対応する非常に高性能なWebプラットフォームが得られます。

PhoneGapが作成されたとき、これらすべての機能にはネイティブアプリが必要でしたが、現在はブラウザーが追いついてきています。ハイブリッド補助輪を外すことができます。

それでも、Webには制限が残っています。これは、動きの遅い標準ベースのプラットフォームの性質にすぎません。プログレッシブウェブアプリは大きな前進ですが、すべてのアプリの完全な代替とは限りません。では、ネイティブデバイスAPIへのフルアクセスが必要な場合、ハイブリッド後にWeb開発者は何をする必要がありますか?JavaScript駆動のネイティブアプリを入力してください。

JavaScript駆動のネイティブアプリ

約5年前、いくつかの企業がハイブリッドモバイルアプリを悩ませていた頻繁なパフォーマンスの問題の解決策を見つけようとし始めました。目標:クロスプラットフォームでありながらWeb開発者に馴染みのある、「真にネイティブな」パフォーマンスとUIの豊富さを提供できるフレームワークを作成します。この作業から、React Native(Facebookから)とNativeScript(Progressから)の2つの人気のあるオプションが登場しました。

これらの新しいフレームワークにより、開発者は引き続きWebスキルを再利用できますが、Webブラウザーをネイティブアプリシェルでラップするだけでなく(PhoneGapのように)、これらの新しいアプローチによりネイティブUIが生成されます。その結果、クロスプラットフォームの生産性を維持しながら、「生の」単一プラットフォームのネイティブアプリのように感じて実行するモバイルアプリケーションが生まれます。

このアプローチを説明する名前はいくつかあります。「ハイブリッド2.0」、「ネイティブハイブリッド」、「クロスプラットフォームネイティブ」などです。Forresterは、「JavaScript駆動のネイティブアプリ」という用語を導入しました。これは正確にはわかりませんが、少なくとも正確でわかりやすい名前です。

JavaScript駆動のネイティブアプリフレームワークを使用すると、Web開発者はPhoneGapの好きなもののほとんどを手に入れることができますが、さらに強力でパフォーマンスが向上します。たとえば、AngularとVueの両方と緊密に統合されているNativeScriptを使用すると、開発者はJavaScriptを介してすべてのネイティブAPIに完全にアクセスできます。それらのすべて。ネイティブアプリで実行できる場合は、NativeScriptで実行でき、クロスプラットフォームモジュールを使用すると、ほとんどのものを1回コーディングして、iOSとAndroidの両方で機能させることができます。ステロイドのPhoneGapプラグインのようなものです。

React NativeとNativeScriptはどちらも繁栄しているオープンソースプロジェクトであり、どちらもプログレッシブWebアプリが法案に適合しない場合の「ハイブリッド1.0」の自然な進化の準備ができています。

どちらを選びますか?

PhoneGapはなくなっていませんが、プログレッシブWebアプリやJavaScript駆動のネイティブアプリなどのオプションが存在する今日、新しいプロジェクトがPhoneGapで始まる理由を想像するのは難しいです。どちらのオプションも将来に向けて構築されたパスを表しており、ハイブリッドアプリ開発にすでに精通しているWeb開発者が採用するのは比較的簡単です。

オプションの選択も簡単です。

  1. アプリが多くのデバイスAPIアクセスを必要とせず、アプリストアに存在する必要がなく、iOSで(今のところ)いくつかの追加の制限付きで動作できる場合は、プログレッシブWebアプリを構築します。
  2. アプリの要件がプログレッシブウェブアプリの制限を超える場合は、JavaScript駆動のネイティブアプリプラットフォームのいずれかを選択してください。
    1. Reactショップの場合は、ReactNativeを選択してください。
    2. AngularまたはVueショップの場合は、NativeScriptを選択してください。 

これらのオープンソースフレームワークを考案している企業の多くは、非常に喜んで支援し、ほとんどの企業がPhoneGapからフレームワークに移行するための技術的なガイダンスを提供しています。移行の旅を始める場所を探している場合は、専門家に相談することをお勧めします。

また、行き詰まった場合や、サードパーティの専門家に相談したい場合は、開発者コミュニティが利用できる優れたリソースが多数あります。最も人気のある選択肢はGitHubです。ただし、開発者がPhoneGapおよびハイブリッドからプログレッシブWebアプリに移行するのを支援するために作成されたフォーラムは他にもたくさんあり、いくつかの優れた指針を提供しています。

最終的に、PhoneGapはその名に恥じませんでした。これは、Web開発者がモバイルアプリ開発の「ギャップ」を10年近くにわたって拡大するのに役立ちました。これは、どの標準でも印象的な実行です。今こそ、プログレッシブWebアプリとJavaScript駆動のネイティブアプリフレームワークがマントルを手に入れ、開発者を未来へと導く時です。

ハイブリッド(1.0)は廃止されました。長生きハイブリッド(2.0)。

Todd Anglinは、Progressの製品戦略および開発者関係担当副社長です。 

New Tech Forumは、前例のない深さと幅で新しいエンタープライズテクノロジーを探索して議論する場を提供します。選択は主観的であり、読者にとって重要で最も興味深いと思われるテクノロジーの選択に基づいています。出版用のマーケティング資料を受け入れず、寄稿されたすべてのコンテンツを編集する権利を留保します。すべてのお問い合わせは[email protected]まで お送りください