Beaconアプリ開発記【その1 開発準備編】

開発部の上條です。
以前にBLEの技術概要に関する記事を投稿しましたが、お読みいただけたでしょうか。(こちらの記事です!)さて、今回の記事から何度かに分けて実際にBLE技術を利用したアプリケーションを開発していきます!
第1回目の今回は、大まかな要件定義と開発環境の構築を行います。

Beacon(ビーコン)って何?

本題に入る前に、先日の記事であまり触れていなかったBeaconについて簡単にご説明します。Beaconとは端的に言うと電波信号の発信機です。一般的には、Apple社が提供しているiBeaconに代表されるBLE技術を利用したものをBeaconと呼ぶことが多いです。
Beaconを利用するとBluetoothをオンにしているデバイスの位置情報を検知することが可能になります。特に、屋内や地下などGPSが不得意とするような場所での位置情報検知にはBeaconが力を発揮します。また、この機能を応用することでBeaconの通信範囲内に存在しているデバイスに対して、プッシュ通知などで情報を送ることも可能になります。今回は、このBeacon端末を利用したアプリケーションを作っていきます。

GPSの電波が届きにくい屋内でも位置情報を検知

Beaconアプリの機能概要

今回の開発はBeaconアプリの基本を理解することを目的として行いたいと考えています。そのため、今回作成するアプリケーションは「Beaconの発信する情報を取得して、スマホ端末に表示させる」というシンプルなものにしようと思います。
機能面・利用環境面についてもう少しご説明しましょう。機能面については、以下の項目を満たすように開発を行う予定です。

  • スマホ側の端末(セントラル)がBeaconの通信範囲内にいる間、そのBeaconの情報が画面に表示される。反対にBeaconの通信範囲外に出ると、画面から該当Beaconの情報が消える。
  • 画面上部にセントラルが検知しているBeaconの台数を表示させる。
  • 可能であれば、各Beaconとの大体の距離も合わせて表示させる。

イメージとしては以下のように画面表示されるよう実装します。

表示イメージ

なお、アプリケーションの動作環境はAndroidを想定し、端末にインストールさせて動かすタイプのアプリケーション(ネイティブアプリ)として開発を行います。また、Javaを利用してアプリの実装を進めていく予定です。

開発環境構築

開発の大まかな方向性を決定したところで、開発環境の構築をしていきます。今回はAndroid用のネイティブアプリを開発するので、開発ツールにはAndroid Studioを利用します。早速Android Studioの公式サイトにアクセスし、ダウンロードしましょう。なお、今回利用するAndroid Studioのバージョンは3.1.3です。

Android Studioのダウンロードページ

ダウンロードが完了したら、インストーラーを起動させて開発環境をインストールします。基本的には全てデフォルトのままで進んでしまって問題ありません。インストールが完了すると、Android Studioを利用できるようになります。
ちなみにAndroid Studioはデフォルトだと英語表記になっていますが、プラグインを適用させることで日本語化が可能です。せっかくなので、そちらも合わせてインストールしておきましょう。
そのプラグインですが、Pleiadesのサイトから入手することができます。日本語版Eclipseを入手する際にPleiadesをよく利用することから、「Pleiades = Eclipse」と認識している方も多いかもしれません。
プラグインはWindow版・Mac版・Linux版の3種類があるので、利用しているOSに合ったものをダウンロードしましょう。

Pleiadesのサイト。開発環境のOSに合わせてダウンロード

ダウンロードした後はPleiadesのサイトの記述に従ってプラグインを適用させます。処理が完了したら、Android Studioを起動して確認してみましょう。無事に日本語表記になっていれば成功です!

終わりに

今回は開発するアプリの機能について大まかな要件定義を行い、次回以降の開発へ向けて準備を整えました。次回から本格的に開発に取り組んでいきますので、今後ともどうぞよろしくお願いします!
Beaconアプリ開発記【その2 領域監視編】
Beaconアプリ開発記【その3 情報取得編】
Beaconアプリ開発記【その4 画面表示編】

関連記事

  1. 高精度気圧センサDPS310の実力を試してみた 【後編】

  2. Web Bluetooth を使ってみよう!その2

  3. WPF Prism を使ってみた

  4. Elastic Stack を使った予兆検知結果の可視化 〜検知した異…

  5. 知識ゼロで Unity をはじめてみた【その3 -キューブの落下とバウ…

  6. ASP.NET MVC で Wijmo を使う – 6