PhoneGapでAndroidアプリ作った
はじめに
※この記事には開発に関する方法は書かれていません。それらをお探しの場合は検索元か別の記事へ。
※アプリケーション自体はこの記事よりもっと前に作ったものです。
もともと僕はHTMLやcssの知識は持っていたので、Androidアプリケーション制作の数ある選択肢の中で一番とっつきやすいのはPhoneGapによる開発でした。JavaScriptの知識はそれほどありませんでしたが次の方法で大分かけるようになりました。
- JavaScriptクックブックを呼んで学習
- 面白法人カヤックの提供しているjsdo.itというサービスでいろいろ書いてみる。
学習ベース
今回は次の本を参考にして進めました。
この本は基本的にHTML・css・JavaScrpiot(jQuery)を利用し、「ネイティブアプリケーションのように振舞う」ように書かれていました。また、開発環境・ビルドに関してeclipseなどIDEを使わず、シェルからantなどを使います。また途中Rubyをインストールする必要があります。それらになじみのない人は別の書籍で進めるほうがよいかもしれません。
ネタ
恵まれていたのは東京ヴェルディの広報の方から選手データや画像の提供を受け、それを用いたアプリケーション開発を進めることができることでした。
開発
今回はWEB制作の感じで開発を進めることができたのでJavaScriptを覚えた以外は特に開発自体に新しいことを覚える必要がありません。ただビルドに関してはいくつか問題にぶつかりました。
droidgap wizが動かない…
windows環境でビルドを試みたのですがdroidgap wizが動かない。「'droidgap'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
PhoneGap\binの中にはdroidgapは入っているし、パスも通っている。Ruby1.9も入っている。…というかdroidgapの実態はRubyなので、同じディレクトリの中にバッチファイルを作ってdroidgapを実行するようにしてやったらdroidgap自体は動いてくれました。
だけどdroidgap wizのなかでいろいろエラーが起こってしまったので、書籍を離れeclipseからビルドして完成。IDEの魔法に頼ってしまうのはよくないですよね…
完成系
選手データなどをcsvで利用することができたため、選手一覧から各選手のデータに飛んだり一覧をソートする機能をつけています。そして「ネイティブアプリケーションのように振舞う」開発のため、初めてのAndroidアプリですが、体感的にはスマートフォン用のサイトを作った感じでした。そしてどことなくiPhoneっぽい…
評価
- 株式会社アンティー・ファクトリー代表取締役社長、日本webデザイナーズ協会会長:中川様
- 「無難」「アプリじゃなくてスマートフォン最適化サイトでいいのでは?」
- 東京ヴェルディ広報担当者様
- 「参考にします」
やはり予想通りの反応だ。どうやらこのアプリが世に出ることはなさそうだ。ただ東京ヴェルディ広報担当者様から公表の許可は出ているので記事として出させてもらいました。次は別の技術で作ります。
Androidアプリケーション開発の選択肢
はじめに
いざAndroidのアプリケーションを作ろうと思ったときに必要なのは何で作るかだと思います。どんな選択肢があるのかをある程度まとめて見ます。
Java
最もAndroid開発で一般的なのはやはりJavaで作ることだと思います。開発者はAndroid SDKが用意した多くの機能を扱うことができます。とくにJavaはWEB上でも情報が多いため開発者はそれほど苦労しなくてすむでしょう。ただし、これはAndroidアプリケーション開発限定になってしまうので、iPhoneやWindows Phone7などほかのスマートフォンに対応するのは難しくなります。
JavaScript
WEBのフロントエンドエンジニアなどであれば、新たに言語習得のコストをかけずに持っている技術の応用で開発することも可能です。Titanium Mobileを使えば、JavaScriptでアプリケーションが作れます。iPhoneのアプリケーションが作れるところも魅力的です。
JavaScript、HTML、css
さらにWEB制作に近い手法で開発できるのがPhoneGapです。これはHTML、cssなどを含めたWEBの技術で開発が可能で、カメラやGPSを利用することもできます。また、Monacaというサービスを利用すればコーディング・デバッグ・ビルドをすべてブラウザ上で行ってアプリケーションを開発することもできます。(※Monacaは知り合いが開発に関わっていることから知ったのですが僕はまだ利用したことがないので実際どういう感じかわからないです。)
Adobe AIR
Android端末にAdobe AIRのRuntimeがインストールされていれば、Adobe AIR for Androidを利用したアプリケーションが制作できます。Flash技術者にとっては魅力的なのではないでしょうか。Flash CS5以上が必要なようです。
C#
有料ですが、なんと選択肢にはC#もあります。それがMono for Androidです。またiPhoneにはMonoTouchといのがあります。ちなみに関係ないですが、C#はWindowsPhone7だったり、PlayStation Suite SDKによるPlayStation Vitaで動くアプリケーション開発など、ホットになりそうな言語ですね。
C、C++
Android NDKではCやC++でネイティブに開発が行えます。
Processing
アーティストに人気の言語ProcessingにもAndroid SDKと連携してAndroidアプリケーションをビルドする機能があります。本格的なアプリケーションは難しいですが、アーティスティックなアプリケーションを開発するのには良い選択肢だと思います。(※Processingを試せます→http://and1019.blog93.fc2.com/blog-entry-102.html)
Unity
Unityを使えばコードを書かずに3Dゲームを作ることが可能なようです。C#やJavaScriptで開発を行うこともできます。
その他
RubyやPythoneなどでも開発が可能なようですが、一般的な選択肢になるにはまだ先のことだと思います。ゼロから学ぶにはあまり向かないかもしれませんね。