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
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
1
1.1k
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
160
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.8k
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
130
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
110
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
140
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
510
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
300
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
週末にループ・エンジニアリングの理解を深めるためのスライド
nagatsu
0
270
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
0
820
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
870
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Paper Plane (Part 1)
katiecoart
PRO
0
9.2k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.8k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
AI: The stuff that nobody shows you
jnunemaker
PRO
8
730
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
A Soul's Torment
seathinner
6
3k
We Have a Design System, Now What?
morganepeng
55
8.2k
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্ͰϨϏϡʔ͕ͳ͍ͱՃͰ͖ͳ͍
·ͱΊʢଈ࣌௨ΛҰಋೖͨ͠Βʣ •ศརͰಋೖՕॴཁݕ౼ •αʔϏε։ൃʹؔΘΔશһͰڞ௨ΠϯϓοτΛ࣋ͯΔΑ ͏ʹ͢Δ
એ