月別アーカイブ: 2015年3月

「クラウドでできるHTML5ハイブリッドアプリ開発」 永井勝則著 翔泳社発行

HTML5ハイブリッドアプリ開発
 永井勝則さんの書かれた「クラウドでできるHTML5ハイブリッドアプリ開発」を翔泳社さんより献本いただきました。というか正直に言うと、編集者さんにおねだりして貰ったのである。
 なぜかと言うと、筆者はCode for Takaokaというオープンデータを使って、アプリを作成し、富山県高岡市を住みよくしよう、楽しい街にしようという活動に参加しており、「わたしのようにプログラミングを職業としない人がスマホのアプリを作るには、どんな言語、開発環境がよいか」とアシアル株式会社さんが提供しているHTML5ハイブリッドアプリ開発環境Monacaについて調べていたからだ。
(3月14日に開通する北陸新幹線の富山駅、金沢駅にはさまれたロケーションに高岡市はある。いわゆるこだまの駅なので、東京から富山まで2時間8分、金沢まで2時間28分なのに、両駅にはさまれているのに!東京から3時間掛かってしまう。)
 わたしとしては、「作ればわかるAndroid」や「作ればわかるTitanum Mobile」を翔泳社さんで書かせてもらっているので、そっちの方がよいのだが、Code for Takaokaのメンバーに聞くと、「ブラウザ上で動くアプリの方がインストールに抵抗感がない」という意見があった。そうすると、スマホ用に最適化したWebアプリになるのだが、それでは、GPSや各種センサーが使えない。Monacaで作ったアプリはWebView上で動き、Cordova(別名PhoneGap)を使って、ハードウェアの機能にアクセスできる。
 また、プログラムの経験が少ない人にとって、複雑な開発環境の構築が、アプリ開発の高い敷居になることも多い。Monacaならブラウザ上で開発ができる(スマホにはテスト環境Monaca Debuggerのインストールが必要である)。最小のプランBasicなら無料で利用できる。
 実はこの本が出る前からBuildInsiderに永井さんが書かれているMonaca入門:Onsen UI+AngularJSで作るハイブリッドモバイルアプリを読んで勉強させてもらっていた。
 第4回以降は鯖江市のつつじバスロケーションWEB APIを使う方法が掲載されており、まさに今回の目的にピッタリだった。
 しかし、AngularJSを使う方法は結構難しいぞ。デザイナさんとかにはわかりずらくないか、Onsen UIとAnguarJSとの関係はどうなっているんだ?そんな疑問を抱いていたときに本書が出ることを知った。
 そもそも、Monacaではいろいろなスタイルでアプリが書けるのである。JavaScriptのベタな感じ、jQueryを使う方法、Onsen UIを使う方法、AngularJSを前面に出した感じなど、選択肢が多く、こう書けば良いという指針が欲しかったのだ。そんな理由で「クラウドでできるHTML5ハイブリッドアプリ開発」を読んだ。
 まず、なんでOnsen UIって言うんだという疑問が解けた。Monacaは確かに温泉に行くと置いてあるななどと、くだらないことを考えていたのだが、シングルページアプリケーション(SPA)だから、スパ、つまり温泉だということだ。ページ遷移を発生させず、Ajaxで部分的に画面を書き換えるスタイルである。モヤモヤがスッキリした。
 そのOnsen UIについて詳しく解説されている。使っていけそうな気がした。また、CordovaでGPSや加速度センサーを使う方法にも触れられているので、本書の内容をきっかけとして、Cordovaも使っていけそうだ。
 AngularJSについては、ページ単位にコントローラを用意すれば良いこと、ページ間で共有したいデータがあれば、サービスを作れば良いことがわかった。
 最後に、バーコードをスキャンして、YahooのAPIから商品情報を取得するという実践的な例が載っていた。このアプリだが、iPad Miniでは問題なく動いたが、Android端末では残念ながら、deviceready has not fired after 5 seconds.というエラーになってしまった。
 本としてどうかと(偉そうに)まとめさせてもらうと、Monacaの構成要素全部について、ちゃんと解説してある本だと思う。誠実な本です。
 では、アプリ開発の指針としてどうかというと、こういう風に作れば良いという記述はないが、Onsen UIを扱っている部分が多いので、Onsen UIのテンプレートを選ぶところから開発を始めれば良いんだろうという感じがする。でもフレームワークの経験がある人なら、AngularJSを前に出した形になるんだろうな。自分もやっぱりそうするだろうと思う。
 Monacaについて一つ不都合な点は、コンソールへのログが出力されないときがあることだ。どこでエラーになっているのかわからなくて、IDEのデバッガに慣れた身にはつらい。PCのWebサイトとスマホのMonaca Debuggerで再ログインすると直ることが多い。 
 ちなみに、この本の著者の永井さんの会社ヒム・カンパニーは今日、北陸新幹線で結ばれた長野にある。