Slide 1

Slide 1 text

,PUMJOͱ3FEVYΛ "OESPJEΞϓϦʹಋೖͨ͠Β 3FUUZ5FDI/JHIU!3FUUZΦϑΟε

Slide 2

Slide 2 text

"CPVUNF • ෱Ҫರࢠ / Fukui Atsuko • @muumuumuumuu • Retty, Inc. • AndroidΤϯδχΞ • ͦͷલ͸૊ΈࠐΈܥAndroidͷ͓࢓ࣄ

Slide 3

Slide 3 text

ࠃ಺/P໊࣮άϧϝαʔϏε3FUUZͷӡӦ ೥ઃཱ XFCͱΞϓϦͰαʔϏεల։ γϯάϧυϝΠϯ εϚϗϑΝʔετ ݄ؒར༻ऀ਺ສ

Slide 4

Slide 4 text

ͦΜͳ3FUUZͷ "OESPJEνʔϜ͕࠷ۙࢼ͍ͯ͠Δ ,PUMJOͱ3FEVYͷ૊Έ߹Θͤ ʹ͍͓ͭͯ࿩͠͠·͢ɻ

Slide 5

Slide 5 text

"HFOEB • લఏ஌ࣝ: Kotlin / Redux ʹ͍ͭͯ • ಘΒΕͨ஌ݟ • ·ͩ೰ΜͰ͍Δ෦෼

Slide 6

Slide 6 text

,PUMJO

Slide 7

Slide 7 text

,PUMJO • 2011೥ʹJetBrain͔ࣾΒൃද͞Εͨϓϩάϥ ϛϯάݴޠ • Better Java ͳݴޠ • JavaͱڞଘՄೳ • ؔ਺ܕϓϩάϥϛϯάͷελΠϧΛαϙʔτ • ͔Θ͍͍

Slide 8

Slide 8 text

3FEVY

Slide 9

Slide 9 text

3FEVY • React js ͔Βग़͖ͯͨઃܭࢥ૝ • Three Principles • Single source of truth • State is read-only • Changes are made with pure functions

Slide 10

Slide 10 text

3FEVY

Slide 11

Slide 11 text

ಋೖʹ͋ͨͬͯ

Slide 12

Slide 12 text

3FEVY-JCSBSZ • ࣾ಺Ͱ࡞ͬͯެ։͠·ͨ͠ • https://github.com/RettyEng/redux-kt • ReSwiftΛϦεϖΫτ • طଘͷLibrary΋ݕ౼͚ͨ͠ͲσϑΝΫτ͕ͳ ͍ঢ়ଶ

Slide 13

Slide 13 text

%FNP

Slide 14

Slide 14 text

3FEVY

Slide 15

Slide 15 text

͠͹Β͘ࢼͯ͠ಘΒΕͨ஌ݟ

Slide 16

Slide 16 text

͕͜͜خ͍͠ • Activity/Fragment/ViewΛލ͍Ͱ৘ใΛڞ༗ Ͱ͖Δ • StateͷมߋΛ͢Δ෦෼͕Viewͷߋ৽ͷ੹຿ ͔Β׬શʹ෼཭Ͱ͖Δ • View͕Ͳ͏มΘΔ͔͸ؔ৺ͷର৅֎ • APIίʔϧΛ଴ͨͣը໘දࣔͰ͖Δ

Slide 17

Slide 17 text

޲͍͍ͯΔαʔϏε • ෳ਺ͷը໘Ͱ৘ใΛڞ༗͍ͯ͠Δ • ը໘ભҠͷύλʔϯ͕ෳ਺͋Δ

Slide 18

Slide 18 text

޲͍͍ͯͳ͍αʔϏε • ΞϓϦ֎͔ΒϦΞϧλΠϜʹ৘ใ͕มΘΓ͏ Δ • ෆشൃ৘ใΛͨ͘͞Μѻ͏ඞཁ͕͋Δ • State͕࣋ͭ΂͖৘ใͷαΠζ͕େ͖͍

Slide 19

Slide 19 text

