PhoneGapは、AdobeによるApache Cordovaの商用ディストリビューションであり、HTML、CSS、JavaScriptを使用してモバイルアプリケーションを作成でき、ローカルSDKなしでクラウド上でビルドできます。このプラットフォームは、最初に広く知られたハイブリッドフレームワークとなり、クロスプラットフォーム開発の普及に重要な役割を果たしました。Adobe PhoneGap、2024によると、プラットフォームの存続期間中に100万以上のアプリケーションが作成されました。PhoneGap Buildは、XcodeやAndroid StudioをインストールせずにAPKやIPAへのコンパイルを実行するAdobeの主要サービスです。
重要なポイント
PhoneGapは、2009年にNitobi Softwareによって開発されたモバイルアプリケーションプラットフォームです。2011年にAdobeがNitobiを買収し、PhoneGapを商用製品としてリリースするとともに、フレームワークのコアをApache Software FoundationにCordovaという名前で移管しました。
PhoneGapは2008年のiPhoneDevCampカンファレンスで作成され、Nitobi Softwareの開発者がウェブアプリケーションをネイティブコンテナにラップする技術を実演しました。最初のパブリックバージョンは2009年にリリースされ、Objective-Cを学習せずにモバイル市場に参入する方法を探していたウェブ開発者コミュニティの注目を瞬時に集めました。
PhoneGapの主な革新は、開発者が使い慣れたウェブ技術(HTML、CSS、JavaScript)を使用して、アプリストアからデバイスにインストールされ、カメラ、GPS、連絡先、加速度計などのネイティブ機能にアクセスできるアプリケーションを作成できることでした。
Adobe Developer Relations(2015年)によると、ピーク時には世界中で60万人以上の開発者がPhoneGapを使用していました。このプラットフォームは、iOSやAndroidのエンジニアを雇わずにモバイルプロジェクトでポートフォリオを拡大したいウェブスタジオやフリーランサーの間で特に人気がありました。
PhoneGapとApache Cordovaの主な違いは、配布モデルと追加サービスにあります。CordovaはApache Foundationが管理する純粋なオープンソースフレームワークであり、PhoneGapはAdobeの独占機能を備えた商用ディストリビューションです。
| 特徴 | Apache Cordova | PhoneGap(Adobe) |
|---|---|---|
| ライセンス | Apache 2.0(オープン) | Apache 2.0 + プロプライエタリコンポーネント |
| コア | オリジナルコード | 同じCordovaコード |
| クラウドビルド | なし | PhoneGap Build |
| ツール | CLI + サードパーティIDE | Adobe PhoneGap Desktop + CLI |
| サポート | Apacheコミュニティ | Adobe(2020年まで) |
Apache Cordovaに対するPhoneGapの主な利点であり、商業的な違いはPhoneGap Buildサービスです。これはコンパイル段階を代行します。開発者はソースファイルをAdobeサーバーにアップロードし、ターゲットプラットフォームを選択するだけで、Android SDK、Xcode、または関連するビルドツールをインストールしなくても、すぐに使えるバイナリを取得できます。
さらに、PhoneGapはAdobe Creative Cloudとの統合を備えており、デザイナーはPhotoshopからレイアウトをPhoneGapプロジェクト構造に直接エクスポートできました。この機能は、専任のモバイル開発者がいない小規模チームで需要がありました。
PhoneGap Buildは、PhoneGap/CordovaアプリケーションのソースコードをiOS(.ipa)、Android(.apk)、Windows Phone(.xap)などのプラットフォーム用のインストールファイルにコンパイルするAdobeのウェブサービスです。ユーザーは自分のコンピュータに対象OSのSDKをインストールする必要はありません。
ビルドプロセスは3つのステップで構成されます。開発者はプロジェクトをアーカイブ(またはGitリポジトリを指定)し、build.phonegap.comにアップロードしてプラットフォームを選択します。数分以内にサーバーがアプリストアにアップロードするための準備済みバイナリファイルを返します。
PhoneGap Buildは2種類のサブスクリプションをサポートしていました。無料(最大2アプリ、公開ビルド)と有料(最大25アプリ、非公開ビルド、カスタムアイコンと証明書)です。iOSにはApple Developer Programの署名証明書が必要で、ユーザーは自分のアカウントにアップロードしました。Buildの仕組みはシンプルでした。ユーザーがZIPアーカイブを送信するかGitリポジトリを指定すると、サーバーが自動的にプラットフォームを判断し、コントロールパネルから準備済みのバイナリファイルを返しました。
Adobe Blog(2017年)によると、毎月50万以上のビルドがPhoneGap Buildを通過していました。このサービスは、参加者がMacインフラにアクセスできない教育機関やハッカソンで特に人気がありました。開発者は環境構築なしでクライアントに直接デバイス上でプロトタイプをデモするためにもBuildを使用していました。
PhoneGapプロジェクトの構造はCordovaと同じです。唯一の違いは設定ファイルconfig.xmlにあり、PhoneGapのバージョンとAdobeアプリケーション識別子を示す
<?xml version='1.0' encoding='utf-8'?>
<widget id='com.adobe.phonegap.app'
version='1.0.0'
xmlns='http://www.w3.org/ns/widgets'
xmlns:gap='http://phonegap.com/ns/1.0'>
<name>PhoneGapApp</name>
<description>
PhoneGapアプリ
</description>
<gap:platform name='ios' />
<gap:platform name='android' />
<gap:plugin name='cordova-plugin-camera' />
<gap:config platform='ios' min-version='13.0' />
</widget>
この設定ファイルはiOSとAndroidをサポートするアプリケーションを定義し、最低限のiOS 13バージョンを指定し、カメラプラグインを含みます。PhoneGap Buildにアップロードすると、サーバーが自動的にこれらの設定を認識し、必要な依存関係とともにプロジェクトをビルドします。
デバイスの準備完了イベントを処理し、ネイティブダイアログを呼び出す基本的なJavaScriptコードの例:
document.addEventListener('deviceready', function() {
console.log('PhoneGapの準備ができました');
document.getElementById('btnAlert')
.addEventListener('click', function() {
navigator.notification.alert(
'PhoneGapからのこんにちは!',
function() { console.log('OK'); },
'メッセージ',
'閉じる'
);
});
});
devicereadyイベントは、すべてのPhoneGapおよびCordovaアプリケーションで必須のエントリポイントです。このイベントがないと、ブリッジが初期化されていないため、ネイティブAPI呼び出しは機能しません。準備が整うと、ネイティブダイアログウィンドウ用のnotification.alertを含むすべてのプラグインが利用可能になります。
PhoneGapには2010年代半ばに人気を博した多くの利点がありましたが、2018年以降に市場シェアが減少する原因となった制限もありました。
PhoneGapの主な利点は、ウェブ開発者にとっての低い参入障壁です。HTML、CSS、JavaScriptはすべてのフロントエンド専門家が習得している技術であり、ウェブ開発スタジオはiOSやAndroidのエンジニアを雇わずにモバイルアプリ市場に迅速に参入できました。
PhoneGap Buildクラウドサービスはインフラの問題を解決しました。WindowsチームはMacを購入しなくてもiOSアプリをビルドできました。これは限られた機器予算のスタートアップにとって重要でした。
PhoneGapの主な欠点はパフォーマンスです。WebViewはネイティブUIフレームワークよりも遅く、特に複雑なアニメーション、大規模なリスト、グラフィックス処理で顕著です。HTML5Rocksのテスト(2016年)によると、1000アイテムのリストをレンダリングするのにPhoneGapでは200〜400ミリ秒かかったのに対し、ネイティブアプリケーションでは16〜30ミリ秒でした。
その他の制限には、ユーザーのデバイス上のWebViewバージョンへの依存、ネイティブプラグインのデバッグの問題、対応するCordovaプラグインがリリースされるまで新しいiOSおよびAndroid APIにアクセスできないことなどがありました。
2020年、AdobeはPhoneGapとPhoneGap Buildのサポート終了を発表しました。同社はApache CordovaまたはCapacitorへの移行を推奨し、開発物をコミュニティに譲渡しました。PhoneGap Buildは閉鎖され、クラウドビルドは利用できなくなりました。
既存のPhoneGapプロジェクトには、Capacitorへの移行が推奨されます。これは最小限のコード変更で済む直接的な方法です。初期化スクリプトを置き換え、設定を更新するだけです。Capacitorは同じブリッジ原則を使用するため、すべてのJavaScriptコードとHTMLテンプレートは変更されません。
別の選択肢として、Apache Cordovaに直接移行することもできます。これにはCLIを介してローカルにプラットフォームをインストールし、ローカルビルドを設定する必要がありますが、既存のプラグインやアプリケーションアーキテクチャとの完全な互換性が維持されます。
閉鎖にもかかわらず、PhoneGapの歴史的重要性は計り知れません。PhoneGapこそが、ウェブ技術がモバイルアプリケーションの基盤になり得ることを市場に示し、現代のハイブリッドおよびクロスプラットフォームフレームワークへの道を切り開きました。PhoneGap Buildで初めて実装されたクラウドビルドの概念は、その後Ionic Appflow、Visual Studio App Center、その他のモバイルプロジェクト向け継続的インテグレーションサービスに採用されました。
PhoneGapのアーキテクチャ上の決定 — WebViewを介したブリッジ、プラグインシステム、config.xmlによる設定 — はハイブリッド開発のデファクトスタンダードとなりました。現代のCapacitorプロジェクトにもPhoneGapの遺産が反映されています。プラグインを操作する同じ原則と同様のビルドプロセスです。
古いPhoneGapプロジェクトを保守する開発者にとって、主要なスキルはプラグインブリッジを理解し、プラグインを最新のAndroidおよびiOSバージョンに適応させる能力です。これがないと、時代遅れのシステム権限のために、新しいストア要件を満たすためのアプリケーションの更新が不可能になります。
よくある質問
PhoneGapは2020年以降Adobeによる公式サポートはありませんが、それを使って作成されたアプリケーションは引き続き動作します。PhoneGap Buildによる新しいプロジェクトのビルドは利用できません。セキュリティアップデートを得るには、CapacitorまたはApache Cordovaに移行することをお勧めします。
IonicはCordova(および後のCapacitor)の上にあるラッパーで、UIコンポーネント、ルーティング、ビルドツールを追加します。PhoneGapはクラウドビルド機能を持つCordovaのディストリビューションですが、独自のUIコンポーネントはありません。IonicはネイティブアクセスのためのバックエンドとしてCordovaまたはCapacitorを使用します。
PhoneGap BuildのおかげでMacは不要でした — iOSビルドはAdobeのサーバーで実行されました。Buildの閉鎖後、iOS用のビルドにはXcodeを搭載したMacが必要です。Apache CordovaとCapacitorはAppleのツールを介してローカルでネイティブプロジェクトをコンパイルするためです。
PhoneGapは同一のアーキテクチャを使用しているため、すべてのApache Cordovaプラグインと互換性があります。cordova-plugin-camera、cordova-plugin-geolocation、cordova-plugin-file、cordova-plugin-inappbrowserプラグインは変更なく動作します。PhoneGap専用のプラグインは存在しませんでした。
PhoneGapを新しいツールとして学ぶ意味はありません — サポートされていません。ただし、そのアーキテクチャを理解することはレガシープロジェクトの保守に役立ちます。新しいハイブリッドアプリケーションには、IonicまたはReact Nativeと組み合わせてCapacitorを学ぶことをお勧めします。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。