Slide 1

Slide 1 text

 ϞόΠϧ։ൃͷͨΊͷ ΞʔΩςΫνϟೖ໳ @AbemaTV Hack

Slide 2

Slide 2 text

2 About me ௩ຊ෢ࢤ https://twitter.com/itometeam https://github.com/itome https://medium.com/@itometeam 0.5min

Slide 3

Slide 3 text

ΞʔΩςΫνϟͬͯͳʹʁ 5min

Slide 4

Slide 4 text

4 ΞʔΩςΫνϟͬͯͳʹʁ 5min ΞʔΩςΫνϟ(ઃܭ)ʹ͸ͨ͘͞Μͷҙຯ͕͋Δ ɾCPUͳͲϋʔυ΢ΣΞͷ੍ޚͷํࣜͱͯ͠ͷΞʔΩςΫνϟ ɾωοτϫʔΫͷΞʔΩςΫνϟ ɾιϑτ΢ΣΞͷΞʔΩςΫνϟ ɾ…etc ←ࠓ೔͸͜͜ʹ͍ͭͯ࿩͠·͢

Slide 5

Slide 5 text

5 ΞʔΩςΫνϟͬͯͳʹʁ 5min ͦͷ·͑ʹ

Slide 6

Slide 6 text

6 ΞʔΩςΫνϟͬͯͳʹʁ 5min ͦ΋ͦ΋ΞʔΩςΫνϟͬͯ Ͳ͏ͯ͠ඞཁͳΜͩΖ͏ʁ

Slide 7

Slide 7 text

ΞʔΩςΫνϟ͕ਁಁ͢Δલͷ ιϑτ΢ΣΞ։ൃ 3min

Slide 8

Slide 8 text

8 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ΋ͱ΋ͱϓϩάϥϛϯάʹ͸ଟ͘ͷϕετɾ ϓϥΫςΟεʢεϜʔζͳ։ൃɾอकɾӡ༻ ͷͨΊʹकΔ΂͖ϧʔϧʣ͕͋Δ

Slide 9

Slide 9 text

9 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ྫ͑͹ɿ ෼ׂ౷࣏ʢDivide and Conquerʣ ͦͷ··Ͱ͸ղܾ͢Δ͜ͱ͕೉͍͠ʮେ͖ͳ໰୊ʯ͸ɺ ͍͔ͭ͘ͷʮখ͞ͳ໰୊ʯʹ෼ׂͯ͠ɺݸผʹղܾ͢Δ

Slide 10

Slide 10 text

10 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ྫ͑͹ɿ ಉܕݪཧʢIsomorphism Principleʣ ʮܗʹͩ͜ΘΔʯͱ͍͏ݪཧɺຊ࣭తʹಉ͜͡ͱ͸ιʔείʔυͰ΋ ಉ͡Α͏ʹѻ͏͜ͱͰʮҟ෺ʯΛ໨ཱͪ΍͘͢͢Δɻ

Slide 11

Slide 11 text

11 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ྫ͑͹ɿ ઢܗݪཧʢLinearity Principleʣ ॲཧͷྲྀΕΛ௚ઢʹ͢Δݪଇɻ͋Δػೳ͸͍͔ͭ͘ͷখ͞ͳػೳΛ ௚ઢతʹॏͶ߹Θ࣮ͤͯݱ͢Δͷ͕Α͍ɻ

Slide 12

Slide 12 text

12 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ྫ͑͹ɿ ୯Ұ੹೚ݪଇ มߋ͢Δཧ༝͕ಉ͡΋ͷ͸ूΊɺมߋ͢Δཧ༝͕ҧ͏΋ͷ͸ ෼͚Δݪଇɻ1ͭͷϞδϡʔϧɺΫϥε΍ؔ਺ʹมߋ͢Δཧ༝͕ ̎ͭҎ্͋ͬͯ͸͍͚ͳ͍ɻ

Slide 13

Slide 13 text

