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.1k
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
2.9k
ロック画面Widgetをサクッと実装してみた話
aomathwift
3
480
OS 固有の新機能をサービスに取り入れ活用していくための Tips
aomathwift
0
85
DocC Documentation Archiveをアプリ開発で活用してみよう / DocC Documentation Archive for iOS Application
aomathwift
0
670
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話 After Talk
aomathwift
0
550
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話
aomathwift
1
11k
Other Decks in Technology
See All in Technology
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
190
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
120
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
620
フィジカル版Github Onshapeの紹介
shiba_8ro
0
320
Agile and AI Redmine Japan 2026
hiranabe
4
470
4人目のSREはAgent
tanimuyk
0
110
自宅LLMの話
jacopen
1
720
入門!AWS Blocks
ysuzuki
1
180
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
480
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
23
7.5k
AIチャット検索改善の3週間
kworkdev
PRO
2
170
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.4k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
260
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Crafting Experiences
bethany
1
190
Building Adaptive Systems
keathley
44
3.1k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Abbi's Birthday
coloredviolet
3
8.2k
A Tale of Four Properties
chriscoyier
163
24k
Faster Mobile Websites
deanohume
310
32k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
330
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
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্ͰϨϏϡʔ͕ͳ͍ͱՃͰ͖ͳ͍
·ͱΊʢଈ࣌௨ΛҰಋೖͨ͠Βʣ •ศརͰಋೖՕॴཁݕ౼ •αʔϏε։ൃʹؔΘΔશһͰڞ௨ΠϯϓοτΛ࣋ͯΔΑ ͏ʹ͢Δ
એ