Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architecture_for_mobile_development.pdf

93dece28ac18d9c0886335e4730ab27b?s=47 itome
March 14, 2019

 Architecture_for_mobile_development.pdf

93dece28ac18d9c0886335e4730ab27b?s=128

itome

March 14, 2019
Tweet

Transcript

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

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

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

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

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

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

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

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

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

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

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

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

  13. 13 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ଞʹ΋ɿ DRYݪଇ KISSݪଇ ڽूɾ݁߹ݪଇ ։์ɾด࠯ݪଇ ݁ՌͷہॴԽ ܁Γฦ͠ͷ࠷খԽ

    ϩδοΫͱσʔλͷҰମԽ ରশੑݪଇ ϙϦϞʔϑΟζϜ ৘ใͷӅṭ ΧϓηϧԽ ׬શੑɾॆ଍ੑɾϓϦϛςΟϒ ؔ৺ͷ෼཭ ϙϦγʔͱ࣮૷ͷ෼཭ ࢀরͷҰ఺ੑ ςετ༰қੑ ୯७ݪཧ ໌ূݪཧ ڻ͖࠷খͷݪଇ ৑௕ੑ ࢀরಁաੑ ݆໿ͷݪଇ ϘʔΠεΧ΢τϧʔϧ GOFσβΠϯύλʔϯ σϧϝϧͷ๏ଇ SOLIDݪଇ ҆ఆੑͷݪଇ ֊૚ݪཧ ґଘੑٯసͷݪଇ ૬ޓӡ༻ੑ ࠶ར༻ ΠϯλʔϑΣ ௚ަੑ ܖ໿ʹΑ ๷ޚతϓ Ӫ δϣ
  14. 14 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ୯ҰػೳͷΞϓϦέʔγϣϯ΍ɺঢ়ଶͷগͳ͍ΞϓϦέʔγϣϯͰ͋Ε͹ ͜ΕΒͷݪଇʹै͏͜ͱͰมߋʹڧ͍ΫϦʔϯͳίʔυ͕ॻ͚Δ

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

  16. 16 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ΞϓϦέʔγϣϯ͸ΑΓଟػೳʹ ΞϓϦέʔγϣϯͷঢ়ଶ͸ΑΓෳࡶʹ ɾϝοηʔδػೳ ɾ௨࿩ػೳ ɾࣸਅɺಈըࡱӨ ɾܾࡁػೳ ɾϝσΟΞͷ࠶ੜ

    ɾݸਓؒૹۚ ɾը૾ิਖ਼ ɾϩάΠϯ͍ͯ͠Δʁ ɾܾࡁ৘ใ͸ొ࿥͞Ε͍ͯΔʁ ɾ௨஌͸ڐՄ͍ͯ͠Δʁ ɾ֎෦αʔϏε͸࿈ܞ͍ͯ͠Δʁ
  17. 17 ΞʔΩςΫνϟ͕ਁಁ͢Δલͷιϑτ΢ΣΞ։ൃ 3min ։ൃͷෳࡶԽʹΑ͍ͬͯΖΜͳ໰୊͕ग़ͯ͘Δ ɾ৔౰ͨΓతͳ࣮૷Ͱ͸ϕετɾϓϥΫςΟε͔Β֎Εͯ͠·͏͜ͱ͕ଟ͍ ɾνʔϜ։ൃͰ͸ɺϝϯόʔͷٕज़ྗʹΑͬͯίʔυͷ඼࣭ʹ͕ࠩग़Δ ɾٕज़ྗʹ͕ࠩͳͯ͘΋ɺϓϩδΣΫτશମͰॻ͖ํ͕౷ҰͰ͖ͳ͍

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ಉ͡Α͏ͳमਖ਼Λ͍ͨ͠ͷʹ ઃܭ͕શ͘ҧͬͯ೉͍͠ɻɻɻ
  34. ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min

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

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

  37. 37 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC Model View Controller ΞϓϦέʔγϣϯͷϩδοΫΛ୲౰͢Δ ը໘ͷඳըΛ୲౰͢Δ Model

    - ViewͷؒʹཱͬͯͦΕͧΕͷೖग़ྗΛ ந৅Խ͢Δ ex) View͔Βड͚औͬͨΫϦοΫΠϕϯτΛ ɹʮσʔλΛऔಘ͍ͨ͠ʯͱ͍͏ϦΫΤετͱͯ͠ ɹ ModelʹૹΔ
  38. 38 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ϝϦοτ σϝϦοτ ModelʹϩδοΫͷॲཧΛ೚ͤΔ ͜ͱͰɺView͕ංେԽͮ͠Β͘ͳΔ Controller͕ؒʹཱͭ͜ͱʹΑͬͯ ModelͱView͕ૄ݁߹ʹͳΔ

    ֤෦෼ΛͲ͏࣮૷͢Δ͔͸݁ہ ͦΕͧΕͷ࣮૷ऀʹҕͶΒΕ͍ͯΔ Ͳ͜ʹॻ͚͹͍͍͔ܾΊΒΕ͍ͯͳ͍ ͜ͱ͕ଟ͍
  39. 39 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

  40. 40 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVVM ModelɾView ViewModel MVCͱಉ͡ Viewͷঢ়ଶ؅ཧɺߋ৽Λߦ͏ Viewͷঢ়ଶͱViewModelͷঢ়ଶ͸ৗʹ ಈዲ͞Ε͍ͯͯɺViewModelͷߋ৽͸͙͢ʹ

    Viewʹ൓ө͞ΕɺΫϦοΫͳͲͷViewͷΠϕϯτ΋ ViewModelܦ༝ͰModelʹ఻͑ΒΕΔ
  41. 41 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVVM https://qiita.com/rmakiyama/items/779cf6407f70b40e4ee7 ΑΓ

  42. 42 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVVM ϝϦοτ σϝϦοτ ViewModelͷঢ়ଶΛߋ৽͢Δ͚ͩͰ ࣗಈతʹView͕ߋ৽͞ΕΔͨΊɺ Viewͷঢ়ଶ؅ཧ͕Θ͔Γ΍͍͢ ViewModel

    - Viewͷঢ়ଶΛSync ͤ͞Δ࢓૊Έ͕ඞཁ (RxʹΑΔঢ়ଶมߋ௨஌ͳͲ) ViewModel͕ංେ͠΍͍͢
  43. 43 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

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

  45. 45 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾClean Architecture MVCͳͲͷΞʔΩςΫνϟΛ ϨΠϠʔ͝ͱͷ੹຿Λ໌֬Խͯ͠ ࠶ઃܭͨ͠΋ͷ σʔλͷྲྀΕ͸ৗʹ ʮ֎ˠ಺ˠ֎ʯͱͳΔΑ͏ʹ

    ઃܭ͞Ε͓ͯΓɺUseCase૚͕ σʔλͷྲྀΕͷؒʹཱͬͯ ϩδοΫΛ෼ׂ͢Δ
  46. 46 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾClean Architecture ϝϦοτ σϝϦοτ ֤ϨΠϠʔͷ੹຿͕໌֬ͳͨΊɺ ԿΛͲ͜ʹॻ͔͕࣮͘૷ऀʹΑͬͯ มΘΔ͜ͱ͕গͳ͍

    DDD(υϝΠϯۦಈઃܭ)Λ΋ͱʹ ͍ͯ͠ΔͨΊɺClean Architecture Ͱྑ͍ίʔυΛॻ͘ʹ͸DDDͷ஌ࣝ ͕ඞཁʹͳΔ UseCase૚͕ॲཧΛࡉ͔͘ ෼ׂ͢ΔͨΊɺϩδοΫͷ࠶ར༻ੑ͕ ߴ·Δ
  47. 47 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

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

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

    View → Action → Dispatcher → Store ͷॱʹσʔλ͕ྲྀΕΔ͜ͱͰߦΘΕΔ
  50. 50 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾFlux ϝϦοτ σϝϦοτ ঢ়ଶ͕Storeʹू໿͞ΕΔͨΊ ؅ཧ͕͠΍͍͢ ಉظతͳঢ়ଶߋ৽Λجຊʹ ͍ͯ͠ΔͨΊɺ௨৴ͳͲͷඇಉظ

    ॲཧͱͷ࿈ܞʹ͸޻෉͕ඞཁ ΞʔΩςΫνϟϨϕϧͰςετ༰қੑ ͕ߟ͑ΒΕ͍ͯΔ ঢ়ଶͷߋ৽͕Actionͱ݁ͼͭͨ͘Ί ͲͷΑ͏ͳঢ়ଶߋ৽͕͋Δ͔Λ Ұཡ͠΍͍͢
  51. 51 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓ೔঺հ͢ΔΞʔΩςΫνϟ

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

  53. 53 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVI Fluxͱಉ༷ʹ୯ํ޲σʔλϑϩʔͷ ΞʔΩςΫνϟ Intent, Action, Result, Stateͱ͍͏

    σʔλͱɺಁաతͳؔ਺ͷΈͰ࣮૷ ͢Δ
  54. 54 ͍Ζ͍ΖͳΞʔΩςΫνϟͷ঺հ 6min ɾMVI ϝϦοτ σϝϦοτ ঢ়ଶߋ৽ͷϩδοΫͷࢀরಁաੑ ͕୲อ͞Ε͍ͯΔͨΊɺςετ͕ ॻ͖΍͍͢ FluxΑΓ΋֤Ϟδϡʔϧͷ໾ׂ͕

    ࡉ෼Խ͞Ε͍ͯΔͨΊɺ ࣮૷ऀʹΑΔίʔυͷϒϨ͕গͳ͍ ϘΠϥʔϓϨʔτ͕ଟ͘ɺ؆୯ͳ࣮૷Λ ͢Δ͚ͩͰ΋ଟ͘ͷίʔυΛॻ͘ඞཁ͕ ͋Δ
  55. ·ͱΊ 2min

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

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