PhoneGap(Cordova)でアプリ制作
ようやくHelloWorld以外のアプリを作った。
Javaは携帯アプリの時に2回開発環境を構築し2回ともHelloWorldまでで諦め、androidアプリも2回開発環境を構築し同じくHelloWorldまでで辞めてしまっていた。
どうしてもJavaだと学習コストを考えると面倒になってしまうのだ。
今回はJavaやobject-cを諦めてhtml5(PhoneGap)にし何とか3ヶ月かけて完成にこぎ着けた。
■Android
Androidは既に開発環境(Andoroid SDK&Eclipse)を構築してあったのだが、以前に構築した開発環境が3.6(Helios)で最近のサイトの説明の画面が3.7(Indigo)や4.2(Juno)で分りづらいので入れ直したが上手くいかず3.6に戻した。
とりあえず既に入ってる(JDKは6の64bit、Andoroid SDK、Eclipse3.6)に最新のPhoneGapを使う事になり公式サイトでダウンロードしたファイルを見ると名前が違う。
もっと使おうPhoneGap/Cordova 2.0.0:第1回 PhoneGap/Cordovaとは|gihyo.jp … 技術評論社
によるとPhoneGapはAdobeに買収されて今までPhoneGapと呼んでたものはCordovaになったらしい。
まずeclipse3.6(日本語版)で
「ファイル」「新規」「Android Application Project」を選んで
「New Android Application」という画面が現れるので
「Application Name」にアプリ名を入れ「次へ」を押す。
「Configure Launcher Icon」の画面になりアイコンを指定できるので
「イメージ」を選び画像を選択して
「Additional Padding」を「0」にして
「Shape」をなしにし「次へ」を押す。
次に「Create Activity」の画面になるがそのまま「次へ」を押すと
「New Blank Activity」になるので無視して「完了」を押し
とりあえずコンパイルしてみると「Error generating final archive: Debug certificate expired on …」とエラーが出た調べてみるとほったらかしにしすぎて、何かしらの証明書の有効期限が切れたらしい。
「.android」フォルダ内の(私はDドライブにしてるが、標準はWindowsユーザフォルダ内)debug.keystoreファイルを削除しeclipseの「プロジェクト」の「クリーン」で解決した。
今度は「[Emulator]PANIC: Could not open ~」というエラーが出た。
AVDのファイルが読めないらしいがこれは「.android」フォルダを標準の場所に無いためのようで、それっぽいファイルをWindowsユーザフォルダ内に複製した。
エミュレーターで上手く動いたので、binフォルダに生成されてるインストーラー(apk)を実機にコピーしてインストールし動作確認したが問題無さそうなのでコンテンツ作りを進めてたが、回転のすると落ちる問題が発生。(ちなみにエミュレーターで回転はCtrl+F12)
ネットで調べると「android:configChanges」の設定を変えればいける事が分ったがこれが記載されてたPhoneGap Fan – PhoneGap (Cordova) の日本語コミュニティがすごくわかりやすくまとめられてる事に気づいた。もっと前に出会いたかった。
■iPhone
iPhoneの方はitel系のCPUが搭載されたMacが必要になる。家にはもらい物のPowerBookG4しか無く、Mac miniを購入した。
以前買った本「iPhone/iPad × HTML5アプリ制作」が既にバージョンが古く色々と差異(Xcode3とXcode4の差異、PhoneGapとCordovaの差異)があったが色々なWEBサイトを参考にインストールする事になった。
具体的には面倒なので書かないが(バージョンを含めてググらないとより混乱します。)
まず、開発用のAppleIDを取得し、iOS Dev Centerに登録してお金を払う(年間参加費 8,400円)
上でも書いたがXcodeとPhoneGapは本と情報が違うのでPhoneGap Fanを参考にMacのAppStoreでXcodeをインストール、さらにCordovaも導入してandroid用のhtml等をMacにコピーしてシミュレーターでチェック。
なんかエラーっぽい表示が出るが問題なくシミュレーター上で動作した。
次は実機チェックだがこれが難解だが何度もする作業でもないので何も考えず、本「iPhone/iPad × HTML5アプリ制作」に書かれてるとおりに作業をする。
Xcode4は英語表記なので微妙に分からないところもあったが調べつつ進めてていくと実機でも動いた。
Andoroid SDK&EclipseもXcodeもアップデートとかすると裏で細かいソフトがアップデートされる事からかなりの数のソフトの集合体なのが分る。
公開前に再コンパイルしようとEclipseを立ち上げるとアップデートの警告が出たのでアップデートするとコンパイル出来なくなってしまい、Androidの公開は見送った。毎回アップデートする度に開発環境が壊れるのでAndoroid SDKとEclipseはアップデートしない方がいいのかもしれない。
という事で公開されたのは「Dog-Age」という犬の年齢を管理するiPhoneアプリです。
一応、英語と日本語のバイリンガル仕様です。