2013.01.25 · 技術と道具

[HTML5でAndroidアプリ開発] PhoneGapで雛形を作成して動かしてみよう

今日から何回かに分けて、HTML5でAndroidアプリを開発する記事を書いていこうと思います。
目標は、Google Playストアでの公開です!

第1回となる今回は、PhoneGapの雛形を作って、Androidで動作させるまでを見ていきたいと思います。

PhoneGapとは

PhoneGapについてWikipediaで調べてみると・・・

PhoneGap(フォンギャップ)は、Adobe(当時ニトビ・ソフトウェア社)によって開発されているオープンソースのモバイルアプリ開発フレームワーク。これを使うと、JavaScript、HTML、CSSを使って、モバイルアプリを開発することができる。モバイルデバイスのカメラ、GPS、加速度センサーなどにアクセスすることができる。PhoneGapは、Webアプリケーションとモバイルデバイスとの橋渡しを行う。
iPhone、Palm WebOS、Google Android、Windows Mobile、Symbian OS、BlackBerryなどのモバイルデバイスに対応している。
2011年10月3日、Adobeは開発者向けカンファレンス「Adobe Max 2011」においてニトビ・ソフトウェア社の買収合意を発表した。

とのことです。AdobeのPhoneGapサイトでダウンロード出来ます。さらに、現在はAdobeがApache Software Foundationに寄贈し、オープンソースで公開されているため、Apache Cordovaという名前でもダウンロード出来ます。
現時点ではPhoneGapとCordovaは名前が違うだけで同じものという扱いですが、今後はAdobeの方で様々な開発ツールがパッケージングされてその名前がPhoneGapになるか、もしくはその一部になっていくのかもしれません。

PhoneGapによるAndroidアプリの雛形を作成

何はともあれ、PhoneGapをダウンロードしてzipファイルを展開してみましょう。

TEXT
phonegap-2.3.1
├ doc
└ lib
├ android
├ bada
├ badaWac
├ blackberry
├ ios
├ symbian
├ webos
├ windows-phone-7
├ windows-phone-8
└ windows8

注目すべきはlib配下のディレクトリですね。日本では見慣れないものも入っていますが、このディレクトリ名のプラットフォームにPhoneGapは対応しているということです。(Badaというのはサムスン電子が開発しているプラットフォームのようです。ドコモが採用を検討しているTizenと統合する方向。)
今回の記事はAndroidアプリをターゲットとしますが、続編としてiOSやWindwos8版も作ってみたいと思います。

lib配下のどのディレクトリを見ても、binディレクトリの下にcreateというスクリプト(及びbatファイル)が入っています。このスクリプトを作るとアプリの雛形が出来るのです。

BASH
cd /path/to/phonegap/lib/android/bin
./create ~/booknavi jp.artisanedge.android.booknavi BookNavi

createスクリプトの引数は、第1引数が雛形を作成するディレクトリパス、第2引数がパッケージ名、第3引数がプロジェクト名です。

※PhoneGapサイトのGetting Started with Androidも参照をお勧めします。

作成された雛形は、下記のような構成になっています。

TEXT
booknavi
├ src
├ gen
├ assets
│  └ www
│    ├ css
│    ├ img
│    ├ js
│    ├ res
│    └ spec
├ bin
├ cordova
├ libs
└ res

assets/wwwの下にCakePHPやRailsで見覚えのあるwebrootっぽいというか、いかにもWebだなというディレクトリがあります。
PhoneGapでは、このassets/wwwの下にHTML5+CSS3+JavaScriptでアプリを書いていくのです。

さらに、srcの下には指定したパッケージ名でディレクトリが作成され、唯一、BookNavi.javaというJavaソースがあります。
これを見てみると・・・

JAVA
public class BookNavi extends DroidGap
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
}
}

出来上がるJavaソースは、本当にこれだけです。
しかもやっていることは、アプリが起動したらwwwディレクトリにあるindex.htmlを開くだけです。

雛形アプリを起動する

雛形ディレクトリをEclipseの Android>Android Project from Existing Code でインポートし、Androidエミュレータで起動してみましょう。Eclipseから 実行>Androidアプリケーション です。(Androidの開発環境の説明はここでは行いませんので、書籍やWebなどを参照してください。)

これだけですけど、Webブラウザで開いている感は一切なく、あくまで一つのAndroidアプリとして表示されました。

■

今日はここまでということで、明日以降、index.htmlを編集していきたいと思います。

2013/01/25 07:54
← Windows Server 2012にSOS JobSch…
[HTML5でAndroidアプリ開発] jQuery Mo… →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。