Hayate coming soon!

  • 投稿日:
  • by
  • カテゴリ:

昨年秋から、FirefoxOS向けにアプリの開発を進めている。GPSを使ったランナー向けのアプリで、走った時間や距離を記録し、Google Mapでルートを表示できる。FirefoxOSがインストールされた端末が安く買えるようになったので、なにか開発しようと思って始めたものだ。数年前にAndroid向けに同様のアプリ「Tokyo Runners」を作りはじめ、途中でやめてしまっていたので、まずはそこから入ることにした。

名前は「Hayate」。「Tokyo Runners」は東京メトロが提供するandroidアプリとかぶってしまっているので、新しい名前を考えた。Geckoといえば疾風だ。

GPSの情報はGeolocation APIで取得し、データはIndexedDBに保存する。Google Mapを表示する際はGoogle Maps JavaScript APIを使う。いずれはOpenStreetMapにも対応したい。UIにはFirefoxOS専用のBuilding Blocksを使いたかったが、まだ安定していないようなのでjQuery Mobileを採用した。

FirefoxOSはまだ開発途上で、現時点ではできないこともある。

このアプリは走る時に使うので、本来はバックグラウンドで動作させたい。しかしBackground Services APIはまだ実装されていない。なにもしないと数分で勝手にアプリが終了してしまう。それでは困るので、現在はnavigator.requestWakeLockというAPIを使ってCPUを専有させ、終了しないようにしている。CPUを専有するのでバッテリを消費することになり、長時間の使用には耐えない。

テキストを読みあげてくれる機能(Text to Speech)や音声認識の機能もまだない。計画もなさそうだ。

開発するうえでちょっと不便なこととしては、アプリをPackaged Appとして作る場合にはGoogle Mapを直接使えないことがある。Google Maps JavaScript APIはmaps.googleapis.comにあるAPIを呼ぶ形で使う。Content Security Policyの制約で、アプリのUIを定義するHTMLファイルから直接呼ぶのではなく、ネット上に置いたHTMLファイルから呼ぶことにして、Packaged Appはそれをiframeの中から使うしかない。しかたがないのでGoogle Mapの部分だけをOpenShiftのサーバに置くことにした。

数週間以内にアルファ版をリリースできるところまで来た。FirefoxOSは日本でも海外でも盛り上がっているとは言えない状況だが、いずれ変わると信じて取り組みたい。