Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
即時通知を導入する際に考えるべきこと
Search
aoi
September 12, 2022
Technology
6.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
即時通知を導入する際に考えるべきこと
https://fortee.jp/iosdc-japan-2022/proposal/dc963bce-52bd-429c-86ed-9a7b314063ce
aoi
September 12, 2022
More Decks by aoi
See All by aoi
モバイルアプリの行動ログの運用つらさ解消法 / mobile-log-troubleshooting
aomathwift
3
3k
ロック画面Widgetをサクッと実装してみた話
aomathwift
3
490
OS 固有の新機能をサービスに取り入れ活用していくための Tips
aomathwift
0
96
DocC Documentation Archiveをアプリ開発で活用してみよう / DocC Documentation Archive for iOS Application
aomathwift
0
690
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話 After Talk
aomathwift
0
560
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話
aomathwift
1
12k
Other Decks in Technology
See All in Technology
ClaudeCodeでセキュリティ監視業務を半自動化_1年の運用でわかったAIに任せる設計の5つのポイント
kintotechdev
3
900
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3.2k
MCPを待つな、パスキーを拡げよう(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
350
アクセスキー流出時の対応で再認識した攻撃側と防御側の非対称性について
kazzpapa3
1
440
[ホンマでっか SRE] あなたはなぜ SRE に?
_awache
0
350
Windows の互換機能 - 古いプログラムはなぜ動作できるのか
murachiakira
PRO
0
130
500名弱規模の組織のPythonプロジェクト(dbt) をどう管理するか?
hiracky16
0
360
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
0
120
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
77k
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
640
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
360
Claude Codeの体系的な理解と知識のフック
oikon48
8
6k
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
Building the Perfect Custom Keyboard
takai
2
850
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
260
Everyday Curiosity
cassininazir
0
300
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
210
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Transcript
ଈ࣌௨Λಋೖ͢Δࡍʹߟ͑Δ͖͜ͱ Aoi Okawa (@aomathwift)
•Aoi Okawa (@aomathwift) •Cookpad Inc. iOS Developer ࣗݾհ
ಥવͰ͕͢օ͞ΜΞϓϦͷ௨ͬͯݟͯ·͔͢ʁ
ࢲ΄ͱΜͲݟͯ·ͤΜ…
࠷ۙͷiOSͷ௨ࣄ
OSʹΑΔ௨੍ޚɿूதϞʔυ •׆ಈʹԠͯ͡ίϯςϯπΛ੍ޚ͢Δ •ҎԼͷΑ͏ͳΧελϜ͕Մೳ • ϗʔϜը໘ɾϩοΫը໘ͷݟ͑ํ • ௨ͷ৴ΛڐՄ͢ΔΞϓϦ
OSʹΑΔ௨੍ޚɿ௨ཁ •ಧ͍ͨ௨Λࢦఆͨ࣌ؒ͠ʹ·ͱΊͯ৴ •ཁʹؚΊΔΞϓϦϢʔβʔଆ͕ࢦఆ
௨͕ΑΓݟΒΕʹ͘͘ͳΔઃఆ͕૿͍͑ͯΔ
OSઃఆΛಥഁ͢Δखஈ •ଈ࣌௨ͱΑΕΔͷ •௨੍ޚͷͱͰଈ࣌৴Մೳ •ݶΒΕͨ࣌ؒʹ֬ೝ͖͢ใ ΛऔΓ࿙Β͞ͳ͍ͨΊͷػೳ
ଈ࣌௨ྫ
ଈ࣌௨࠷ߴศརʂʂ ಋೖͯ͠௨Λ͙͢ʹݟͯ΄͍͠ʂʂ
ͱࢥͬͯΔͦ͜ͷ͋ͳͨ
͜ͷτʔΫͷର •ଈ࣌௨Λ͜Ε͔Βಋೖ͍ͨ͠ͱࢥ͍ͬͯΔํ •طʹಋೖࡁΈͰΤϯδχΞҎ֎ͷϝϯόʔؚΉνʔϜͰ ӡ༻͍ͯ͠Δํ
ຊͷAgenda •ଈ࣌௨ͷ֓ཁ •࣮ྫʹଈͯ͠ߟ͑Δଈ࣌௨ͷ͍ॴ •ଈ࣌௨Λ࣮ࡍʹར༻ͯ͠Έͨॴײ •ӡ༻্͍ͯ͘͠ͰؾΛ͚ͭΔ͜ͱ
ΫοΫύουϚʔτͱ
ΫοΫύουϚʔτͱ •ੜ৯ωοτεʔύʔ •ΞϓϦͰจ •͖ͳ࣌ؒɾॴͰड͚औΓ
None
ଈ࣌௨ͱ
Interruption Level •௨ͷ৴λΠϛϯάͱॏཁੑΛܾΊΔࢦඪ •iOS 15ΑΓಋೖ •UNNotificationInterruptionLevel
Interruption Level •Passive •Active •TimeSensitive •Critical
Interruption Level •Passive •Active •TimeSensitive = ଈ࣌௨ •Critical
ଈ࣌௨ͷಛ •৴ޙ1࣌ؒϩοΫը໘ʹΔ •ଈ࣌௨Λड͚औΓଓ͚Δ͔Ͳ͏ ͔Λ͔֬ΊΔΞΫγϣϯ͕ଳ
ଈ࣌௨ͷ࣮ʢϩʔΧϧʣ import UserNotifications let content = UNMutableNotificationContent() content.title = "Reminder"
content.body = "Take medicine." content.interruptionLevel = .timeSensitive let trigger = UNCalendarNotificationTrigger( dateMatching: date, repeats: false ) let request = UNNotificationRequest( identifier: identifier, content: content, trigger: trigger )
ଈ࣌௨ͷ࣮ʢϦϞʔτʣ { "aps" : { "alert" : { "title" :
"Reminder", "body" : "Take medicine." }, "interruption-level" : "time-sensitive" } }
Apple͕ਪ͢Δ͍ํ •ݱࡏਐߦத·ͨ1࣌ؒҎʹൃੜ͢Δ༧ఆͷΠϕϯτʹ ؔ͢Δ௨ ग़యɿHuman Interface Guidelines / Managing Notifications
Apple͕ਪ͢Δ͍ํʢྫʣ •ग़લΞϓϦʹ͓͚Δૹ௨ •ΧϨϯμʔΞϓϦʹ͓͚Δ༧ఆͷ௨ ग़యɿSend communication and Time Sensitive notifications
࣮ྫʹଈͯ͠ߟ͑Δଈ࣌௨ͷ͍ॴ
Apple७ਖ਼ΞϓϦέʔγϣϯͰͷར༻ྫ
ΧϨϯμʔΞϓϦ •༧ఆ࡞࣌ʹ௨ΛΦϯʹઃఆ͢Δͱଈ࣌ ௨ͱͯ͠ಧ͘
୳͢ΞϓϦ •ܞߦ͕ϢʔβʔͷҐஔใͱେ͖͘Εͨ ͜ͱΛݕͨ͠ࡍʹ௨
ϦϚΠϯμʔΞϓϦ •௨τϦΨʔ࣌·ͨҐஔใΛͱ ʹࣗ༝ʹઃఆͰ͖Δ •ʮ࣮ߦࡁΈʯʹ͢Δ·ͰϩοΫը໘ʹΔ
݁ہͲ͏͍͏໘Ͱ͏͖ʁ
ଈ࣌௨Λ͏͖ॴ •ҐஔใͷมԽʹґଘ͢Δ௨ •εέδϡʔϧͷ௨
ଈ࣌௨Λ࣮ࡍʹಋೖͯ͠Έͯ
ΫοΫύουϚʔτͰͷಋೖࣄྫ ࣗૹ͚ͷ ͓ಧ͚௨ ड͚औΓΕ ֬ೝ௨ εςʔγϣϯ͚ͷ ͓ಧ͚௨
ಋೖཧ༝ •εςʔγϣϯͷडऔՄೳ࣌ؒΛ͗͢ΔͱɺΛड͚औ Εͳ͘ͳΔ •ࣗૹडऔ࣌ʹෆࡏͩͱɺ͕ճऩ͞ΕΔ → ݶΒΕͨ࣌ؒʹΞΫγϣϯ͠ͳ͍ͱෆརӹΛඃΔ
ϚʔτΞϓϦͰͲΕ͘Β͍ར༻͞Ε͍ͯΔ͔ શiOSΞΫςΟϒϢʔβʔʹର͢Δ ϓογϡ௨ڐՄϢʔβʔͷׂ߹ ϓογϡ௨ΛڐՄ 42% ϓογϡ௨ΛະڐՄ 58% ϓογϡ௨ڐՄϢʔβʔʹର͢Δ ଈ࣌௨༗ޮϢʔβʔͷׂ߹ ଈ࣌௨༗ޮ
69% ଈ࣌௨ແޮ 31%
ಋೖޙʹग़͖ͯͨ •௨ΛϥΠτʹଈ࣌௨ʹઃఆ͢Δ •ʮTime Sensitive͍ͬͯ͏ͷ͕͋Δ͔Βઃఆ͓ͯ͘͠ͱ͍ ͍ͷͰʁʯʮΑͦ͞͏ʯ
ಋೖޙʹग़͖ͯͨ •ॏཁͳ௨ʹଈ࣌௨ͱ͍͏ೝ͕ࣝਁಁͯͦ͠ͷج४Ͱ ͕ٞ͞ΕΔ •ʮ͜ͷ௨ؾ͔ͮͳ͍ͱ·͍͔ͣΒଈ࣌௨ʹ͍ͨ͠ʯ
ଈ࣌௨͕ెʹ૿͑ͯ͠·͏
ଈ࣌௨͕૿͑ΔͱͲ͏ͳΔ͔ ڧׂ͍ΓࠐΈ͕૿͑ΔͱϢʔβʔ͕ετϨεΛײ͡Δ → ଈ࣌௨Λແޮʹ͢Δ → ਅʹؾ͖ͮ͘େͳใʹؾ͚ͮͳ͘ͳΔ
νʔϜͰӡ༻͢Δ্ͰؾΛ͚ͭΔ͜ͱ
ଈ࣌௨ར༻نΛ࡞Δ •αʔϏε։ൃʹؔΘΔϝϯόʔ͕ҎԼΛཧղ͢ΔͨΊͷ υΩϡϝϯτ •ଈ࣌௨ͷ֓ཁͱར༻ϝϦοτ •ΫοΫύουϚʔτͰଈ࣌௨Λࢦఆ͢Δج४ •HIGΛಡΈ߹ΘͤͯiOSΤϯδχΞ͕ϝΠϯͰ࡞
ϓογϡ௨Λ৽ઃ͢Δϑϩʔ ΧςΰϦͷ ઃఆͱ௨ Ϧετͷهೖ λΠτϧɾຊจ ৴λΠϛϯά ͳͲ௨ίϯς ϯπͷઃܭ ଈ࣌௨ͷ ରԠͷݕ౼
ଈ࣌௨ ଈ࣌௨Ͱͳ͍ Ϣʔβʔ͕ओମͱͳΔऔҾʹ ؔΘΔ௨Ͱ͋Δ͔ ଈ࣌௨ ଈ࣌௨Ͱͳ͍ Ϣʔβʔ͕ࣗઃఆͨ͠༧ఆ ʹؔ͢Δ௨Ͱ͋Δ͔ NO YES
NO NO YES YES ৴ޙ࣌ؒҎʹϢʔβʔ ͕ߦಈΛى͜͢ඞཁ͕͋Δ͔
نಋೖޙͲ͏ͳ͔ͬͨ •ଈ࣌௨ʹ͍ͭͯಋೖʹݕ౼͕ཁΔͷͰ͋Δͱ͍͏Π ϯϓοτ͕ἧͬͨ •ࢪࡦʹΑͬͯଈ࣌௨ʹͳΓಘΔ௨૿͑ͳ͍ͱ͍ ͏அͰݕ౼ͷϑϩʔΛεΩοϓͰ͖ΔΑ͏ʹ
ݱঢ় •ར༻نͷཧɾΞοϓσʔτɾϑϩʔఆண·Ͱͷݟक ΓiOSΤϯδχΞͷͱ͍͏ཱ͚ͯ •࣮ࡍҰ෦ͷϝϯόʔ͕ΞϯςφΛுͬͯݟ͍ͯΔ
ࠓޙͲ͏ͳ͍ͬͯ͘ͱྑ͍͔ •iOSΤϯδχΞҎ֎ͷϝϯόʔݕ౼ϑϩʔʹҙࣝΛ࣋ͭ •௨ͷ৽نՃ͔Βଈ࣌௨ݕ౼·ͰͷϑϩʔͷࣗಈԽ • ྫɿPR্ͰϨϏϡʔ͕ͳ͍ͱՃͰ͖ͳ͍
·ͱΊʢଈ࣌௨ΛҰಋೖͨ͠Βʣ •ศརͰಋೖՕॴཁݕ౼ •αʔϏε։ൃʹؔΘΔશһͰڞ௨ΠϯϓοτΛ࣋ͯΔΑ ͏ʹ͢Δ
એ