Slide 1

Slide 1 text

։ൃΛޮ཰Խ͢Δ
 ςετͷσβΠϯύλʔϯ

Slide 2

Slide 2 text

"CPVUNF

Slide 3

Slide 3 text

4XJGUϲ݄໨ͷਓؒ ࢦఠɾΞυόΠε׻ܴʂ

Slide 4

Slide 4 text

ࠓ೔঺հ͢Δύλʔϯ

Slide 5

Slide 5 text

ܕʹΑΔ๷ޚ

Slide 6

Slide 6 text

ςετ
 ༰қઃܭ

Slide 7

Slide 7 text

ςετͷ
 ߏ଄Խ

Slide 8

Slide 8 text

σόοάͷ
 ޮ཰Խ

Slide 9

Slide 9 text

લͷ΋ͷ΄ͲΦεεϝ

Slide 10

Slide 10 text

࣮૷ྫ͋Γ·͢

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

ܕʹΑΔ๷ޚ

Slide 14

Slide 14 text

ͦ΋ͦ΋ςετͬͯ
 ޮ཰తͳͷͩΖ͏͔ʁ

Slide 15

Slide 15 text

ߏจϋΠϥΠτ Ϧϯτ ੩తܕݕࠪ ୯ମɾ݁߹ςετ &&ςετ खಈಈ࡞֬ೝ όά9Λݟ͚ͭͨ৔ॴ όά9

Slide 16

Slide 16 text

ߏจϋΠϥΠτ Ϧϯτ ੩తܕݕࠪ ୯ମɾ݁߹ςετ &&ςετ खಈಈ࡞֬ೝ όά" ্ͷํͰࢭ·Δͱ ॴཁ͕࣌ؒ୹͍ όά# ςετͩͱ͕࣌ؒ
 ͔͔Δ

Slide 17

Slide 17 text

ͳΔ΂͘ςετલʹ
 όάΛݟ͚͍ͭͨ ͜Ε͕ޮ཰త

Slide 18

Slide 18 text

Semantic Type σβΠϯύλʔϯ

Slide 19

Slide 19 text

จࣈྻͱͯ͠ͷૢ࡞͸
 ඞཁͳ͍ͷͰӅ͢ ҙຯʹΑΔಠࣗܕ 5FTUBCMF%FTJHO&YBNQMF(JU)VC(JU)VC6TFSTXJGU--

Slide 20

Slide 20 text

Ϣʔβʔ໊Λड͚औΕΔ
 ؔ਺ʹ͔͠౉ͤͳ͍ 5FTUBCMF%FTJHO&YBNQMF(JU)VC(JU)VC3FQPTJUPSZTXJGU--

Slide 21

Slide 21 text

ؒҧͬͨॲཧΛॻ͖ͮΒ͍
 
 Մಡੑ΋ߴ·Δ

Slide 22

Slide 22 text

Registration Token σβΠϯύλʔϯ

Slide 23

Slide 23 text

ඞཁͳࣄલͷॲཧΛ
 ๨Εͳ͍Α͏ʹ͢Δύλʔϯ

Slide 24

Slide 24 text

5PLFO͕ඞཁ 5BCMF7JFX$FMMΛ࡞Δؔ਺ 5FTUBCMF%FTJHO&YBNQMF.WD"SDIJUFDUVSF4UBSHB[FST4UBSHB[FS$FMMTXJGU--

Slide 25

Slide 25 text

উखʹ࡞Εͳ͍ ొ࿥͢ΔͱೖखͰ͖Δ 5FTUBCMF%FTJHO&YBNQMF.WD"SDIJUFDUVSF4UBSHB[FST4UBSHB[FS$FMMTXJGU--

Slide 26

Slide 26 text

ඞཁͳࣄલͷॲཧΛ๨ΕΔͱ
 ܕݕࠪʹ௨Βͳ͍

Slide 27

Slide 27 text

ςετ
 ༰қઃܭ