13 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ଞʹ΋ɿ DRYݪଇ KISSݪଇ ڽूɾ݁߹ݪଇ ։์ɾด࠯ݪଇ ݁ՌͷہॴԽ ܁Γฦ͠ͷ࠷খԽ ϩδοΫͱσʔλͷҰମԽ ରশੑݪଇ ϙϦϞʔϑΟζϜ ৘ใͷӅṭ ΧϓηϧԽ ׬શੑɾॆ଍ੑɾϓϦϛςΟϒ ؔ৺ͷ෼཭ ϙϦγʔͱ࣮૷ͷ෼཭ ࢀরͷҰ఺ੑ ςετ༰қੑ ୯७ݪཧ ໌ূݪཧ ڻ͖࠷খͷݪଇ ৑௕ੑ ࢀরಁաੑ ݆໿ͷݪଇ ϘʔΠεΧ΢τϧʔϧ GOFσβΠϯύλʔϯ σϧϝϧͷ๏ଇ SOLIDݪଇ ҆ఆੑͷݪଇ ֊૚ݪཧ ґଘੑٯసͷݪଇ ૬ޓӡ༻ੑ ࠶ར༻ ΠϯλʔϑΣ ௚ަੑ ܖ໿ʹΑ ๷ޚతϓ Ӫ δϣ

Slide 14

Slide 14 text

14 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ୯ҰػೳͷΞϓϦέʔγϣϯ΍ɺঢ়ଶͷগͳ͍ΞϓϦέʔγϣϯͰ͋Ε͹ ͜ΕΒͷݪଇʹै͏͜ͱͰมߋʹڧ͍ΫϦʔϯͳίʔυ͕ॻ͚Δ

Slide 15

Slide 15 text

15 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ͔࣌͠͠͸ྲྀΕɻɻɻ

Slide 16

Slide 16 text

16 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ΞϓϦέʔγϣϯ͸ΑΓଟػೳʹ ΞϓϦέʔγϣϯͷঢ়ଶ͸ΑΓෳࡶʹ ɾϝοηʔδػೳ ɾ௨࿩ػೳ ɾࣸਅɺಈըࡱӨ ɾܾࡁػೳ ɾϝσΟΞͷ࠶ੜ ɾݸਓؒૹۚ ɾը૾ิਖ਼ ɾϩάΠϯ͍ͯ͠Δʁ ɾܾࡁ৘ใ͸ొ࿥͞Ε͍ͯΔʁ ɾ௨஌͸ڐՄ͍ͯ͠Δʁ ɾ֎෦αʔϏε͸࿈ܞ͍ͯ͠Δʁ

Slide 17

Slide 17 text

17 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ։ൃͷෳࡶԽʹΑ͍ͬͯΖΜͳ໰୊͕ग़ͯ͘Δ ɾ৔౰ͨΓతͳ࣮૷Ͱ͸ϕετɾϓϥΫςΟε͔Β֎Εͯ͠·͏͜ͱ͕ଟ͍ ɾνʔϜ։ൃͰ͸ɺϝϯόʔͷٕज़ྗʹΑͬͯίʔυͷ඼࣭ʹ͕ࠩग़Δ ɾٕज़ྗʹ͕ࠩͳͯ͘΋ɺϓϩδΣΫτશମͰॻ͖ํ͕౷ҰͰ͖ͳ͍

Slide 18

Slide 18 text

18 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ϓϩδΣΫτશମͰઃܭΛ౷Ұ͠Α͏ʂ ͞Βʹͦͷઃܭʹै͏͚ͩͰɺϕετϓϥΫςΟεͳ։ൃ ͕Ͱ͖ΔΑ͏ʹϧʔϧΛܾΊΑ͏ʂ MVCɺFluxͳͲͷΞʔΩςΫνϟ͕ొ৔

Slide 19

Slide 19 text

19 ΞʔΩςΫνϟͬͯͳʹʁ 5min ؓ࿩ٳ୊

Slide 20

Slide 20 text

20 ΞʔΩςΫνϟͬͯͳʹʁ 5min ΞʔΩςΫνϟͱ͸ طଘͷϕετɾϓϥΫςΟεʹଇͬͨɺ ϓϩδΣΫτશମͷ࣮૷ύλʔϯͷ͜ͱ

Slide 21

Slide 21 text

21 ΞʔΩςΫνϟͬͯͳʹʁ 5min ౷Ұ͞ΕͨΞʔΩςΫνϟΛಋೖ͢Δ͜ͱͰ ɾΞʔΩςΫνϟͷϧʔϧʹैͬͯ։ൃΛ͢Ε͹ɺ ɹطଘͷϕετɾϓϥΫςΟεΛҙࣝ͠ͳͯ͘΋ʢ͋Δ͍͸஌Βͳͯ͘΋ʣ ɹมߋʹڧ͍ΫϦʔϯͳίʔυΛॻ͚ΔΑ͏ʹͳΔ ɾ։ൃνʔϜ಺ͷ୭͕ॻ͍ͨίʔυͰ΋ɺ ɹଞͷਓ͕؆୯ʹಡΊΔɺ·ͨमਖ਼ΛͰ͖ΔΑ͏ʹͳΔ

