Apache Cordova (旧称PhoneGap ) は、 Nitobiによって作成されたモバイル アプリケーション開発フレームワークです。Adobe Systems は2011 年に Nitobi を買収し、PhoneGap としてブランド名を変更し、後に Apache Cordova と呼ばれるソフトウェアのオープンソース版をリリースしました。[ 5 ] Apache Cordova を使用すると、開発者はAndroid、iOS、Windows Phoneなどのプラットフォーム固有のAPIに依存するのではなく、CSS3、HTML5、JavaScriptを使用してモバイル デバイス向けのハイブリッド Web アプリケーションを構築できます。[ 6 ]これにより、CSS、HTML、JavaScript コードをさまざまなモバイル プラットフォーム向けにパッケージ化できます。デバイスで動作するようにHTMLと JavaScriptの機能を拡張します。結果として得られるアプリケーションはハイブリッドであり、真のネイティブ モバイル アプリケーションでも純粋な Web ベースでもありません。すべてのレイアウト レンダリングがプラットフォームのネイティブ UI フレームワークではなく Web ビューを介して行われるため、ネイティブではありません。配布用にアプリとしてパッケージ化され、ネイティブ デバイス API にアクセスできるため、Web アプリでもありません。ネイティブコードとハイブリッドコードを組み合わせることは、バージョン1.9以降可能になりました。
このソフトウェアは以前は単に「PhoneGap」と呼ばれ、その後「Apache Callback」と呼ばれていました。[ 7 ]
PhoneGap は、Adobe の Cordova の商用版であり、関連するエコシステムも含まれています。Ionic [ 8 ]、Monaca、VoltBuilder、TACO、Onsen UI、GapDebug、App Builder、Cocoon、Framework7、Quasar Framework、Evothings Studio、NSB/AppStudio、Mobiscroll、Telerik Platform [ 9 ]など、Cordova をベースに構築されたツールやフレームワークも多数あります。これらのツールは、コアツールとして PhoneGap ではなく Cordova を使用しています。
Apache Cordovaプロジェクトへの貢献者には、Adobe、BlackBerry、Google、IBM、Intel、Microsoft、Mozillaなどが含まれます。[ 10 ]
PhoneGapは、2008年8月にサンフランシスコ で開催されたiPhoneDevCampイベントでNitobi Softwareによって初めて開発されました。[ 11 ] Apple Inc.は、2010年に採用されたApple iPhone SDK開発者ライセンス契約4.0の条項3.3.1の変更後も、このフレームワークが承認されていることを確認しています。PhoneGapフレームワークは、Monaca、appMobi、Convertigo、ViziApps、Worklightなどの複数のモバイルアプリケーションプラットフォームで、モバイルクライアント開発エンジンの基盤として使用されています。
Adobe は 2011 年 10 月 3 日に Nitobi Software を買収しました。[ 12 ] PhoneGap のコードはその後、Apache Software Foundation に提供され、Apache Cordova と呼ばれる新しいプロジェクトが開始されました。[ 13 ] Apache Software Foundation に提出されたプロジェクトの元の名前は Callback でしたが、[ 14 ] Web で検索しやすくするために Cordova に変更されました。[ 15 ] Adobe Systems ではAdobe PhoneGapおよびAdobe PhoneGap Buildとしても表示されます。
PhoneGapの初期バージョンでは、iOSアプリを作成するにはApple製コンピュータ、Windows Mobileアプリを作成するにはWindows製コンピュータが必要でした。2012年9月以降、AdobeのPhoneGap Buildサービスでは、プログラマーがCSS、HTML、JavaScriptのソースコードを「クラウドコンパイラ」にアップロードすることで、サポートされているすべてのプラットフォーム向けのアプリを生成できるようになりました。このサービスは2020年に終了しました。
Apache Cordova アプリケーションのコアは、レンダリングにCSS3とHTML5を使用し、ロジックにJavaScript を使用します。HTML5 は、加速度計、カメラ、 GPSなどの基盤となるハードウェアへのアクセスを提供します。ただし、HTML5 ベースのデバイスアクセスに対するブラウザのサポートは、特に Android の古いバージョンでは、モバイル ブラウザ間で一貫していません。これらの制限を克服するために、Apache Cordova は、外部関数インターフェースを使用してデバイスのネイティブ リソースにアクセスし、HTML5 コードをデバイス上のネイティブWebView内に埋め込みます。[ 16 ]
Apache Cordovaはネイティブプラグインで拡張でき、開発者はJavaScriptから呼び出し可能な機能を追加することで、ネイティブレイヤーとHTML5ページ間の直接通信を実現できます。これらのプラグインにより、デバイスの加速度計、カメラ、コンパス、ファイルシステム、マイクなどへのアクセスが可能になります。
しかし、Webベースの技術を使用すると、Apache Cordovaアプリケーションの中には、同様の機能を持つネイティブアプリケーションよりも動作が遅くなるものがある。[ 17 ]
バージョン 11 の時点で、Apache Cordova は現在、Apple iOS、Google Android、Windows 8.1、Windows Phone 8.1、Windows 10、Electron (ソフトウェア フレームワーク) ( Windows、Linux、macOS上で動作) のオペレーティングシステム向けの開発をサポートしています。[ 18 ] Apache Cordova の以前のバージョンでは、Bada、BlackBerry、Firefox OS、[ 19 ] [ 20 ] LG webOS、Microsoft Windows Phone (7 および 8)、macOS、Nokia Symbian OS、Tizen (SDK 2.x)、Ubuntu Touch をサポートしていました。[ 21 ] [ 22 ]
{{cite web}}:欠落または空欄|title=(ヘルプ)ただし、HTML5にはいくつかの制限があります。最も顕著なのは、加速度計、コンパス、GPSなどのデバイスハードウェアやセンサーにアクセスするためのAPIがないことです。ネイティブアプリケーションはデバイスハードウェアにアクセスできますが、Webアプリが提供する移植性がありません。したがって、ネイティブアプリとWebアプリの利点を累積的に利用するハイブリッドアプリケーションをコーディングすることが解決策です。