【Swift UI】Core BluetoothでUUIDの定義方法!CBUUID型と自動生成

この記事からわかること

  • Swift UICore BluetoothBluetooth接続アプリ実装方法
  • UUIDとは?
  • 適当自動生成するには?
  • CBUUIDクラスインスタンス化するには?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

今回はiOSアプリでBluetooth機能を実装するためにCore Bluetoothを使用してUUIDの定義方法をまとめていきます。

Core Bluetoothとは?

公式リファレンス:Core Bluetooth

Core BluetoothはアプリからBLE(Bluetooth Low Energy)を使用するための機能を提供するライブラリです。デフォルトで組み込まれているので導入作業は必要なくすぐに使用することができます。

Bluetooth接続を用いる場合は例えばPCとキーボードなど接続しあう2つの登場人物が必要になります。2つのうちBluetoothの機能を使用する親側を「Central(セントラル)」機能を提供する子側を「Peripheral(ペリフェラル)」と呼びます。例で言うとPCがセントラル、キーボードがペリフェラルです。

そしてペリフェラルが持っている機能のまとまりをサービス、機能1つ1つをキャラクタリスティックと呼びそれらを識別するための識別子とUUIDが振られています。

UUIDとは?

UUID(Universally Unique IDentifier)とはSwift独自のものではなくな識別子の標準規格です。重複のない一意な識別子を定義するために使用されることが多く、データベースの主キーやデバイスなどの識別子に利用されます。

128bit(=16byte)の数値として表現され、8-4-4-4-12のハイフン区切りの文字(16進数:0〜F)の羅列として表されます。

8ABE0F22-0EEF-478E-A709-3F271B932AFE

SwiftではUUIDオブジェクトが用意されていますが、Core Bluetoothでは独自のCBUUIDオブジェクトを使用します。

適当なUUIDを生成する

とりあえず適当なUUIDが欲しい場合はターミナルでuuidgenコマンドを実行すると適当なUUIDを自動生成してくれます。

$ uuidgen
94B7A9F8-4D60-43E8-AA7D-22CE38473C4A

CBUUIDクラス

公式リファレンス:CBUUIDクラス

CBUUIDクラスはCore Bluetoothで定義されているBluetooth規格で使用するための識別子を提供するクラスです。

CBUUIDインスタンスの生成

CBUUIDインスタンスを生成するにはCBUUID(string:)イニシャライザを使用して簡単に実装できます。

CBUUID(string:"00000000-1111-1111-1111-111111111111")

引数に渡すのはハイフン区切りの8-4-4-4-12の文字列です。UUIDは規格に厳格なのでもしフォーマットが異なる場合は以下のようなエラーを吐いてアプリがクラッシュします。

"String 00000000-0000-1111-1111-11111111 does not represent a valid UUID"

String型に変換する

uuidStringプロパティからString型に変換した文字列を取得することも可能です。

let cbuuid = CBUUID(string:"00000000-0000-1111-1111-111111111111")
cbuuid.uuidString

UUID型から変換する

UUID型からキャストすることも可能です。

let uuid = UUID(uuidString:"00000000-0000-1111-1111-111111111111")
let cbuuid = CBUUID(nsuuid: uuid!)

おすすめ参考書:iOS×BLE Core Bluetoothプログラミング

iOSアプリでBLEを使用した機能を実装したいなら一度は読んでおくことをおすすめする参考書です。iOSでのCore Bluetoothを使用した実装だけでなく、Bluetoothに関する細かい知識やノウハウも詰まっているので網羅的に理解したい方にはバッチリだと思います。

少し古い参考書であり、Objective-CとSwift両方のコードで実装方法が記述されています。Swift UIでの実装方法は載っていませんが、基本的なコードは昔からあまり変わっていないのでつまづくところはなく実装できると思います。

BLEを食材や店員などに例えて解説してくれるので素人でもBLEの概念がつかみやすく記述されています。約500ページくらいあるのでボリュームがすごいですが、ここから得られる知識は数知れませんでした。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index