Upgrade to Pro — share decks privately, control downloads, hide ads and more …

即時通知を導入する際に考えるべきこと

aoi
September 12, 2022

 即時通知を導入する際に考えるべきこと

aoi

September 12, 2022
Tweet

More Decks by aoi

Other Decks in Technology

Transcript

  1. ଈ࣌௨஌Λಋೖ͢Δࡍʹߟ͑Δ΂͖͜ͱ Aoi Okawa (@aomathwift)

  2. •Aoi Okawa (@aomathwift) •Cookpad Inc. iOS Developer ࣗݾ঺հ

  3. ಥવͰ͕͢օ͞ΜΞϓϦͷ௨஌ͬͯݟͯ·͔͢ʁ

  4. ࢲ͸΄ͱΜͲݟͯ·ͤΜ…

  5. ࠷ۙͷiOSͷ௨஌ࣄ৘

  6. OSʹΑΔ௨஌੍ޚɿूதϞʔυ •׆ಈʹԠͯ͡ίϯςϯπΛ੍ޚ͢Δ •ҎԼͷΑ͏ͳΧελϜ͕Մೳ • ϗʔϜը໘ɾϩοΫը໘ͷݟ͑ํ • ௨஌ͷ഑৴ΛڐՄ͢ΔΞϓϦ

  7. OSʹΑΔ௨஌੍ޚɿ௨஌ཁ໿ •ಧ͍ͨ௨஌Λࢦఆͨ࣌ؒ͠ʹ·ͱΊͯ഑৴ •ཁ໿ʹؚΊΔΞϓϦ͸Ϣʔβʔଆ͕ࢦఆ

  8. ௨஌͕ΑΓݟΒΕʹ͘͘ͳΔઃఆ͕૿͍͑ͯΔ

  9. OSઃఆΛಥഁ͢Δखஈ •ଈ࣌௨஌ͱΑ͹ΕΔ΋ͷ •௨஌੍ޚͷ΋ͱͰ΋ଈ࣌഑৴Մೳ •ݶΒΕͨ࣌ؒ಺ʹ֬ೝ͢΂͖৘ใ ΛऔΓ࿙Β͞ͳ͍ͨΊͷػೳ

  10. ଈ࣌௨஌ྫ

  11. ଈ࣌௨஌࠷ߴศརʂʂ ಋೖͯ͠௨஌Λ͙͢ʹݟͯ΄͍͠ʂʂ

  12. ͱࢥͬͯΔͦ͜ͷ͋ͳͨ

  13. ͜ͷτʔΫͷର৅ •ଈ࣌௨஌Λ͜Ε͔Βಋೖ͍ͨ͠ͱࢥ͍ͬͯΔํ •طʹಋೖࡁΈͰΤϯδχΞҎ֎ͷϝϯόʔؚΉνʔϜͰ ӡ༻͍ͯ͠Δํ

  14. ຊ೔ͷAgenda •ଈ࣌௨஌ͷ֓ཁ •࣮ྫʹଈͯ͠ߟ͑Δଈ࣌௨஌ͷ࢖͍ॴ •ଈ࣌௨஌Λ࣮ࡍʹར༻ͯ͠Έͨॴײ •ӡ༻্͍ͯ͘͠ͰؾΛ͚ͭΔ͜ͱ

  15. ΫοΫύουϚʔτͱ͸

  16. ΫοΫύουϚʔτͱ͸ •ੜ઱৯඼ωοτεʔύʔ •ΞϓϦͰ஫จ •޷͖ͳ࣌ؒɾ৔ॴͰड͚औΓ

  17. None
  18. ଈ࣌௨஌ͱ͸

  19. Interruption Level •௨஌ͷ഑৴λΠϛϯάͱॏཁੑΛܾΊΔࢦඪ •iOS 15ΑΓಋೖ •UNNotificationInterruptionLevel

  20. Interruption Level •Passive •Active •TimeSensitive •Critical

  21. Interruption Level •Passive •Active •TimeSensitive = ଈ࣌௨஌ •Critical

  22. ଈ࣌௨஌ͷಛ௃ •഑৴ޙ1࣌ؒ͸ϩοΫը໘ʹ࢒Δ •ଈ࣌௨஌Λड͚औΓଓ͚Δ͔Ͳ͏ ͔Λ͔֬ΊΔΞΫγϣϯ͕෇ଳ

  23. ଈ࣌௨஌ͷ࣮૷ʢϩʔΧϧʣ 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 )
  24. ଈ࣌௨஌ͷ࣮૷ʢϦϞʔτʣ { "aps" : { "alert" : { "title" :

    "Reminder", "body" : "Take medicine." }, "interruption-level" : "time-sensitive" } }
  25. Apple͕ਪ঑͢Δ࢖͍ํ •ݱࡏਐߦத·ͨ͸1࣌ؒҎ಺ʹൃੜ͢Δ༧ఆͷΠϕϯτʹ ؔ͢Δ௨஌ ग़యɿHuman Interface Guidelines / Managing Notifications

  26. Apple͕ਪ঑͢Δ࢖͍ํʢྫʣ •ग़લΞϓϦʹ͓͚Δ഑ૹ௨஌ •ΧϨϯμʔΞϓϦʹ͓͚Δ༧ఆͷ௨஌ ग़యɿSend communication and Time Sensitive notifications

  27. ࣮ྫʹଈͯ͠ߟ͑Δଈ࣌௨஌ͷ࢖͍ॴ

  28. Apple७ਖ਼ΞϓϦέʔγϣϯͰͷར༻ྫ

  29. ΧϨϯμʔΞϓϦ •༧ఆ࡞੒࣌ʹ௨஌ΛΦϯʹઃఆ͢Δͱଈ࣌ ௨஌ͱͯ͠ಧ͘

  30. ୳͢ΞϓϦ •ܞߦ඼͕ϢʔβʔͷҐஔ৘ใͱେ͖͘཭Εͨ ͜ͱΛݕ஌ͨ͠ࡍʹ௨஌

  31. ϦϚΠϯμʔΞϓϦ •௨஌τϦΨʔ͸೔࣌·ͨ͸Ґஔ৘ใΛ΋ͱ ʹࣗ༝ʹઃఆͰ͖Δ •ʮ࣮ߦࡁΈʯʹ͢Δ·ͰϩοΫը໘ʹ࢒Δ

  32. ݁ہͲ͏͍͏৔໘Ͱ࢖͏΂͖ʁ

  33. ଈ࣌௨஌Λ࢖͏΂͖ॴ •Ґஔ৘ใͷมԽʹґଘ͢Δ௨஌ •εέδϡʔϧͷ௨஌

  34. ଈ࣌௨஌Λ࣮ࡍʹಋೖͯ͠Έͯ

  35. ΫοΫύουϚʔτͰͷಋೖࣄྫ ࣗ୐഑ૹ޲͚ͷ ͓ಧ͚௨஌ ड͚औΓ๨Ε ֬ೝ௨஌ εςʔγϣϯ޲͚ͷ ͓ಧ͚௨஌

  36. ಋೖཧ༝ •εςʔγϣϯͷडऔՄೳ࣌ؒΛ͗͢Δͱɺ঎඼Λड͚औ Εͳ͘ͳΔ •ࣗ୐഑ૹडऔ࣌ʹෆࡏͩͱɺ঎඼͕ճऩ͞ΕΔ → ݶΒΕͨ࣌ؒ಺ʹΞΫγϣϯ͠ͳ͍ͱෆརӹΛඃΔ

  37. ϚʔτΞϓϦͰͲΕ͘Β͍ར༻͞Ε͍ͯΔ͔ શiOSΞΫςΟϒϢʔβʔʹର͢Δ ϓογϡ௨஌ڐՄϢʔβʔͷׂ߹ ϓογϡ௨஌ΛڐՄ 42% ϓογϡ௨஌ΛະڐՄ 58% ϓογϡ௨஌ڐՄϢʔβʔʹର͢Δ ଈ࣌௨஌༗ޮϢʔβʔͷׂ߹ ଈ࣌௨஌༗ޮ

    69% ଈ࣌௨஌ແޮ 31%
  38. ಋೖޙʹग़͖ͯͨ໰୊ •௨஌ΛϥΠτʹଈ࣌௨஌ʹઃఆ͢Δ •ʮTime Sensitive͍ͬͯ͏ͷ͕͋Δ͔Βઃఆ͓ͯ͘͠ͱ͍ ͍ͷͰ͸ʁʯʮΑͦ͞͏ʯ

  39. ಋೖޙʹग़͖ͯͨ໰୊ •ॏཁͳ௨஌ʹଈ࣌௨஌ͱ͍͏ೝ͕ࣝਁಁͯͦ͠ͷج४Ͱ ٞ࿦͕͞ΕΔ •ʮ͜ͷ௨஌ؾ͔ͮͳ͍ͱ·͍͔ͣΒଈ࣌௨஌ʹ͍ͨ͠ʯ

  40. ଈ࣌௨஌͕ెʹ૿͑ͯ͠·͏

  41. ଈ࣌௨஌͕૿͑ΔͱͲ͏ͳΔ͔ ڧׂ͍ΓࠐΈ͕૿͑ΔͱϢʔβʔ͕ετϨεΛײ͡Δ → ଈ࣌௨஌Λແޮʹ͢Δ → ਅʹؾͮ͘΂͖େ੾ͳ৘ใʹؾ͚ͮͳ͘ͳΔ

  42. νʔϜͰӡ༻͢Δ্ͰؾΛ͚ͭΔ͜ͱ

  43. ଈ࣌௨஌ར༻ن໿Λ࡞Δ •αʔϏε։ൃʹؔΘΔϝϯόʔ͕ҎԼΛཧղ͢ΔͨΊͷ υΩϡϝϯτ •ଈ࣌௨஌ͷ֓ཁͱར༻ϝϦοτ •ΫοΫύουϚʔτͰଈ࣌௨஌Λࢦఆ͢Δج४ •HIG౳ΛಡΈ߹ΘͤͯiOSΤϯδχΞ͕ϝΠϯͰ࡞੒

  44. ϓογϡ௨஌Λ৽ઃ͢Δϑϩʔ ΧςΰϦͷ ઃఆͱ௨஌ Ϧετ΁ͷهೖ λΠτϧɾຊจ ഑৴λΠϛϯά ͳͲ௨஌ίϯς ϯπͷઃܭ ଈ࣌௨஌΁ͷ ରԠͷݕ౼

  45. ଈ࣌௨஌ ଈ࣌௨஌Ͱͳ͍ Ϣʔβʔ͕ओମͱͳΔऔҾʹ ؔΘΔ௨஌Ͱ͋Δ͔ ଈ࣌௨஌ ଈ࣌௨஌Ͱͳ͍ Ϣʔβʔࣗ਎͕ઃఆͨ͠༧ఆ ʹؔ͢Δ௨஌Ͱ͋Δ͔ NO YES

    NO NO YES YES ഑৴ޙ਺࣌ؒҎ಺ʹϢʔβʔ ͕ߦಈΛى͜͢ඞཁ͕͋Δ͔
  46. ن໿ಋೖޙͲ͏ͳ͔ͬͨ •ଈ࣌௨஌ʹ͍ͭͯಋೖʹݕ౼͕ཁΔ΋ͷͰ͋Δͱ͍͏Π ϯϓοτ͕ἧͬͨ •ࢪࡦʹΑͬͯ͸ଈ࣌௨஌ʹͳΓಘΔ௨஌͸૿͑ͳ͍ͱ͍ ͏൑அͰݕ౼ͷϑϩʔΛεΩοϓͰ͖ΔΑ͏ʹ

  47. ݱঢ় •ར༻ن໿ͷ؅ཧɾΞοϓσʔτɾϑϩʔఆண·Ͱͷݟक Γ͸iOSΤϯδχΞͷ੹຿ͱ͍͏ཱͯ෇͚ •࣮ࡍ͸Ұ෦ͷϝϯόʔ͕ΞϯςφΛுͬͯݟ͍ͯΔ

  48. ࠓޙͲ͏ͳ͍ͬͯ͘ͱྑ͍͔ •iOSΤϯδχΞҎ֎ͷϝϯόʔ΋ݕ౼ϑϩʔʹҙࣝΛ࣋ͭ •௨஌ͷ৽ن௥Ճ͔Βଈ࣌௨஌ݕ౼·ͰͷϑϩʔͷࣗಈԽ • ྫɿPR্ͰϨϏϡʔ͕ͳ͍ͱ௥ՃͰ͖ͳ͍

  49. ·ͱΊʢଈ࣌௨஌ΛҰ౓ಋೖͨ͠Βʣ •ศརͰ΋ಋೖՕॴ͸ཁݕ౼ •αʔϏε։ൃʹؔΘΔશһͰڞ௨ΠϯϓοτΛ࣋ͯΔΑ ͏ʹ͢Δ

  50. એ఻