Slide 28

Slide 28 text

ਓؒ͸ςετ༰қͳ
 ΋ͷ͔͠ςετͰ͖ͳ͍

Slide 29

Slide 29 text

ViewController
 Factory σβΠϯύλʔϯ

Slide 30

Slide 30 text

3FOBNFͳͲͰ
 4UPSZCPBSEͱͷ੔߹ੑ͸
 ؆୯ʹյΕΔ 5)&ݫ͍͠

Slide 31

Slide 31 text

7JFX$POUSPMMFSͷ࡞੒ؔ਺ 'PSDF6OXSBQܕ͸͜͜Ͱଋറ 5FTUBCMF%FTJHO&YBNQMF.WD"SDIJUFDUVSF4UBSHB[FST4UBSHB[FST.WD$PNQPTFSTXJGU--

Slide 32

Slide 32 text

͜͜Ͱ׆͖Δ 7JFX$POUSPMMFSͱ4UPSZCPBSEͷ੔߹ੑΛݕূ 5FTUBCMF%FTJHO&YBNQMF5FTUT.WD"SDIJUFDUVSF4UBSHB[FS.WD$PNQPTFS5FTUTTXJGU

Slide 33

Slide 33 text

΋͠࡞Εͳ͔ͬͨΒҟৗ ࣮ࡍʹදࣔ·Ͱ࣮ߦ 5FTUBCMF%FTJHO&YBNQMF5FTUT/BWJHBUPS5FTU/BWJHBUPSTXJGU

Slide 34

Slide 34 text

State-Machine
 Model σβΠϯύλʔϯ

Slide 35

Slide 35 text

.7 ͷ.PEFMͷ
 ໢ཏςετ͸೉͍͠ ໢ཏ͖͠Εͳ͍ʂ

Slide 36

Slide 36 text

.PEFMͷঢ়ଶભҠΛ੍ݶ ͔ͩΒ

Slide 37

Slide 37 text

.firstFetching .fetched(.success(x)) .fetching(.success(x)) .fetched(.failure(e)) .fetching(.failure(e)) FOVN͕ศར 5FTUBCMF%FTJHO&YBNQMF.WD"SDIJUFDUVSF4UBSHB[FST4UBSHB[FST.PEFMTXJGU--

Slide 38

Slide 38 text

ͦΕͧΕͷ໼ҹΛ
 ౓ςετ͢Δ͚ͩͰΑ͍

Slide 39

Slide 39 text

.firstFetching .fetched(.success(x)) .fetching(.success(x)) .fetched(.failure(e)) .fetching(.failure(e)) ͜ͷྫͰ͸ຊͰ໢ཏ 5FTUBCMF%FTJHO&YBNQMF.WD"SDIJUFDUVSF4UBSHB[FST4UBSHB[FST.PEFMTXJGU--

Slide 40

Slide 40 text

ঢ়ଶ਺͕രൃ͢Δલʹ
 ঢ়ଶ਺Λ੍ݶͯ͠ѹ౗త໢ཏ

Slide 41

Slide 41 text

ςετͷ
 ߏ଄Խ

Slide 42

Slide 42 text

ςετ͕૿͑ΔʹͭΕ
 ςετࣗମͷอकੑ͕ॏཁʹͳΔ

Slide 43

Slide 43 text

Parameterized
 Test σβΠϯύλʔϯ

Slide 44

Slide 44 text

ྨࣅͨ͠ςετέʔε͕
 ଟ͍৔߹ͷύλʔϯ

Slide 45

Slide 45 text

ςετέʔεΛ σʔλߏ଄ʹམͱ͢ ෳ਺ͷςετέʔεΛ·ͱΊΔ 5FTUT.JSSPS%J⒎,JU5FTUT%J⒎BCMF4FU5FTUTTXJGU- ˞͍͍ྫ͕αϯϓϧʹͳ͔ͬͨͷͰผ͔Βर͍ͬͯ·͢ɻ

