PhoneGap(Apache Cordova)を触ってみた
いろいろありまして、Android 開発もそんなに詳しくないのに PhoneGap(Apache Cordova)に手を出すことになりました。
公式ドキュメントもあまり詳しくなかったり正しくなかったり、現在のバージョンに合った書籍も出回ってなかったりでちょっと苦労してます。
Android 版しか確認していませんが、試して感じて悩んでることなどの覚え書きです。
バージョン、対応プラットフォーム等全て 2012 年 2 月現在の情報です。
PhoneGap とは?
Nitobi という会社が開発した、クロスプラットフォームのスマートフォンアプリ開発・実行環境です。
最新バージョンは 1.4.1。
対応プラットフォーム
- iOS
- Android
- Blackberry
- WebOS
- Windows Phone
- Symbian
- Bada
大雑把な歴史
Nitobi は 2011 年 10 月に Adobe に買収されましたが、PhoneGap は Apache Software Foundation(ASF) へソースを寄贈され、Apache Callback という名前でインキュベーションプロジェクトになりました。
が、「名前があまりにも一般的すぎるんじゃない?」ってことで改名され、Apache Cordova になったそうです。
開発言語と開発環境
編集するファイルは、基本的には
「ネイティブアプリの中に組み込まれた Web ブラウザ機能から読み込む HTML と JavaScript」
のみです。
そのため、Web エンジニアにとっては比較的敷居が低いと言えます。
また、カメラや GPS、センサー等はネイティブの API を呼び出すライブラリを通して、JavaScript から呼び出すことが可能です。
開発環境は iOS 向けなら Xcode が使えますし、Android なら Eclipse でも何でも OK なはずです。
また、Web 上で開発・ビルド可能な環境などもいくつか存在しています。
- PhoneGap:Build
- ビルドのみのサービス
- 公式サイトでの提供
- 無料/有料
- 英語
- Monaca Beta
- 開発・ビルドのサービス
- アシアル株式会社 が提供
- 日本語
- 無料
- バージョンが非常に古い(0.9.5.1)
インストール
公式サイトの Get Started Guide を参照。
特に難しい点はありません。
サンプル
公式サイトの API Reference を参照。
時間を見つけて、僕もどこかにアップしたいと思います。
感想
良い点
今後の改善を期待したい点
- 機能の限定
- クロスプラットフォームを目指したため、使える API は非常に限定
- Android のサービスやコンテントプロバイダ等も利用不可(中をゴニョゴニョすれば何とか…)
- ドキュメントの不足
- テスト
- WebView 内のテストが困難
- Android の用語で説明すると、記述するコードは「Activity の中に埋め込んだ WebView の中で読み込む HTML/JavaScript」
- 現状、WebView 中のコンテンツをうまくテストする方法が思いつかない(もしかしたらあるのかも)
- iOS 版であれば、NativeDriver で可能?(未確認)
- WebView 内のテストが困難
まだまだ未成熟な感はありますが、ちょっとしたアプリケーションなら簡単に作ることができますので、いろいろ触ってみたいと思います。