見出し画像

Nearby Interaction GATTとバックグラウンドセッション

先日、Nearby Interactionフレームワークのここ2年ほどのアップデートについて調べた中で、「バックグラウンドセッション」がサポートされ、アプリがバックグラウンド状態でもアクセサリとインタラクション可能になったことを知った。

WWDC22の"What's new in Nearby Interaction"によると、どうやら通信自体にはBLE / Core Bluetoothを利用し、Nearby Interaction GATTを通じてUWBの情報をやりとりする、というもののようだ。

Nearby Interaction GATTなるものがあるのか、ほうほう、ということで、これについて調べてみた。

バックグラウンドセッションの想定ユースケース

まず、Appleとしてはどういうユースケースを想定してこの機能を追加したのか。WWDCの同セッションでは以下のように述べられている。

However, when your app transitions to the background or when the user locks the screen on iOS and watchOS, any running NISessions are suspended until the application returns to the foreground.
(しかし、アプリがバックグラウンドに遷移したとき、またはiOSとwatchOSでユーザーが画面をロックしたとき、アプリケーションがフォアグラウンドに戻るまで、実行中のNISessionsは中断されます。)

This means you needed to focus on hands-on user experiences when interacting with your accessory.
(つまり、アクセサリーとインタラクションする際には、ハンズオンのユーザーエクスペリエンスにフォーカスする必要がありました。)

Starting in iOS 16, Nearby Interaction has gone hands-free.
(iOS 16から、Nearby Interactionはハンズフリー化されました。)

You're now able to use Nearby Interaction to start playing music when you walk into a room with a smart speaker, turn on your eBike when you get on it, or trigger other hands-free actions on an accessory.
(スマートスピーカーで部屋に入ると音楽再生を開始したり、eBikeに乗ると電源を入れたり、アクセサリーの他のハンズフリーアクションをトリガーするためにNearby Interactionを使用することができるようになりました。)

You can do this even when the user isn't actively using your app via accessory background sessions.
(これは、ユーザーがアクティブにアプリを使用していないときでも、アクセサリーのバックグラウンドセッションを介して行うことができます。)

なるほどなるほど、これって過去多くのスマホ連動デバイスでもやりたかったことであって、これがUWB / Nearby Interactionで補強されるわけか。

バックグラウンドセッションとBLE

ここから先は

2,458字 / 5画像

文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/