「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
モバイルアプリのための万能ツールではなく、ハイブリッドアプリを開発するためのフレームワーク。
- Nitobi社が開発していたPhoneGap?を2011年にAdobeが買収、
- Adobeは同時にPhoneGap?を、Apache Foundationへ寄贈した。
- Apache FoundationではCordovaというブランド名が与えられた。
- 現在は他社のエンジニアも一緒になって、Cordovaの開発が進行中。
- PhoneGap?はCordovaベースのAdobe製品版。
以下の様なサービスも提供されている。
- PhoneGap? Build
PhoneGap?を利用したアプリケーションのビルド環境をオンラインで利用できるサービス。
- PhoneGap? Debug
PhoneGap?製のアプリをデバイス上でデバッグすることができるサービス。
- PhoneGap? Emulation
Webブラウザ(Google Chrome)上で動作するエミュレータによってアプリの検証が行えるサービス。
サポート †
プラットフォーム †
- Android
- iOS
- Windows Phone 8
- Windows 8/8.1/10
- Firefox OS
- Amazon Fire OS
- Blackberry 10
- Ubuntu
- Tizen
プラットフォームのすべての機能をサポートしているわけではない。
- プラットフォーム毎のWebView相当に違いがある。
- HTML5の機能やCSSのプロパティに違いがある。
- Windowsでは、innerHTMLプロパティやalert関数などが利用できない。
- プラグインを作成すれば機能は実現できる。
ただし、プラットフォーム毎の制約を受ける。
実機・エミュレーター †
iOSアプリ †
Androidアプリ †
Windowsアプリ †
Browser †
- ブラウザ上でCordovaの機能をエミュレーションする
- 対応していないプラグインも多々ある。
- Ripple Emulator
- Google Chromeベースのモバイルエミュレータ
- 各モバイルの画面サイズや,GPS,コンパス,モーションセンサを再現
- PhoneGap?(Cordova)特有のdevicereadyイベントがをサポート
開発 †
IDE †
- Apache Cordovaでモバイルアプリを開発するには、
- (JavaScritp?を記述する)テキスト・エディタ
- (プロジェクトの生成やデバッグ実行を行うための各種)Node.js製コマンド
だけ利用するでも開発可能だが、
Cordovaフレームワーク †
cordova.js †
- Cordovaフレームワークが提供するJavaScript側インターフェイス
- Cordovaの機能にアクセスする場合、HTML中でcordova.jsを読み込む。
devicereadyイベント †
- ネイティブとHTML5とのブリッジを確立するための初期化処理の完了イベント
- 開発者は、HTML5側でdevicereadyイベントを察知した後にネイティブ機能を呼び出す。
- loadイベントの後にブリッジの初期化処理が実行され、devicereadyイベントが発火する。
プロジェクト構造 †
# | ファイル・フォルダ | 説明 |
1 | config.xml? | 各プラットフォームに展開されるCordova用設定ファイル。 |
2 | index.html | アプリのエントリポイント。 |
3 | wwwフォルダ | HTML5リソースやアプリ設定に関するファイルが格納される。 ルートフォルダに配置したHTMLファイルなどがアプリとして表示される。 |
4 | platformsフォルダ | 各プラットフォーム特有のプロジェクトファイルが格納される。 |
5 | mergesフォルダ | wwwディレクトリがプラットフォームごとにコンパイルされる際、 ここに格納されている各プラットフォーム特有のリソースがマージされる。 |
6 | pluginsフォルダ | プラグインが格納されている。 |
config.xml †
# | 項目名 | 概要 |
1 | widget | アプリの識別子、バージョン番号 |
1 | name | アプリ名 |
1 | description | アプリの概要 |
1 | author | アプリの作成者 |
1 | content | アプリ起動時、最初にロードするコンテンツ(index.htmlなど) |
外部のURL(http://〜)を指定することでアプリ起動時に外部のコンテンツを表示できます。
但し、外部のURLを指定する場合は、ホワイトリストでアクセスできるように指定する必要があります。
access ホワイトリスト指定。*を指定している場合は、特に制限なくアクセスできます。
ドメインで指定することもでき、アクセスできる範囲を限定することができます。
allow-intent Cordova5から追加された模様。URLSchemeとして、別アプリを起動する際に予め定義しておく必要があります。
platform 特定のプラットフォームのみに反映する場合に利用します。
wwwフォルダ †
以下の中身を読んで理解する。
platformsフォルダ †
- Androidの場合にはAndroidプロジェクトが生成される。
- iOSの場合にはXcodeプロジェクトが生成される。
mergesフォルダ †
プラットフォーム特有のHTML5リソースを配置
pluginsフォルダ †
Cordovaで利用するプラグインやその設定ファイルを格納する。
詳細 †
参考 †
Qiita †
[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 †
第4章 Cordovaを用いたアプリ開発の流れ †
Cordova (PhoneGap)ではなく、WebViewの話題っぽい。