回避手順の説明付きマサカリ(追加一刀) - ReDo

2014年5月22日

回避手順の説明付きマサカリ(追加一刀)

何様だという話はあるのですが。当該記事は「正しい見聞を広めよう」という目的で書かれているように見えるのですが実際には誤解を広めるのに一役買ってしまっていそうなので。

企画とエンジニアが知っておかないといけない「iBeacon」の話 #iBeacon #yahoo #iOS7
https://codeiq.jp/magazine/2014/05/10303/

この件へのツッコミ詳細です。

>Bluetoothの新規格を用いていて、送受信ともに非常にシンプルなコードでの実装が可能です。
【△ちょっと気になる】
iBeaconがBLEを用いていることと、CoreLocationでの実装がシンプルなことに因果はありません。
あとadvertise/scan(receive)を「送受信」という言い方も少し気になります。ブロードキャストという単語が後で出てくるので、それでいいじゃないですか...。

>ビーコンの発信器として利用できるEstimoteを代表とした
【×避けた方がいい】
きちんと後述していますがEstimoteは「一番最初に有名になった」であって代表としていいのか難しい。そもそもAppleとして代表的なiBeaconビーコン発信器は決めて欲しくないんじゃないかな、と思っています。

>受信側で得られるのは送信側のビーコンを識別する情報であるuuid, major, minorなどの限られたデータです。またペアリングも必要なく、セントラルは複数のペリフェラルを検知できます。
【△少し用語登場が唐突】
おそらくヤフーの方も記者の方もCentralとかPeripheralまできちんとその場で理解した上での記事っぽいのですが、今まで「ビーコン」と表現してきたものがいきなりセントラルになる突然の登場は直したほうがいいと思われます。

>コンテンツの配信や相互通信は以下の図のようなアーキテクチャを構築しサーバ経由で行う必要があります。
【×できれば直して欲しい】
WiFiぽいアイコンとサーバが必要そうに見えるこの図は何を訴えたいのか。なぜコンテンツを配信しなくてはいけないのか。
「iBeaconとは何か」を説明していた流れから突然「iBeaconを利用した具体的なサービスの実現アーキテクチャの一例」に飛んでいて少し唐突に見えます。

>?,発信するビーコン情報をペリフェラルに配信 ?,それぞれのペリフェラルが割り当てられたuuid, major, minorの値でビーコンの配信
【×他の言葉にすべき】
前者が「設定」、後者がビーコン情報の「ブロードキャスト」という表現にすれば良いと思います。

>例えばAndroidにしても、〜OSも4.3以降でないと対応していないのが現状です。
【△他の表現が望ましい】
「Androidではバージョン4.3でBLEがサポートされるようになったため、ハードウェアとして対応しているAndroidデバイスであれば、現状のiBeaconのAdvパケットを読み取ってパースする処理を実装することが可能ですが、iOSの様にプラットフォームとしてiBeaconがサポートされているわけではありません。」ぐらいでどうですかね...。

>例えば「webで使えるクーポンをiBeaconで配信」などは不適切で、
【△少し言葉が足りない】
うーん、例えばですが、別にいくらコピーされても問題がないクーポンであれば「わざわざクーポンをハックしてまで商品を買いにきてくれる」人の除外を想定する必要はないと思います。結局サービス・運用に因るので単純に「なりすませるから金銭的価値のあるものを扱うな」という短絡表現は避けるべきだと思います。

# NFC決済のアレとだけは並べちゃいけない話ですが。

>5.開発で知っておくべき最低限のこと一覧
【×再度見直しを】
BLEを扱う条件とiBeaconを扱う条件が混ざっていてチマチマ嘘になってしまっている気がします。一応「iBeacon」に限定して考えると...

>Xcode 5が必要 →iOS7という制限の説明だけで良いのでは。
>iOS 6でもペリフェラルにはなれる →誤解を招きやすいラインなのでさっくり削った方がいい気がする。
>EstimoteやStickNFindなど →日本技適対応していないEstimoteや、ファーム書き換えが必要な(そもそもプロダクトとして目的の違う)StickNFindを代表デバイスするとするのは首をかしげたくなる
>「アプリが起動している/起動していない」という表現がforeground/backgroundの話なのかタスク一覧にも居ない話なのかはっきりしない。(なんとなく推測はつく)

>例えばiPhoneをペリフェラル、MBAをセントラルにするなら以下の二通りのやり方があります。
【×すぐ直せ】
なんでこの二通りなのですかorz
どうしても二つ並べたいのであれば「アプリを落としてくる」「ソースから動かす」だと思うんですよね。

あと最初に試すんならMacをPeripheralにしてiOS7のiPhoneをCentralにする方が良いんじゃないですか。これまでの流れは「よく想像される使われ方」に沿っているのに突然逆のチョイスなのは不自然に感じました。

あと「企画とエンジニア」というタイトルで突然コードが出てくるのはどうなのでしょう、この記事を「こういう技術的なエントリはちょっとしたミスで誤解を招きやすい表現が混ざっちゃうもんだよね」って正しく読みとれるのはエンジニアだけだと思います。しかもBLEについて最低限の知識のある。そんなわけでコード載せなくて良かったんじゃない?と思ってるのでコードの中身についてはノーコメント。

そういう60点と評しました。

○(2014.05.26追記)「※1、※2、※3については、公開後(2014/5/23 18:40)に改定を行いました。」
>CoreLocation.Frameworkに追加され、BLEと呼ばれる低電力で動作可能なBluetoothの新規格を用いていて、送受信ともに非常にシンプルなコードが可能です。(*1)
「iBeaconがBLEを利用していること」と「iBeaconが(CoreBluetoothではなく)CoreLocationできっちり抽象化されていること」がやっぱり混ざった様に読めてしまうような...

>5.開発で知っておくべき最低限のこと一覧
>ペリフェラルは送るのみ・セントラルは受信のみ。
BLEとiBeaconめっさ混ざってますね。
「iBeaconとして、ビーコンをブロードキャストする送信機側はBLEではPeripehral、ビーコンを受信する側はBLEではCentralに当たります。」ぐらいで...。

# dmp

コメントする