Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
Report
Shuichi Tsutsumi
Follow
iOS Application Programmer
May. 13, 2015
•
0 likes
21 likes
×
Be the first to like this
Show More
•
22,928 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
Chris Ohk
Railsで作るBFFの功罪
Recruit Lifestyle Co., Ltd.
Data Factoryの勘所・大事なところ
Tsubasa Yoshino
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
がっつりMongoDB事例紹介
Tetsutaro Watanabe
1
of
50
Top clipped slide
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
May. 13, 2015
•
0 likes
21 likes
×
Be the first to like this
Show More
•
22,928 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Core Bluetooth のバックグラウンド実行モードについて ・バックグラウンドでできること ・バックグラウンドにおける制約 ・状態の保存と復元
Shuichi Tsutsumi
Follow
iOS Application Programmer
Advertisement
Advertisement
Advertisement
Recommended
全部見せます!最前線エンジニアが語るBleアプリケーションのハマりどころ(i os)
Takaaki Tanaka
1K views
•
34 slides
[CB16] スマートフォン制御のIoTデバイスにおけるBLE認証設計の課題:Gogoroスマートスクターの分析を通じて by Chen-yu Dai [...
CODE BLUE
3.8K views
•
40 slides
iBeaconを身近に!アプリ開発の基礎とポイント
leverages_event
2.3K views
•
32 slides
Hubsカスタマイズ 行動ログ取得やバックエンドの話
hironroinakae
819 views
•
21 slides
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
17.7K views
•
38 slides
【Unite Tokyo 2019】AWS for Unity Developers
UnityTechnologiesJapan002
8.9K views
•
82 slides
More Related Content
Slideshows for you
(20)
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
•
25.5K views
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
•
15.2K views
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
Chris Ohk
•
28.9K views
Railsで作るBFFの功罪
Recruit Lifestyle Co., Ltd.
•
8.3K views
Data Factoryの勘所・大事なところ
Tsubasa Yoshino
•
4.5K views
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
•
19.7K views
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
•
7.1K views
がっつりMongoDB事例紹介
Tetsutaro Watanabe
•
22.8K views
OpenAPIを利用したPythonWebアプリケーション開発
Takuro Wada
•
9.3K views
Moveitを使ったアプリケーションの紹介
Ryodo Tanaka
•
3.5K views
やはりお前らのMVCは間違っている
Koichi Tanaka
•
143.2K views
Hubs Cloud研究-公開リポジトリを中心に-
GREE VR Studio Lab
•
2.5K views
次世代DaoフレームワークDoma
Toshihiro Nakamura
•
4K views
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
Seongyun Byeon
•
14.2K views
New Features of DotNet 6 Blazor WASM
Shotaro Suzuki
•
587 views
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
•
86.1K views
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
•
21K views
20210824 Pico Session at CEDEC2021 (新)
Miyu Nishikawa
•
371 views
gRPC入門
Kenjiro Kubota
•
23.6K views
Swiftで、Webサーバにデータを送信・登録しよう!
Kanako Kobayashi
•
9.1K views
More from Shuichi Tsutsumi
(20)
Core MLのアップデートを3倍楽しむ方法 #wwdctokyo
Shuichi Tsutsumi
•
1.8K views
エンジニアという仕事を楽しみ続けるためのキャリア戦略
Shuichi Tsutsumi
•
6.1K views
Depth in Depth #iOSDC
Shuichi Tsutsumi
•
4.4K views
UIImageView vs Metal [日本語版] #tryswiftconf
Shuichi Tsutsumi
•
5.5K views
UIImageView vs Metal #tryswiftconf
Shuichi Tsutsumi
•
9.1K views
飛び道具ではないMetal #iOSDC
Shuichi Tsutsumi
•
8.5K views
Deep Learning on iOS #360iDev
Shuichi Tsutsumi
•
6.8K views
Client-Side Deep Learning
Shuichi Tsutsumi
•
8.3K views
Building iOS apps using "Bluetooth Low Energy"
Shuichi Tsutsumi
•
877 views
Practical Core Bluetooth in IoT & Wearable projects @ AltConf 2016
Shuichi Tsutsumi
•
2.4K views
Practical Core Bluetooth in IoT & Wearable projects @ UIKonf 2016
Shuichi Tsutsumi
•
7.3K views
オープンソースエコシステム #demodaytokyo
Shuichi Tsutsumi
•
8.4K views
Core Image Tips & Tricks in iOS 9
Shuichi Tsutsumi
•
36.9K views
Core Graphics on watchOS 2
Shuichi Tsutsumi
•
36.2K views
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Shuichi Tsutsumi
•
27.5K views
iOS 9 の新機能 Core Image 編
Shuichi Tsutsumi
•
28.8K views
UI/UX に影響の大きい watchOS 2 の新機能 3つ
Shuichi Tsutsumi
•
17.6K views
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
•
23.8K views
Apple Watch 間通信
Shuichi Tsutsumi
•
10.5K views
OpenCV 3.0 on iOS
Shuichi Tsutsumi
•
132.9K views
Advertisement
Recently uploaded
(20)
論文紹介:Temporal Action Segmentation: An Analysis of Modern Techniques
Toru Tamaki
•
53 views
シン3次元表示装置 ーその1ー
Takashi Yamanoue
•
126 views
①【阳光海岸大学毕业证文凭学位证书|工艺完美复刻】
vgh215w
•
2 views
Kubernetes超入門
Takashi Suzuki
•
0 views
TestSIP (1).pdf
DeependraSingh712859
•
2 views
①【戴尔豪斯大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 views
オレオレになりがちなテスト計画を見直した話
terahide
•
25 views
留信网认证可查【拜欧拉大学文凭证书毕业证购买】
1lkjhg
•
3 views
☀️【杜兰大学毕业证成绩单留学生首选】
2125nuh
•
2 views
【DL輪読会】Flow Matching for Generative Modeling
Deep Learning JP
•
656 views
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
•
25 views
統計学の攻略_統計的仮説検定の9パターン.pdf
akipii Oga
•
27 views
第2回Matlantis User Conference_20230421_畠山歓先生
Matlantis
•
357 views
Forguncy8 製品概要 202305.pptx
フォーガンシー
•
6 views
SoftwareControl.pdf
ssusercd9928
•
6 views
モバイル・クラウド・コンピューティング-データを如何に格納し、組み合わせ、情報として引き出すか
Masahiko Funaki
•
2 views
ヘッドレス化したbaserCMS5とその機能
Ryuji Egashira
•
10 views
第2回Matlantis User Conference_20230421_久間薫先生
Matlantis
•
281 views
殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜
殺しても死なないアプリ ∼Core Bluetooth の「状態の保存と復元」機能∼ 堤
修一 @shu223 2015.5.13 potatotips #17
• 堤 修一(つつみ
しゅういち) • iOS専業フリーランス • ブログ『Over&Out その後』 • 著書 『iOS×BLE Core Bluetoothプログラミング』 『iOSアプリ開発 達人のレシピ100』 自己紹介
制作実績(BLE関連)
制作実績(BLE関連)
制作実績(BLE関連)
制作実績(BLE関連) Music for the
Deaf
制作実績(BLE関連) Music for the
Deaf
制作実績(BLE関連) Music for the
Deaf
制作実績(BLE関連) Music for the
Deaf
今日話すこと
今日話すこと Core Bluetooth のバックグラウンド実行モードについて
今日話すこと Core Bluetooth のバックグラウンド実行モードについて -
対応方法
今日話すこと Core Bluetooth のバックグラウンド実行モードについて -
対応方法 - できること、できないこと
今日話すこと Core Bluetooth のバックグラウンド実行モードについて -
対応方法 - できること、できないこと - 「状態の保存と復元」機能
Core Bluetooth の バックグラウンド実行モード 対応方法
チェックマーク入れるだけ
チェックマーク入れるだけ これだけでバックグラウンドでBLEによる通信が可能に
バックグラウンドで何 ができるのか?
基本的には何でもできる
基本的には何でもできる • セントラル - スキャン -
接続 - Read、Write - Notificationの受信
基本的には何でもできる • セントラル - スキャン -
接続 - Read、Write - Notificationの受信 • ペリフェラル - アドバタイズ - Read / Writeリクエストへの応答 - Notificationの送信
ただし
制約はある
制約はある • セントラル - スキャン間隔が長くなる -
スキャン開始時のサービス指定が必須
制約はある • セントラル - スキャン間隔が長くなる -
スキャン開始時のサービス指定が必須 • ペリフェラル - アドバタイズ間隔が長くなる - ローカル名がアドバタイズされなくなる - サービスUUIDがオーバーフロー領域に入る
バックグラウンドでの アプリの停止
バックグラウンドでアプリが 停止(終了)すると
バックグラウンドでアプリが 停止(終了)すると → バックグラウンドタスクも停止する
バックグラウンドでアプリが 停止(終了)すると → バックグラウンドタスクも停止する バックグラウンドでアプリが停止するケース • (メモリ消費量等の理由で)システムによって停止 •
ユーザーによって明示的に停止
困る例:スマートロック
困る例:スマートロック • ユーザーが家を出れば自動的にドアをロックし、帰っ てくればロックを解除する
困る例:スマートロック • ユーザーが家を出れば自動的にドアをロックし、帰っ てくればロックを解除する - BLEの接続が切れることにより施錠され、次に家に帰ってきた ときに自動的に再接続して解錠できるよう、バックグラウンド で接続要求を動作させておく
困る例:スマートロック • ユーザーが家を出れば自動的にドアをロックし、帰っ てくればロックを解除する - BLEの接続が切れることにより施錠され、次に家に帰ってきた ときに自動的に再接続して解錠できるよう、バックグラウンド で接続要求を動作させておく •
外出が数日間にわたり、その間にアプリが停止 → 自動的にロック解除されず、家に入れない!
状態の保存と復元 (State Preservation and
Restoration)
• アプリケーションが停止していても、代わりにBLE 関係のタスクを実行するよう、システムに要求する ための機能
• アプリケーションが停止していても、代わりにBLE 関係のタスクを実行するよう、システムに要求する ための機能 • システムはアプリケーションを停止してメモリを解 放する際、状態の復元で必要になるオブジェクトの 情報を保存する
• アプリケーションが停止していても、代わりにBLE 関係のタスクを実行するよう、システムに要求する ための機能 • システムはアプリケーションを停止してメモリを解 放する際、状態の復元で必要になるオブジェクトの 情報を保存する →
アプリを殺しても生き続ける!
デモ
殺しても通知が届く
実装方法
実装方法 • バックグラウンド実行モードを有効にする
実装方法 • バックグラウンド実行モードを有効にする • セントラルマネージャ
及び ペリフェラルマネージャ 初期化時にオプションを与える
基本的にはこれだけです。
が、
「アプリの状態すべて」 が復元されるわけではない
「アプリの状態すべて」 が復元されるわけではない • あくまでシステムがやってくれるのは、BLEの処理 を引き継いで、イベント発生のタイミングでアプリ をバックグラウンドで起こして当該デリゲートメソッ ドを呼ぶところまで
「アプリの状態すべて」 が復元されるわけではない • あくまでシステムがやってくれるのは、BLEの処理 を引き継いで、イベント発生のタイミングでアプリ をバックグラウンドで起こして当該デリゲートメソッ ドを呼ぶところまで • その他の諸々は自分で復元してやる必要がある
続きは書籍で! • konashi開発者 松村礼央さんとの共著 •
BLEについては知識ゼロからでOK! • BLEの仕様についても詳細な解説があ るので、既に案件でバリバリやって る方もオススメ • konashi等のデバイスがなくても、 iPhone同士でも試せます
Advertisement