PhoneGapでiPhoneアプリ開発②

開発するアプリの概要

PhoneGapの開発環境が整ったので早速アプリの開発を開始する。なるべく簡単に作れそうなアプリが良いため、巷にあふれてる「カラーコード変換」アプリを作成する事にした。以下はその概要図。

動作イメージは以下の通り。

  • ユーザーはアプリ起動後に16進の入力フォームか10進の入力フォームのいずれかにカラーコードを入力する。(両方入力したら16進が優先される)
  • 入力後、画面下の[変換する]ボタンを押すと背景色が入力したカラーコードになり、画面下のスペースに補色が表示される。
  • [クリア]ボタンを押すとカラーコード入力前の状態に戻る。

以上。一画面で完結する非常に簡単なアプリだが、初心者としてはこれくらいがちょうど良い。

PhoneGapのファイル構成

create直後のPhoneGapのファイル構成は以下のようになっている。(PhoneGap 2.9.0)

PhoneGapを利用した開発では基本的に「www」ディレクトリ以下にHTMLやCSS、JSファイルを追加したり編集したりしていけば良いらしい。

また、index.htmlでは「cordova.js」と「index.js」という二つのjsファイルを読み込んでいるが、必須なのはcordova.jsだけのようだ。(以前はphonegap.jsだった?)


アラートでHello,Worldの表示

画面表示は完全にHTMLとCSSで描画出来るようなので放っておくことにして、試しにJavaScriptでアラートでも表示してみようと思い、「js/index.js」を参考に以下のファイルをjsディレクトリに作成した。

[main.js]

var app = {
    initialize: function() {
        this.bindEvents();
     },
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function() {
        navigator.notification.alert("hello, PhoneGap!");
    }
};

PhoneGapではこの「deviceready」というイベントがPhoneGapのロード完了時に呼び出されるらしい。jQueryでいうところの「ready()」みたいなもののようだ。詳細は以下のサイトを参照。(※日本語だが大分古い)

deviceready – PhoneGap Documentation(日本語)

JSファイルの作成が完了したので、index.htmlの記述を変更。読み込むJSファイルをindex.jsからmain.jsに変える。

<script type="text/javascript" src="js/index.js"></script>
↓
<script type="text/javascript" src="js/main.js"></script>

この状態でターミナルからデバッグを実行。

$ cd /Users/myhome/MyProject/testApp
$ ./cordova/run

正常であれば以下のようにアラートが表示される。

スクリーンショット 2013-07-11 13.35.15

jQueryを試す

ついでにjQueryも試してみる。jQueryのサイトから現時点でのjQuery1.x系の最新版「jquery-1.10.2.min.js」をダウンロード。(CDNで提供されているものを読み込んでもOK?)

main.jsを以下のように書き換える。

[main.js]

var app = {
    initialize: function() {
        this.bindEvents();
     },
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function() {
        $("h1").text("jQuery is Ready!");
    }
};

また、index.htmlにダウンロードしたjQueryを読み込ませる。
読み込み順序はjQueryが先なのか、cordova.jsが先なのかどちらにすれば良いのか良く分かっていないが、ひとまずjQueryを先に読み込ませる事にした。

<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="cordova.js"></script>

再度デバッグを実行。

jQueryも簡単に扱えた。

IT起業アカデミア