Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ojun ϢχοτςετΛֶΜͩ࣍ʹ Γ͔ͨͬͨ Appleඪ४APIʹ ର͢ΔςετͷΓํ
Slide 2
Slide 2 text
ࣗݾհ • ໊લ • ojunʢ͓͡ΎΜʣ • ॴଐ • pixivࣄۀຊ෦ΞϓϦΤϯδχΞϦϯά • ࠷ۙ·͍ͬͯΔ͜ͱ • αʔϞϯϥϯ
Slide 3
Slide 3 text
ࠓճͷൃදʹ͍ͭͯ
Slide 4
Slide 4 text
ࠓճͷൃදʹ͍ͭͯ • Appleඪ४APIʹରͯ͠ϢχοτςετΛՃ͠Α͏ͱͯ͠ϋϚͬͨ͜ͱ ͱɺͦͷղܾํ๏Λɺ؆୯ͳσϞΞϓϦΛ௨ͯ͠ൃද͠·͢ • ಛʹࠓճҎԼͷΦϒδΣΫτʹରͯ͠ςετΛՃͨ͠Λ͠·͢ • UNUserNoti fi cationCenter
Slide 5
Slide 5 text
ର
Slide 6
Slide 6 text
ର • Ϣχοτςετͷॻ͖ํΛֶͼ࢝Ίͨਓ • ΞʔΩςΫνϟʔΛֶͼ࢝Ίͨਓ
Slide 7
Slide 7 text
σϞΞϓϦ֓ཁ
Slide 8
Slide 8 text
σϞΞϓϦ֓ཁ • 11ճ௨͕དྷΔϦϚΠϯυΞϓϦ • ෳͷλεΫ͕ొͰ͖Δ • ొͨ͠λΠϛϯά͔Β24 * n࣌ؒޙʹϩʔΧϧ௨͕དྷΔ • λεΫΛআͰ͖Δ
Slide 9
Slide 9 text
σϞΞϓϦ֓ཁ
Slide 10
Slide 10 text
σϞΞϓϦ֓ཁ
Slide 11
Slide 11 text
σϞΞϓϦ֓ཁ
Slide 12
Slide 12 text
σϞΞϓϦ֓ཁ
Slide 13
Slide 13 text
σϞΞϓϦ֓ཁ • ϩʔΧϧ௨Λද͢ߏମΛఆٛ • ߏମʹҎԼͷ3͕ͭଘࡏ • ID • λΠτϧจݴ • ϘσΟͷจݴ
Slide 14
Slide 14 text
σϞΞϓϦ֓ཁ • ొͨ͠ใUserDefaultsͰอଘ • Ճ͞ΕͨλΠϛϯάͰ UNUserNoti fi cationCenterʹՃ • ͪͳΈʹ UNUserNoti fi cationCenterͷpendingRequest Λ͏Α͏ʹ͢ΕUserDefaultsʹอଘ͢Δඞཁ ͳ͘ͳΔ
Slide 15
Slide 15 text
Schedulerͷৄࡉ
Slide 16
Slide 16 text
Schedulerͷৄࡉ
Slide 17
Slide 17 text
Schedulerͷৄࡉ
Slide 18
Slide 18 text
Schedulerͷৄࡉ
Slide 19
Slide 19 text
লུ
Slide 20
Slide 20 text
লུ
Slide 21
Slide 21 text
Schedulerͷৄࡉ
Slide 22
Slide 22 text
Schedulerͷৄࡉ
Slide 23
Slide 23 text
Schedulerͷৄࡉ
Slide 24
Slide 24 text
Schedulerͷৄࡉ
Slide 25
Slide 25 text
Schedulerͷৄࡉ
Slide 26
Slide 26 text
• SchedulerΛੜͨ͠ޙʹҙͷϝιουΛݺͼग़͢ • ҾʹҙͷLocalNoti fi cationΛՃ͢Δ Schedulerͷ͍ํ
Slide 27
Slide 27 text
σϞΞϓϦͷ࣮ߦ
Slide 28
Slide 28 text
σϞΞϓϦͷ࣮ߦ • ӈ্ͷʮ+ʯϘλϯ͔ΒλεΫΛՃ͢Δ • Ճͨ͠λεΫ͕ͳ͘දࣔ͞ΕΔ • λεΫΛՃͨ͠ޙͷdebugදࣔ࣍ͷΑ͏ʹͳΔ
Slide 29
Slide 29 text
• ͳ͘௨ͷpending͕Ͱ͖͍ͯΔʂ🎉 λεΫΛՃͨ࣌͠ͷdebugදࣔ
Slide 30
Slide 30 text
ςετՃ͢Δͧʂ
Slide 31
Slide 31 text
Ճ͢Δςετͷ༰
Slide 32
Slide 32 text
• ඞཁͳ߲Λclass֎ʹఆٛ ςετ֓ཁ
Slide 33
Slide 33 text
• ඞཁͳ߲Λclass֎ʹఆٛ • localNoti fi cationΛมͱͯ͠ ఆٛ ςετ֓ཁ
Slide 34
Slide 34 text
• ҎԼͷςετΛॻ͘߹ɺpendig͞ΕͨϩʔΧϧ௨ΛऔΓग़͢͜ͱ͕ Ͱ͖ͳ͍ˠSchedulerΛमਖ਼ طଘͷModelͷ
Slide 35
Slide 35 text
লུ
Slide 36
Slide 36 text
লུ
Slide 37
Slide 37 text
লུ
Slide 38
Slide 38 text
• setLocalNoti fi cationΛՃͯ͠ϩʔΧϧ௨Λొ ʢ༰: ຖΔ͜ͱ / Ոʹண͍ͨΒ͓ṟΛग़͢ ʣ ςετΛՃ͢Δ
Slide 39
Slide 39 text
• ͖ͬ͞मਖ਼ͨ͠มΛར༻ͯ͠pending͞Εͨ௨ΛऔΓग़͠ςετ͢ Δ ςετΛՃ͢Δ
Slide 40
Slide 40 text
• ඇಉظͷςετͳͷͰexpectionΛઃఆ͢Δ ςετΛՃ͢Δ
Slide 41
Slide 41 text
• AssertEqualͷޙʹful fi ll()͢Δ ςετΛՃ͢Δ
Slide 42
Slide 42 text
• ςετΛ࣮ߦ͢Δͱޭ͢Δ🎉 ςετΛՃ͢Δ
Slide 43
Slide 43 text
࣮ػͰΞϓϦΛىಈ͢Δͱɾɾɾ
Slide 44
Slide 44 text
࣮ػͰΞϓϦΛىಈ͢Δͱɾɾɾ
Slide 45
Slide 45 text
Կ͕ͩͬͨͷ͔ʁ
Slide 46
Slide 46 text
Կ͕ͩͬͨͷ͔ • UNUserNoti fi cationCenter.current()ΛςετͰݺͼग़ͯ͠͠·ͬͨ লུ
Slide 47
Slide 47 text
লུ
Slide 48
Slide 48 text
Ͳ͏͢ΕΑ͔ͬͨͷ͔
Slide 49
Slide 49 text
• UNUserNoti fi cationCenter.current()ΛMock͢Δ • Mock͢Δ͜ͱͰ • debug / production → UNUserNoti fi cationCenter.current() • test → Mockͨ͠Ϟϊ Ͳ͏͢ΕΑ͔͔ͬͨ
Slide 50
Slide 50 text
• UserDefaultsͰ͋Ε suiteName Λར༻͢Δ͜ͱͰςετ͢Δࡍʹ debugʹӨڹΛ༩͑ͳ͍Α͏ʹ͢Δ͜ͱ͕Մ • UserDefaults(suiteName: “pixiv_app_night_for_test”) • ͔͠͠ɺUNUserNoti fi cationCenterʹଘࡏ͠ͳ͍ Ͳ͏ͬͯMock͢Δͷ͔
Slide 51
Slide 51 text
• protocolΛར༻͢Δ͜ͱͰඪ४APIʹରͯ͠MockΛߦ͑ΔΑ͏ʹ͢Δ ͦ͜Ͱ 6/6TFS/PUJ fi QSPUPDPM 6/6TFS/PUJ fi EFCVHSFMFBTF UFTU
Slide 52
Slide 52 text
• SchedulerΛ࡞Δ࣌ʹߦ͍ͬͯͨ͜ͱͱಉ༷ͷ͜ͱΛߦ͏ ͦ͜Ͱ
Slide 53
Slide 53 text
protocolΛఆٛ
Slide 54
Slide 54 text
ར༻͢ΔϝιουΛఆٛ
Slide 55
Slide 55 text
ར༻͢ΔϝιουΛఆٛ
Slide 56
Slide 56 text
extensionΛར༻ͯ͠४ڌͤ͞Δ
Slide 57
Slide 57 text
Jump to De fi nitionΛ͏ͱָ
Slide 58
Slide 58 text
Jump to De fi nitionΛ͏ͱָ
Slide 59
Slide 59 text
Jump to De fi nitionΛ͏ͱָ
Slide 60
Slide 60 text
Jump to De fi nitionΛ͏ͱָ
Slide 61
Slide 61 text
extensionΛར༻ͯ͠४ڌͤ͞Δ
Slide 62
Slide 62 text
Schedulerͷमਖ਼ ͦͷ1
Slide 63
Slide 63 text
Schedulerͷमਖ਼ ͦͷ1
Slide 64
Slide 64 text
Schedulerͷमਖ਼ ͦͷ1
Slide 65
Slide 65 text
• test༻ͷϞσϧੜϝιουΛՃ Schedulerͷमਖ਼ ͦͷ2
Slide 66
Slide 66 text
• test༻ͷϞσϧੜϝιουΛՃ Schedulerͷमਖ਼ ͦͷ2
Slide 67
Slide 67 text
Schedulerͷमਖ਼ ͦͷ2 • γϯάϧτϯΫϥεͰ `private init`͕࣮͞Ε͍ͯͨ߹ʹ༗ޮ
Slide 68
Slide 68 text
Mockͷ࡞
Slide 69
Slide 69 text
Mockͷ࡞
Slide 70
Slide 70 text
Mockͷ࡞
Slide 71
Slide 71 text
Mockͷ࡞
Slide 72
Slide 72 text
Mockͷ࡞
Slide 73
Slide 73 text
Mockͷ࡞
Slide 74
Slide 74 text
Mockͷ࡞
Slide 75
Slide 75 text
ςετमਖ਼
Slide 76
Slide 76 text
ςετͷमਖ਼
Slide 77
Slide 77 text
ςετͷमਖ਼
Slide 78
Slide 78 text
ςετͷमਖ਼
Slide 79
Slide 79 text
No content
Slide 80
Slide 80 text
No content
Slide 81
Slide 81 text
No content
Slide 82
Slide 82 text
No content
Slide 83
Slide 83 text
ࠓͦ͜ςετޭ🎉
Slide 84
Slide 84 text
·ͱΊ
Slide 85
Slide 85 text
·ͱΊ • Ϣχοτςετ࣌ʹMockΛར༻͠ͳ͍ͱdebugϏϧυʹӨڹΛ༩͑Δ ͜ͱ͕͋Δ • ඪ४APIʹରͯ͠MockΛ͢Δͱ͖protocolΛ࡞ͯ͠ରͷΫϥε ʢΦϒδΣΫτʣʹ४ڌͤ͞Δ
Slide 86
Slide 86 text
·ͱΊ
Slide 87
Slide 87 text
·ͱΊ
Slide 88
Slide 88 text
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