Slide 22

Slide 22 text

ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min

Slide 23

Slide 23 text

23 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ɾͲͷΞʔΩςΫνϟΛબͿ͔ʹਖ਼ղɾෆਖ਼ղ͸ͳ͍ ɾجຊతʹͲΜͳΞʔΩςΫνϟͰ΋ɺ ɹͲΜͳΞϓϦέʔγϣϯ΋։ൃ͕Ͱ͖Δɻ

Slide 24

Slide 24 text

24 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓ਺ɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮૷

Slide 25

Slide 25 text

25 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓ਺ɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮૷

Slide 26

Slide 26 text

26 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ɾΞϓϦέʔγϣϯͷෳࡶ͞ γϯϓϧͳΞϓϦ։ൃͰ͋Ε͹ɺίʔυ͕৑௕ʹͳΓ΍͍͢Flux ͳͲͷΞʔΩςΫνϟΑΓ΋ɺMVC΍MVVMͷ΄͏͕ૣ͘։ൃ͕Ͱ͖Δ ҰํɺFlux΍ReduxɺMVIͷΑ͏ͳΞʔΩςΫνϟ͸ίʔυ΁ͷ੍໿͕ ڧ͍ͨΊɺେن໛ͳ։ൃͰ΋ഁ୼ͮ͠Β͍ ͨͩ͠ɺίʔυ͸ৗʹෳࡶԽ͍ͯ͘͠΋ͷͳͷͰɺݟۃΊ͕ඞཁ

Slide 27

Slide 27 text

27 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓ਺ɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮૷

Slide 28

Slide 28 text

28 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ɾ։ൃνʔϜͷਓ਺ɾٕज़ྗ ։ൃϝϯόʔ͕ଟ͍͚Ε͹ɺΞʔΩςΫνϟʹΑΔ੍໿͕ڧ͍ํ͕Α͍ ΞʔΩςΫνϟͷ֓೦ࣗମ͕೉͍͠৔߹ɺϝϯόʔશһ͕ͦΕΛशಘ͢Δ ίετ΋։ൃͷ޻਺ʹؚ·ΕΔɻ ։ൃϝϯόʔͷେ෦෼͕׳Ε͍ͯΔΞʔΩςΫνϟ͕͋Ε͹ɺͦΕΛ ·ͣݕ౼͢Δ

Slide 29

Slide 29 text

29 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓ਺ɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮૷

Slide 30

Slide 30 text

30 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ɾσϑΝΫτελϯμʔυͳ࣮૷ Ͱ͖Δ͚ͩελϯμʔυͳΞʔΩςΫνϟΛબΜͩํ͕ɺϥΠϒϥϦ͕ ॆ࣮͍ͯͨ͠ΓɺυΩϡϝϯτ΍Stack Overflowͷճ౴ͳͲͷ஌ࣝʹ ΞΫηε͠΍͍ͨ͢ΊΑ͍ AndroidͰ͋Ε͹MVVM͕ެࣜʹαϙʔτ͞Ε͍ͯΔɻiOSʹެࣜͷ ࣮૷͸ͳ͍͕ɺClean Architecture΍FluxʹΑΔ࣮૷ྫ͕ଟ͍

Slide 31

Slide 31 text

31 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min Ҏ্ͷΑ͏ͳߟྀ͢΂͖఺ΛΫϦΞͰ͖͍ͯΕ͹ɺ جຊతʹԿΛબΜͰ΋໰୊ͳ͍

Slide 32

Slide 32 text

32 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ͨͩ͠ɺෳ਺ͷઃܭΛࠞͥͳ͍Α͏ʹ͢Δ A͞Μ B͞Μ Flux͕޷͖ͳͷͰɺࣗ෼ͷϩάΠϯը໘͸ FluxΛ࠾༻͠·͢ʂ MVCʹ׳Ε͍ͯΔͷͰɺ๻ͷ୲౰͍ͯ͠Δ ϓϩϑΟʔϧը໘͸MVCΛ΋ͱʹઃܭ͠·͢ʂ

Slide 33

Slide 33 text