Slide 46

Slide 46 text

ςετέʔε͸ϧʔϓͰ࣮ߦ͢Δ 5FTUT.JSSPS%J⒎,JU5FTUT%J⒎BCMF4FU5FTUTTXJGU- ˞͍͍ྫ͕αϯϓϧʹͳ͔ͬͨͷͰผ͔Βर͍ͬͯ·͢ɻ

Slide 47

Slide 47 text

ςετέʔεΛྔ࢈Ͱ͖Δ 5FTUT.JSSPS%J⒎,JU5FTUT%J⒎BCMF4FU5FTUTTXJGU- ˞͍͍ྫ͕αϯϓϧʹͳ͔ͬͨͷͰผ͔Βर͍ͬͯ·͢ɻ

Slide 48

Slide 48 text

MJOFΛLFZʹ͢Δͱ
 ৔ॴ͕Θ͔Γ΍͍͢ 5FTUT.JSSPS%J⒎,JU5FTUT%J⒎BCMF4FU5FTUTTXJGU- ˞͍͍ྫ͕αϯϓϧʹͳ͔ͬͨͷͰผ͔Βर͍ͬͯ·͢ɻ

Slide 49

Slide 49 text

Promisified
 Test σβΠϯύλʔϯ

Slide 50

Slide 50 text

ඇಉظςετ͸೰Έ͕ଟ͍ ಡΈͮΒ͍͜ͱ͕ଟ͍

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

Ұํ+4քͰ͸1SPNJTFʹ
 ΑΔඇಉظςετ͕༏੎ ඇಉظͳ஋ͷऔಘͷσβΠϯύλʔϯ

Slide 53

Slide 53 text

J04Ͱ΋࢖͍͍ͨʜ

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

BTZODͱ͍͏
 ؔ਺ͰแΉ ςετέʔε͸
 1SPNJTFΛฦ͢ 5FTUBCMF%FTJHO&YBNQMF5FTUT(JU)VC(JU)VC"QJ5FTUTTXJGU

Slide 56

Slide 56 text

9$5FTU$BTF΁
 ͏·͘ϒϦοδ 1SPNJTF͕ղܾ͞ΕͨΒςετ੒ޭ غ٫͞ΕͨΒςετࣦഊ 5FTUBCMF%FTJHO&YBNQMF5FTUT"TZODTXJGU

Slide 57

Slide 57 text

ಡΈ΍͍͢
 
 ॻ͖΍͍͢

Slide 58

Slide 58 text

σόοάͷ
 ޮ཰Խ

Slide 59

Slide 59 text

Diff
 Assertion σβΠϯύλʔϯ

Slide 60

Slide 60 text

Α͋͘Δςετ .JSSPS%J⒎,JU3&"%.&NE

Slide 61

Slide 61 text

ಡΊ͵

Slide 62

Slide 62 text

։ൃ͠·ͨ͠

Slide 63

Slide 63 text

͜͏͢Δͱʜ .JSSPS%J⒎,JU3&"%.&NE

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

.JSSPSͱ͍͏3FqFDUJPO"1*Λ ࢖ͬͯɺߏ଄తͳEJ⒎Λܭࢉ

Slide 66

Slide 66 text

࢖ͬͯΈ͍ͯͩ͘͞ʂ ˒΋Β͑Δͱخ͍͠Ͱ͢ʂ

Slide 67

Slide 67 text

·ͱΊ ͞·͟·ͳύλʔϯΛۦ࢖ͯ͠
 ޮ཰తʹ։ൃ͠·͠ΐ͏

Slide 68

Slide 68 text

Φεεϝͷࢿྉ ςετքͰ͸௒༗໊ͳ
 σβύλຊ ϞοΫεύΠελϒͷ ఆٛ΍ɺࠓ೔঺հͨ͠
 ύλʔϯͷൃ૝ݩ͕
 ͨ͘͞Μࡌͬͯ·͢