PhoneGapとは?HTMLとJavaScriptによるハイブリッドアプリ開発

PhoneGapとは

PhoneGap(フォンギャップ)は、アプリケーション開発フレームワークです。PhoneGapを使うと、HTML/CSS/JavaScriptのウェブ標準技術を使って、iOSやAndroid向けのネイティブアプリを開発できます。同じような目的のフレームワークにはReact Native 、 Vue Native、Electronなどが挙げられますが、ネイティブアプリを実現する仕組みが異なります。

PhoneGapの場合、ネイティブアプリ内で「WebView」 という簡易ブラウザを開いて、その中でウェブアプリを動作させています。この簡易ブラウザこそが PhoneGapのコア技術です。 PhoneGap で開発するアプリとは、簡易ブラウザを通すことで、ウェブアプリを iOSやAndroid環境で利用できるようにしたものです。

PhoneGapは、モバイルデバイス固有のカメラ、位置情報、加速度センサーなどの機能にアクセスできる仕組みになっています。PhoneGapで開発するアプリは、ウェブアプリとネイティブアプリを組み合わせたような構造ですが、このような構造のアプリは「ハイブリッドアプリ」と呼ばれることがあります。

PhonegapとCordova

Phonegapと同様のフレームワークに Cordova (コルドバ)というフレームワークがあります。Cordovaは、Phonegapのソースコードをベースにして開発されたフレームワークであり、ほぼ同じものと考えて差し支えありません。

Cordovaのルーツは、2009年にさかのぼります。最初はPhonegap(フォンギャップ)として開発されていましたが、Phonegapは2011年の買収によってアドビ社の製品となりました。

その際にソースコードがApacheソフトウェア財団に寄贈されたことで、 Phonegapと同様のフレームワークが、Apache Cordova(アパッチ・コルドバ)としても開発されるようになった経緯があります。

PhonegapとCordovaは名称や開発元が異なり、コマンドにも若干の違いはありますが、コア機能が同じであるためどちらを使っても完成するアプリはほぼ同じ結果となります。

PhoneGapの特徴

PhoneGapには、以下の特徴があります。

  • HTML/CSS/JavaScriptのウェブ標準技術を使って、iOSやAndroid向けのネイティブアプリを開発できる
  • ネイティブアプリ内で「WebView」 という簡易ブラウザを開いて、その中でウェブアプリを動作させる
  • モバイルデバイス固有のカメラ、位置情報、加速度センサーなどの機能にアクセスできる
  • ウェブアプリとネイティブアプリを組み合わせた構造の「ハイブリッドアプリ」を開発できる
  • ハイブリッドアプリとは、簡易ブラウザを通したウェブアプリのこと
  • ハイブリッドアプリは、 ネイティブアプリに比べると動作速度が遅い
  • iOSやAndroidの最新機能をPhoneGapがサポートするまでに時間差が生じる

PhoneGapは、HTML/CSS/JavaScriptのウェブ標準技術を使って、iOSやAndroid向けのネイティブアプリを開発するためのアプリケーション開発フレームワークです。

PhoneGapで開発するハイブリッドアプリは、モバイルデバイス固有のカメラ、位置情報、加速度センサーなどの機能にアクセスできる仕組みになっています。 PhoneGapを使うと、ウェブアプリとネイティブアプリを組み合わせた構造の「ハイブリッドアプリ」を開発できます。

ハイブリッドアプリには、Objective-C/Swiftで開発したiOSアプリや、Java/Kotlinで開発したAndroidアプリに比べて動作が遅いというデメリットがあります。また、iOSやAndroidの最新機能をPhoneGapがサポートするまでに時間差を生じることがあり、PhoneGap がサポートするまではこれらの機能を利用できません。

PhoneGap を学ぶメリット

PhoneGapで求人を検索すると、ウェブアプリ開発エンジニア、スマホアプリ開発エンジニア、サーバーサイドエンジニア、フロントエンドエンジニアなどでの募集が確認できます。

PhoneGapのスキルが求められる職場では、PhoneGapの他に使えることが望ましいスキルとして、JavaScript/HTML/CSS、Monaca、Flutter、React Native、iOS/Androidアプリ開発経験などが挙げられています。

PhoneGap公式サイト: https://phonegap.com/