33 ద੾ͳΞʔΩςΫνϟબఆͷίπ 3min ͨͩ͠ɺෳ਺ͷઃܭΛࠞͥͳ͍Α͏ʹ͢Δ A͞Μ B͞Μ B͞Μͷίʔυ͕ಡΊͳ͍ɻɻɻ A͞Μͷίʔυ͕ಡΊͳ͍ɻɻɻ C͞Μ A͞Μͷ୲౰ՕॴͱB͞Μͷ୲౰Օॴʹ ಉ͡Α͏ͳमਖ਼Λ͍ͨ͠ͷʹ ઃܭ͕શ͘ҧͬͯ೉͍͠ɻɻɻ

Slide 34

Slide 34 text

͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min

Slide 35

Slide 35 text

35 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

Slide 36

Slide 36 text

36 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

Slide 37

Slide 37 text

37 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC Model View Controller ΞϓϦέʔγϣϯͷϩδοΫΛ୲౰͢Δ ը໘ͷඳըΛ୲౰͢Δ Model - ViewͷؒʹཱͬͯͦΕͧΕͷೖग़ྗΛ ந৅Խ͢Δ ex) View͔Βड͚औͬͨΫϦοΫΠϕϯτΛ ɹʮσʔλΛऔಘ͍ͨ͠ʯͱ͍͏ϦΫΤετͱͯ͠ ɹ ModelʹૹΔ

Slide 38

Slide 38 text

38 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ϝϦοτ σϝϦοτ ModelʹϩδοΫͷॲཧΛ೚ͤΔ ͜ͱͰɺView͕ංେԽͮ͠Β͘ͳΔ Controller͕ؒʹཱͭ͜ͱʹΑͬͯ ModelͱView͕ૄ݁߹ʹͳΔ ֤෦෼ΛͲ͏࣮૷͢Δ͔͸݁ہ ͦΕͧΕͷ࣮૷ऀʹҕͶΒΕ͍ͯΔ Ͳ͜ʹॻ͚͹͍͍͔ܾΊΒΕ͍ͯͳ͍ ͜ͱ͕ଟ͍

Slide 39

Slide 39 text

39 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

Slide 40

Slide 40 text

40 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVVM ModelɾView ViewModel MVCͱಉ͡ Viewͷঢ়ଶ؅ཧɺߋ৽Λߦ͏ Viewͷঢ়ଶͱViewModelͷঢ়ଶ͸ৗʹ ಈዲ͞Ε͍ͯͯɺViewModelͷߋ৽͸͙͢ʹ Viewʹ൓ө͞ΕɺΫϦοΫͳͲͷViewͷΠϕϯτ΋ ViewModelܦ༝ͰModelʹ఻͑ΒΕΔ

Slide 41

Slide 41 text

41 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVVM https://qiita.com/rmakiyama/items/779cf6407f70b40e4ee7 ΑΓ

Slide 42

Slide 42 text

42 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVVM ϝϦοτ σϝϦοτ ViewModelͷঢ়ଶΛߋ৽͢Δ͚ͩͰ ࣗಈతʹView͕ߋ৽͞ΕΔͨΊɺ Viewͷঢ়ଶ؅ཧ͕Θ͔Γ΍͍͢ ViewModel - Viewͷঢ়ଶΛSync ͤ͞Δ࢓૊Έ͕ඞཁ (RxʹΑΔঢ়ଶมߋ௨஌ͳͲ) ViewModel͕ංେ͠΍͍͢

Slide 43

Slide 43 text

43 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

Slide 44

Slide 44 text

44 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾClean Architecture https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html ΑΓ

Slide 45

Slide 45 text

45 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾClean Architecture MVCͳͲͷΞʔΩςΫνϟΛ ϨΠϠʔ͝ͱͷ੹຿Λ໌֬Խͯ͠ ࠶ઃܭͨ͠΋ͷ σʔλͷྲྀΕ͸ৗʹ ʮ֎ˠ಺ˠ֎ʯͱͳΔΑ͏ʹ ઃܭ͞Ε͓ͯΓɺUseCase૚͕ σʔλͷྲྀΕͷؒʹཱͬͯ ϩδοΫΛ෼ׂ͢Δ

Slide 46

Slide 46 text

