概要
Apache Cordovaは、オープンソースのモバイル開発フレームワークです。標準のWebテクノロジーであるHTML5、CSS3、およびJavaScriptを使用して、クロスプラットフォーム開発を行うことができます。アプリケーションは、各プラットフォームをターゲットとしたラッパー内で実行され、標準準拠のAPIバインディングに依存して、センサー、データ、ネットワークステータスなど、各デバイスの機能にアクセスします。
以下の場合にApache Cordovaを使用します
-
モバイル開発者であり、各プラットフォームの言語とツールセットで再実装することなく、複数のプラットフォームにアプリケーションを拡張したい場合。
-
Web開発者であり、さまざまなアプリストアポータルで配布するためにパッケージ化されたWebアプリをデプロイしたい場合。
-
ネイティブアプリケーションコンポーネントとデバイスレベルのAPIにアクセスできるWebView(特別なブラウザウィンドウ)を組み合わせることに関心のあるモバイル開発者、またはネイティブコンポーネントとWebViewコンポーネント間のプラグインインターフェースを開発したい場合。
アーキテクチャ
Cordovaアプリケーションには、いくつかのコンポーネントがあります。次の図は、Cordovaアプリケーションアーキテクチャの概要を示しています。
WebView
Cordova対応のWebViewは、アプリケーションにユーザーインターフェース全体を提供する場合があります。一部のプラットフォームでは、WebViewとネイティブアプリケーションコンポーネントを組み合わせた、より大きなハイブリッドアプリケーション内のコンポーネントにすることもできます。(詳細は、WebViewの埋め込みを参照してください。)
Webアプリ
これは、アプリケーションコードが存在する部分です。アプリケーション自体はWebページとして実装され、デフォルトではindex.htmlという名前のローカルファイルであり、CSS、JavaScript、画像、メディアファイル、または実行に必要なその他のリソースを参照します。アプリは、アプリストアに配布するネイティブアプリケーションラッパー内のWebViewで実行されます。
このコンテナには、非常に重要なファイルであるconfig.xmlファイルがあります。このファイルは、アプリに関する情報を提供し、方向の変更への応答など、アプリの動作に影響を与えるパラメータを指定します。
プラグイン
プラグインは、Cordovaエコシステムの不可欠な部分です。Cordovaとネイティブコンポーネントが相互に通信するためのインターフェースと、標準デバイスAPIへのバインディングを提供します。これにより、JavaScriptからネイティブコードを呼び出すことができます。
Apache Cordovaプロジェクトは、コプラグインと呼ばれるプラグインのセットを管理しています。 これらのコプラグインは、アプリケーションがバッテリー、カメラ、連絡先などのデバイス機能にアクセスできるようにします。
コプラグインに加えて、すべてのプラットフォームで必ずしも利用できるとは限らない機能への追加のバインディングを提供する、サードパーティのプラグインがいくつかあります。プラグイン検索またはnpmを使用して、Cordovaプラグインを検索できます。プラグイン開発ガイドで説明されているように、独自のプラグインを開発することもできます。プラグインは、たとえば、Cordovaとカスタムネイティブコンポーネント間の通信に必要になる場合があります。
注:Cordovaプロジェクトを作成しても、プラグインは存在しません。これは新しいデフォルトの動作です。必要なプラグイン(コプラグインも含む)は、明示的に追加する必要があります。
Cordovaは、UIウィジェットまたはMV *フレームワークを提供していません。Cordovaは、それらが実行できるランタイムのみを提供します。UIウィジェットやMV *フレームワークを使用する場合は、それらを選択してアプリケーションに含める必要があります。
開発パス
Cordovaは、モバイルアプリを作成するための2つの基本的なワークフローを提供します。多くの場合、どちらのワークフローを使用しても同じタスクを実行できますが、それぞれに利点があります。
-
クロスプラットフォーム(CLI)ワークフロー:プラットフォーム固有の開発をほとんど必要とせずに、アプリをできるだけ多くの異なるモバイルオペレーティングシステムで実行したい場合は、このワークフローを使用します。このワークフローは、
cordova
CLIを中心に展開されます。CLIは、多くのプラットフォームのプロジェクトを一度にビルドできる高レベルのツールであり、低レベルのシェルスクリプトの多くの機能を抽象化します。CLIは、共通のWebアセットのセットを各モバイルプラットフォームのサブディレクトリにコピーし、それぞれに必要な構成変更を行い、ビルドスクリプトを実行してアプリケーションバイナリを生成します。CLIは、プラグインをアプリに適用するための共通インターフェースも提供します。開始するには、最初のアプリの作成ガイドの手順に従ってください。プラットフォーム中心のワークフローが必要でない限り、クロスプラットフォームワークフローをお勧めします。 -
プラットフォーム中心のワークフロー:単一のプラットフォーム用のアプリの構築に焦点を当て、より低いレベルで変更できる必要がある場合は、このワークフローを使用します。たとえば、WebViewの埋め込みで説明されているように、アプリでカスタムネイティブコンポーネントとWebベースのCordovaコンポーネントを組み合わせる場合は、このアプローチを使用する必要があります。経験則として、SDK内でプロジェクトを変更する必要がある場合は、このワークフローを使用します。このワークフローは、サポートされている各プラットフォームに合わせて調整された一連の低レベルシェルスクリプトと、プラグインの適用を可能にする個別のPlugmanユーティリティに依存しています。このワークフローを使用してクロスプラットフォームアプリを構築できますが、高レベルのツールがないため、プラットフォームごとに個別のビルドサイクルとプラグインの変更が必要になるため、一般的に困難です。
最初に開始するときは、最初のアプリの作成ガイドで説明されているように、クロスプラットフォームワークフローを使用してアプリを作成するのが最も簡単な場合があります。その後、SDKが提供するより詳細な制御が必要な場合は、プラットフォーム中心のワークフローに切り替えることができます。
注:CLIベースのワークフローからプラットフォーム固有のSDKとシェルツールを中心としたワークフローに切り替えると、元に戻すことはできません。CLIは、共通のクロスプラットフォームソースコードのセットを維持し、各ビルドでそれを使用してプラットフォーム固有のソースコードを上書きします。プラットフォーム固有のアセットに加えた変更を保持するには、プラットフォーム中心のシェルツールに切り替える必要があります。このツールは、クロスプラットフォームソースコードを無視し、代わりにプラットフォーム固有のソースコードに依存します。
Cordovaのインストール
Cordovaのインストールは、選択した上記のワークフローによって異なります。
-
クロスプラットフォームワークフロー:最初のアプリの作成ガイドを参照してください。
-
プラットフォーム中心のワークフロー。
Cordovaをインストールした後、開発するモバイルプラットフォームの「プラットフォーム向けに開発する」セクションを確認することをお勧めします。プライバシーガイドとセキュリティガイドも確認することをお勧めします。