,PUMJOͱ૬ੑͷྑ͞ • Stateͷ࣋ͭ஋͕nullڐ༰͔Ͳ͏͔ίʔυͰࣔ ͤΔ • Viewଆͷίʔυ͕ॻ͖΍͍͢

Slide 20

Slide 20 text

,PUMJOͱ૬ੑͷྑ͞ • Test͕ॻ͖΍͍͢ • Reducer͕७ਮؔ਺ͳͷͰmockͳ͠Ͱςε τ͕ॻ͚Δ

Slide 21

Slide 21 text

,PUMJOͱ૬ੑͷྑ͞ • Stateͷૢ࡞͕ॻ͖΍͍͢ • dataΫϥεͷcopy()ϝιουͰมߋ͢ΔՕॴ Λ໌ࣔతʹࢦఆͰ͖Δ

Slide 22

Slide 22 text

·ͩ೰ΜͰ͍Δͱ͜Ζ

Slide 23

Slide 23 text

4UBUFͷ࣋ͪํ • Ͳͷ৘ใΛͲ͏͍͏෩ʹStateͱͯ͠อ࣋͢Δ ͔ͱͯ΋೰Ή • ͓ͦΒ͘ਖ਼ղ͸ͳ͍ • αʔϏε΍ΞϓϦʹΑͬͯมΘͬͯ͘Δ • Ͱ΋։ൃऀؒͰ͋Δఔ౓ҙࣝ߹Θ͕ͤඞཁ

Slide 24

Slide 24 text

4UBUFͷੜଘظؒ • Applicationͱಉ͡ʢΦϯϝϞϦͳ৘ใʣ • όοΫάϥϯυʹճͬͨ࣌ʹΞϓϦϓϩηε ͕kill͞ΕΔͱҰॹʹ৘ใ͕ࣦΘΕΔ • ͍ࣦͭΘΕͯ΋͍͍৘ใ͔͠ࡌͤͳ͍ • SharedPreference͔αʔόʹୀආ͢Δ

Slide 25

Slide 25 text

ϝϞϦੜଘظؒ໰୊ • Application͕ੜ͖͍ͯΔݶΓղ์͞Εͳ͍ ϝϞϦͨͪ • Retty͸ॏ͍ͨσʔλΛอ࣋͢Δέʔε͕ͳ͍ ͷͰࠓͷॴେৎ෉

Slide 26

Slide 26 text

·ͱΊ

Slide 27

Slide 27 text

·ͱΊ • Kotlin / Redux ͷ૊Έ߹ΘͤΛಋೖͯ֓͠Ͷ ѱ͍ͱ͜Ζ΋ݟ౰ͨΒͣ޾ͤͰ͢ • ͨͩ͠αʔϏεͷੑ࣭ͱѻ͏σʔλʹΑΓ· ͢ • Ұ౓ࢼͯ͠ΈΔͷ͸ΞϦʂ • ͥͻLibrary࢖ͬͯΈ͍ͯͩ͘͞ʂ٩( 'ω' )و

Slide 28

Slide 28 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

Slide 29

Slide 29 text

͔͜͜Βઌ͸͕࣌ؒ͋Ε͹

Slide 30

Slide 30 text

'MVYʹ͠Α͏͔೰Ή໰୊ • Reduxͱಉ͘͡σʔλͷྲྀΕ͕Ұํ௨ߦ • Redux͸Flux͔Β೿ੜͨ͠ߟ͑ํ • ͨͩ͠StoreΛෳ਺࣋ͪ͏Δ

Slide 31

Slide 31 text

'MVYʹ͠Α͏͔೰Ή໰୊ • ActivityΛލ͕ͳ͍͚Ͳɺෳ਺ͷView Component Ͱ৘ใΛڞ༗͍ͨ͠ • ΞϓϦશମͷStoreʹͷͤΔ৘ใͱͯ͠͸ෆద੾ͳ ؾ͕͢Δ • ୯Ұػೳ͚ͩͰ͔͠࢖Θͳ͍Store͕ཉ͘͠ͳΔ • ੜଘظؒ΋Activityʹ߹ΘͤΒΕΔͷͰίϯτ ϩʔϧ͠΍͍͢