FileMaker 15 で追加された iBeacon 機能を試してみました

先日の 群馬 FileMaker 勉強会 #10 で発表したネタ「FileMaker Go で iBeacon やってみる」について紹介します。

発表内容について

先日、新しいバージョンとなるFileMaker 15がリリースされました。みなさんもうお使いになられましたか?

リリースがちょうど勉強会前のタイミングだったこともあり、今回はその FileMaker 15 の新機能の中から iBeacon のサポート機能について取り上げてみました。

iBeacon については以前から何となく知ってはいたものの、実際にいじったこともなければどういう動きをするものかもよく分かっていなかったので、これを機会に「iBeaconとは?」という初歩的な部分から調べてみました。

大まかにですが調べた iBeacon の仕組みをまとめてみます。

  • iBeacon は基本的にデバイス(Beacon 電波の発信機)とアプリ(Beacon 電波を受信する)をセットで使う。
  • iBeacon デバイスには個々を判別する識別値(UUID、major、minor)が設定できる。
  • iBeacon アプリは受信した Beacon 電波から iBeacon デバイスの識別値、位置などを取得できる。その情報を使ってやりたい処理を行う。

細かい仕様で気をつけるべき点はまだあるでしょうが、まずはこの辺りの基本だけでも把握しておくと、どのように iBeacon アプリを作れば良いのか具体的にイメージできて良いかと思います。

実際の発表内容は前述のスライドをご覧になってみてください。

iBeacon のデモについて

FileMaker 15 では iBeacon デバイスからの情報を取得する機能として RangeBeacons という新しい関数が用意されました。

今回の発表では、この RangeBeacons を使った簡単なデモも作ってみたので合わせて紹介します。

iBeacon デバイス

まずデモで使う iBeacon デバイスですが、実機を用意する余裕が無かったので、デバイスと同じように電波を発信してくれる iOS アプリを使ってみました。色々な iBeacon アプリが公開されていますが、今回使ってみたのは「iBeacon Scanner」です。

iBeacon Scanner

iBeacon Scanner
開発元:IXSOFT
無料
posted with アプリーチ

「iBeacon Scanner」を起動すると、下記のように UUID、major、minor といった識別値を自由に指定して Beacon を発信することができます。これを空いている iPad で実行して iBeacon デバイスの代わりにしました。

iBeacon Scanner

iBeacon アプリ

アプリは FileMaker Go で次のようなものを用意しました。

iBeaconアプリ

「開始」ボタンを押下すると RangeBeacons 関数が呼び出されて Beacon を検索し始めます。(「iBeacon Scanner」で設定した UUID を条件に検索するようにしてあります。)

iBeaconアプリ

検索結果が取得できるとその値がフィールドに表示されます。

iBeaconアプリ

お遊びで、Beacon を近くで受信できた場合(近さ = 1 の場合としました)に、割引クーポンを表示できる機能も入れておきました(笑)

iBeaconアプリ

RangeBeacons 関数一発でこういった機能が作れてしまうので、とてもお手軽ですね。

おわりに

というわけで、iBeacon についての発表の紹介でした。

こういった簡単な機能はすぐ作れてしまうのですが、より実用的な iBeacon アプリに仕上げるには iOS の領域観測機能で通知を受信できるようなものが必要なのでは、という疑問が新たに湧いてきました。

オンタイマースクリプトのような処理を駆使して実現できるのか? FIAS(FileMaker iOS App SDK)で iOS アプリ化することでそういう仕組が実現できるのか?

今回はその辺りまで詳しく調べることができませんでしたので、今後機会を見つけてまた試してみたいなあと思っています。