Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

࠷ۙͷiOSͷ௨஌ࣄ৘

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

ଈ࣌௨஌ྫ

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

ͱࢥͬͯΔͦ͜ͷ͋ͳͨ

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

ΫοΫύουϚʔτͱ͸

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

ଈ࣌௨஌ͱ͸

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Interruption Level ●Passive ●Active ●TimeSensitive ●Critical

Slide 21

Slide 21 text

Interruption Level ●Passive ●Active ●TimeSensitive = ଈ࣌௨஌ ●Critical

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

ଈ࣌௨஌ͷ࣮૷ʢϩʔΧϧʣ 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 )

Slide 24

Slide 24 text

ଈ࣌௨஌ͷ࣮૷ʢϦϞʔτʣ { "aps" : { "alert" : { "title" : "Reminder", "body" : "Take medicine." }, "interruption-level" : "time-sensitive" } }

Slide 25

Slide 25 text

Apple͕ਪ঑͢Δ࢖͍ํ ●ݱࡏਐߦத·ͨ͸1࣌ؒҎ಺ʹൃੜ͢Δ༧ఆͷΠϕϯτʹ ؔ͢Δ௨஌ ग़యɿHuman Interface Guidelines / Managing Notifications

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

ଈ࣌௨஌ ଈ࣌௨஌Ͱͳ͍ Ϣʔβʔ͕ओମͱͳΔऔҾʹ ؔΘΔ௨஌Ͱ͋Δ͔ ଈ࣌௨஌ ଈ࣌௨஌Ͱͳ͍ Ϣʔβʔࣗ਎͕ઃఆͨ͠༧ఆ ʹؔ͢Δ௨஌Ͱ͋Δ͔ NO YES NO NO YES YES ഑৴ޙ਺࣌ؒҎ಺ʹϢʔβʔ ͕ߦಈΛى͜͢ඞཁ͕͋Δ͔

Slide 46

Slide 46 text

ن໿ಋೖޙͲ͏ͳ͔ͬͨ ●ଈ࣌௨஌ʹ͍ͭͯಋೖʹݕ౼͕ཁΔ΋ͷͰ͋Δͱ͍͏Π ϯϓοτ͕ἧͬͨ ●ࢪࡦʹΑͬͯ͸ଈ࣌௨஌ʹͳΓಘΔ௨஌͸૿͑ͳ͍ͱ͍ ͏൑அͰݕ౼ͷϑϩʔΛεΩοϓͰ͖ΔΑ͏ʹ

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

એ఻