46 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾClean Architecture ϝϦοτ σϝϦοτ ֤ϨΠϠʔͷ੹຿͕໌֬ͳͨΊɺ ԿΛͲ͜ʹॻ͔͕࣮͘૷ऀʹΑͬͯ มΘΔ͜ͱ͕গͳ͍ DDD(υϝΠϯۦಈઃܭ)Λ΋ͱʹ ͍ͯ͠ΔͨΊɺClean Architecture Ͱྑ͍ίʔυΛॻ͘ʹ͸DDDͷ஌ࣝ ͕ඞཁʹͳΔ UseCase૚͕ॲཧΛࡉ͔͘ ෼ׂ͢ΔͨΊɺϩδοΫͷ࠶ར༻ੑ͕ ߴ·Δ

Slide 47

Slide 47 text

47 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

Slide 48

Slide 48 text

48 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾFlux https://facebook.github.io/flux/ ΑΓ

Slide 49

Slide 49 text

49 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾFlux ୯ํ޲σʔλϑϩʔͷ୅දతͳ ΞʔΩςΫνϟ ΞϓϦέʔγϣϯͷঢ়ଶ͸StoreͷΈʹ Αͬͯ؅ཧ͞ΕɺͦΕҎ֎͸Storeͷঢ়ଶΛ ߋ৽͢ΔͨΊͷϞδϡʔϧ ঢ়ଶͷߋ৽͸ඞͣ View → Action → Dispatcher → Store ͷॱʹσʔλ͕ྲྀΕΔ͜ͱͰߦΘΕΔ

Slide 50

Slide 50 text

50 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾFlux ϝϦοτ σϝϦοτ ঢ়ଶ͕Storeʹू໿͞ΕΔͨΊ ؅ཧ͕͠΍͍͢ ಉظతͳঢ়ଶߋ৽Λجຊʹ ͍ͯ͠ΔͨΊɺ௨৴ͳͲͷඇಉظ ॲཧͱͷ࿈ܞʹ͸޻෉͕ඞཁ ΞʔΩςΫνϟϨϕϧͰςετ༰қੑ ͕ߟ͑ΒΕ͍ͯΔ ঢ়ଶͷߋ৽͕Actionͱ݁ͼͭͨ͘Ί ͲͷΑ͏ͳঢ়ଶߋ৽͕͋Δ͔Λ Ұཡ͠΍͍͢

Slide 51

Slide 51 text

51 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

Slide 52

Slide 52 text

52 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVI

Slide 53

Slide 53 text

53 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVI Fluxͱಉ༷ʹ୯ํ޲σʔλϑϩʔͷ ΞʔΩςΫνϟ Intent, Action, Result, Stateͱ͍͏ σʔλͱɺಁաతͳؔ਺ͷΈͰ࣮૷ ͢Δ

Slide 54

Slide 54 text

54 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVI ϝϦοτ σϝϦοτ ঢ়ଶߋ৽ͷϩδοΫͷࢀরಁաੑ ͕୲อ͞Ε͍ͯΔͨΊɺςετ͕ ॻ͖΍͍͢ FluxΑΓ΋֤Ϟδϡʔϧͷ໾ׂ͕ ࡉ෼Խ͞Ε͍ͯΔͨΊɺ ࣮૷ऀʹΑΔίʔυͷϒϨ͕গͳ͍ ϘΠϥʔϓϨʔτ͕ଟ͘ɺ؆୯ͳ࣮૷Λ ͢Δ͚ͩͰ΋ଟ͘ͷίʔυΛॻ͘ඞཁ͕ ͋Δ

Slide 55

Slide 55 text

·ͱΊ 2min

Slide 56

Slide 56 text

56 ·ͱΊ 2min ΞʔΩςΫνϟʹۜͷ஄ؙ͸ͳ͍ ద੾ͳΞʔΩςΫνϟʹଇͬͯ։ൃΛߦ͏͜ͱͰɺ ϓϩάϥϛϯάͷϕετϓϥΫςΟεΛϓϩδΣΫτશମͰकΔ͜ͱ͕Ͱ͖Δ ΞʔΩςΫνϟͷઃܭ΍طଘͷΞʔΩςΫνϟͷબ୒ʹ͸ ϕετϓϥΫςΟεΛ஌Δ͜ͱ͕େ੾

Slide 57

Slide 57 text

57 ·ͱΊ 2min ͋Γ͕ͱ͏͍͟͝·ͨ͠ @AbemaTV Hack https://twitter.com/itometeam https://github.com/itome https://medium.com/@itometeam