SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Firefox OS搭載スマホ「Fx0」でつくろう! はじめてのFirefox OSアプリ開発(AD)

Firefox OSアプリ開発が楽しくなるハードウェアAPIの概要と、センサーAPIや音声APIを使った楽器アプリの作例

Firefox OS搭載スマホ「Fx0」でつくろう! はじめてのFirefox OSアプリ開発 第3回

  • このエントリーをはてなブックマークに追加

環境光センサーと近接センサーとWebAudioで楽器アプリを作る(2)

近接センサーで近接検知したら音を止める

 最後に、一定以上デバイスに手を近づけると音声を止める部分を作ります。

 近接センサーAPIは、環境光センサーと同様windowオブジェクトのuserproximityイベントにイベントハンドラを登録して利用します。

近接検知
イベント名 userproximity
イベントハンドラのインターフェイス function userproximityHandler(UserProximityEvent event);
イベント引数の型 UserProximityEvent
イベント引数のプロパティ near:接近時true、離脱時falseとなるboolean値

 ミュートはゲインの接続と切断で実現します。ゲインの接続はconnect、ゲインの切断はdisconnectで行います。

audio.gainNode.connect(audio.context.destination);
ゲインの接続
メソッド名 AudioNode.connect(destination)
引数 destination:接続先のAudioNodeオブジェクト
返り値 なし
audio.gainNode.disconnect();
ゲインの切断
メソッド名 AudioNode.disconnect()
引数 なし
返り値 なし

 音声の止め方、再開の仕方がわかったので、近接センサーAPIと組み合わせます。

window.addEventListener('userproximity', approximation);
// 近接センサーが反応したらミュートする
function approximation(e) {
    if (e.near) {
        // ミュート
        audio.gainNode.disconnect(audio.context.destination);
    } else {
        // ミュート解除
        audio.gainNode.connect(audio.context.destination);
    }
}

 これで一通りの機能が実装できました。あとはアイコンを変えたり視覚効果を入れたりとアプリの体裁を整えれば完成です。

「Fx0」を使ってみて

 筆者はこれまでKeon、Flame、Fx0といくつかのFirefox OS端末を使ってきました。Keonは普段使いには耐えられないのでさておくとして、Flameと比較してもFx0はタッチレスポンスなど操作感の点で快適にできています。過去の端末がFx0よりハード性能が低いのを加味しても、Fx0は応答性に気を使っていることをうかがわせます。普段使いの点では電池持ちがいいのも大きなメリットで、ちょくちょくTwitterやFacebookを確認したり、一日中テザリングしても電池が枯渇しません(※2)。

 ハード性能が高い分、処理速度についても頭一つ抜けている点も気に入っていて、これまでの端末では、getUserMediaでカメラプレビューしながら3D処理や画像処理を重ねるのは重たくて辛い処理でしたが、Fx0では十分に動くので、ARやVRの可能性が広がります。センサーを使って現実の世界とスマホの画面を協調させたり、現実の世界に何らかの機能を拡張していくのに十分な処理能力があると思います。電池持ちがいいのも、ハードウェアを使ったプログラミングにはメリットですね。

 Androidなどと比べると基本的な機能で差異があまりないので、細かい点になりますが、Fx0を使っていて他のOSにない部分では、画面端からのスワイプでアプリが切り替えられるのはとても好きなUXです。Firefox OSはUXについても挑戦的な姿勢を見せていて、v1.xからv2.0、v2.xからv3.0とバージョンを重ねるごとに新しいUXを提案してくれます。これからはTVに搭載されたり、Matchstickのようなテレビに接続する端末も増えていくと思うので、スマホと違った画面からのフィードバックも出てくるでしょう。

 これまでは日本語で使えるアプリがほぼなく、日常的に使うアプリについても不満がありましたが、Fx0の登場でアプリがひと通り出揃いました。アミューズメントなどの面でAndroidやiOSに劣ることは否めませんが、逆に捉えればこれからみんなで楽しくしていける余地があります。Firefox OSコミュニティ全体で楽しくしていきましょう!

注釈

※2 テザリングは、別途オプション料500円(税別)がかかります。また、お客様のご利用環境や通信環境により、使用可能時間は異なります。

まとめ

 これまで見てきたとおりFirefox OSでハードウェアにアクセスするのは容易です。全てのAPIを紹介することはできませんでしたが、今回の概要だけでもハードウェアを使ったアプリケーションの開発が大変なものではないことは感じていただけたのではないかと思います。皆さんも是非試しにハードウェアにアクセスしてみてください。何か新しいアプリのアイデアが得られるかもしれませんよ。

 そして是非何か作ったらアプリマーケットに出品してください。楽しいアプリがたくさん増えることを期待しています。

 Mozilla公式のアプリマーケットはこちら。

 KDDIが運営するアプリや制作物の紹介・配布サイトはこちら。

au Firefox OS Portal Site

 下記サイトにて、KDDIが開催を予定しているFirefox OSに関連するイベントや、最新のHTML5技術、Webプラットフォームを用いた新たな楽しみ方についての情報を発信しています。

 「Fx0」の取扱い店舗についても下記サイトからご覧いただけます。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Firefox OS搭載スマホ「Fx0」でつくろう! はじめてのFirefox OSアプリ開発連載記事一覧

もっと読む

この記事の著者

藪下 正美(ヤブシタ マサミ)

 株式会社グローバルサイバーグループ マネージャ。 大阪のソフトウェア開発会社で主に携帯電話・スマートフォンのドライバからアプリまで幅広く開発に従事。 関東支社に転属後はスマートフォン・タブレット向けのアプリ開発を主に担当。 2012年終わりごろからFirefox OSに注目しコミュニティ活動に精力的に参加している。 会社ブログ 個人ブログ  FxOSコードリーディング主催 サイト Facebookグループ

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8540 2015/03/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング