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

【Flutter】StateNotifier, Riverpodを利用し、
MVCでアプリを作っている話

Muttsu
December 22, 2020

【Flutter】StateNotifier, Riverpodを利用し、
MVCでアプリを作っている話

Muttsu

December 22, 2020
Tweet

More Decks by Muttsu

Other Decks in Programming

Transcript

  1. © 2 0 2 0 A t r a e

    , I n c . | 1 ʲ'MVUUFSʳ4UBUF/PUJpFS 3JWFSQPEΛར༻͠ɺ .7$ͰΞϓϦΛ࡞͍ͬͯΔ࿩ !NVUUTV@ Mutsumi Sato ࠤ౻ເੵ
  2. © 2 0 2 0 A t r a e

    , I n c . | 2 4BUP.VUTVNJ ࠤ౻ເੵ ೥৽ଔͰגࣜձࣾΞτϥΤೖࣾɻ "OESPJE LPUMJO ΤϯδχΞͱͯ͠ɺZFOUBͷϑϧεΫϥονϦχϡʔΞϧɺւ֎ల ։ͷରԠΛߦ͍·ͨ͠ɻͨ·ʹ8FCϑϩϯτ΍J04΋ॻ͍ͨΓ͠·͢ɻ ೥݄ΑΓZFOUBͱ݉೚ͯ͠ɺస৬αΠτ(SFFOͷ"OESPJEΞϓϦΛ'MVUUFSͰ ։ൃ͍ͯ͠·͢ɻ ϦϦʔεޙɺطग़ͷJ04ΞϓϦ΋'MVUUFS΁Ҡߦ༧ఆͰ͢ɻʢͨͿΜʣ ੈ ք த ͷ ਓ ʑ Λ ັ ྃ ͢ Δ ձ ࣾ Λ ૑ Δ !NVUUTV@ ࣗݾ঺հ
  3. © 2 0 2 0 A t r a e

    , I n c . | ςΫϊϩδʔʹΑͬͯਓͷՄೳੑΛ֦͛ΔࣄۀΛ૑଄ 3 | ੈ ք த ͷ ਓ ʑ Λ ັ ྃ ͢ Δ ձ ࣾ Λ ૑ Δ גࣜձࣾΞτϥΤ େ੾ͳਓʹތΕΔձࣾͰ͋Γଓ͚Δ ౦ূϚβʔζ্৔ ೥݄ ೥݄ ౦ূҰ෦ʹࢢ৔มߋ ΞτϥΤઃཱ ೥݄ ੈքதͷਓʑΛັྃ͢ΔձࣾΛ૑Δ ԯ ສԁ ໊ People Tech Company Vision Philosophy ࢿຊۚ ࣾһ਺ Ԋֵ Business Concept "*ϏδωεϚονϯάΞϓϦ Τϯήʔδϝϯτղੳπʔϧ ੒ޭใुܕٻਓϝσΟΞ ਓࡐͷྲྀಈԽͱదਖ਼഑ஔ  ࣾҎ্ར༻ ਓͱ૊৫ͷ׆ੑԽ ϏδωεΛՃ଎ͤ͞Δग़ձ͍ ສ݅Ҏ্Ϛονϯά੒ཱ  ࣾҎ্ར༻
  4. © 2 0 2 0 A t r a e

    , I n c . | 4 ໾৬ͷແ͍ ࣗ཯෼ࢄܕ૊৫ 5 ˋ ˞ ௚ ۙ ೥ ฏ ۉ ΤϯήʔδϝϯτείΞ Great Place to Work ˞(SFBU1MBDFUP8PSLš*OTUJUVUF+BQBO࣮ࢪɹɹ ैۀһʙ໊ͷ෦ʣ ੈ ք த ͷ ਓ ʑ Λ ັ ྃ ͢ Δ ձ ࣾ Λ ૑ Δ WJTJPOQIJMPTPQIZ No.1 No.1 ೥ฏۉ ཭৬ऀ਺ ࠃ಺ϥϯΩϯά ૊৫ͷಛ௃ ૊৫తͳ࣮੷ ച্ߴ Ӧۀརӹ ࣾһҰਓ౰ͨΓച্ߴ FY2019 FY2011 FY2015 FY2019 FY2011 FY2015 FY2019 FY2011 FY2015 ʢඦສԁʣ 60 40 20 ʢඦສԁʣ 600 400 200 3000 2000 1000 ʢඦສԁʣ
  5. © 2 0 2 0 A t r a e

    , I n c . | 5 ࠓ೔͓࿩͢͠Δ͜ͱ  4UBUF/PUJpFSͱ͸  3JWFSQPEͱ͸  ࣮ࡍͷΞʔΩςΫνϟ  .77.ͱ໋໊͠ͳ͔ͬͨཧ༝  ·ͱΊ
  6. © 2 0 2 0 A t r a e

    , I n c . | 6 ࠓ೔͓࿩͢͠Δ͜ͱ  4UBUF/PUJpFSͱ͸  3JWFSQPEͱ͸  ࣮ࡍͷΞʔΩςΫνϟ  .77.ͱ໋໊͠ͳ͔ͬͨཧ༝  ·ͱΊ ͍ͩͿ؆ૉͳͷͰɺৄࡉʹ͓ฉ͖͍ͨ͠ํ͸ !NVUUTV@·Ͱ
  7. © 2 0 2 0 A t r a e

    , I n c . | 7 ࠓ೔͓࿩͢͠Δ͜ͱ  4UBUF/PUJpFSͱ͸  3JWFSQPEͱ͸  ࣮ࡍͷΞʔΩςΫνϟ  .77.ͱ໋໊͠ͳ͔ͬͨཧ༝  ·ͱΊ
  8. © 2 0 2 0 A t r a e

    , I n c . | 8  4UBUF/PUJpFSͱ͸ 4UBUF/PUJpFSͱ͸ w ঢ়ଶ؅ཧϥΠϒϥϦ w l4UBUFzͱ͍͏JNVUBCMFͳঢ়ଶΛ؅ཧ͢Δ஋Λ ͻͱ͚ͭͩΛอ࣋͢Δɻ w 4UBUFͷΠϯελϯε͕มΘͬͨΒɺมߋ͕ ௨஌͞Εɺ7JFX͕ϦϏϧυ͞ΕΔ
  9. © 2 0 2 0 A t r a e

    , I n c . | 9 $IBOHF/PUJpFS w ঢ়ଶ؅ཧϥΠϒϥϦ w 4UBUF/PUJpFSͱҧ͍ɺෳ਺ͷNVUBCMFͳ஋Λ࣋ͭɻ w OPUJGZ-JTUFOFST ͱ͍͏ϝιουͰ஋ͷมߋΛ 7JFXʹ௨஌͢Δ #-P$ w ঢ়ଶ؅ཧϥΠϒϥϦ w 3FBDUJWF9ͷ0CTFSWBCMFʹࣅ͍ͯΔ w TUSFBN TJOLͱ͍͏΋ͷΛར༻ͯ͠஋ͷมߋɺ มߋͷड͚औΓΛߦ͏  4UBUF/PUJpFSͱ͸
  10. © 2 0 2 0 A t r a e

    , I n c . | 10 $IBOHF/PUJpFS w OPUJGZ-JTUFOFST Λ͚ͭΔͷ͕໘౗ w NVUBCMFͳͷͰɺͦΕΛ؅ཧ͢ΔϦεΫΛ௥͍ͨ͘ͳ͍ɻ w ଵଦͳͷͰJNNVUBCMFͷ΄͏͕γϯϓϧͰ޷͖ɻ #-P$ w TUSFBN TJOLͷ֓೦ཧղ͕ͭΒ͔ͬͨʜɻ w Ͱ͖Δਓ͸͍͢͝ͳͱײͨ͡ʜɻ  4UBUF/PUJpFSͱ͸
  11. © 2 0 2 0 A t r a e

    , I n c . | 11 ࠓ೔͓࿩͢͠Δ͜ͱ  4UBUF/PUJpFSͱ͸  3JWFSQPEͱ͸  ࣮ࡍͷΞʔΩςΫνϟ  .77.ͱ໋໊͠ͳ͔ͬͨཧ༝  ·ͱΊ
  12. © 2 0 2 0 A t r a e

    , I n c . | 12 3JWFSQPEͱ͸ 1SPWJEFSͱ͸ w 'MVUUFS͕ެࣜͰਪન͍ͯ͠Δ%*ঢ়ଶ؅ཧ ϥΠϒϥϦ w 1SPWJEFS $IBOHF/PUJpFSΛެࣜ͸͓͢͢Ί ͍ͯ͠Δ 4JNQMFBQQTUBUFNBOBHFNFOU
  13. © 2 0 2 0 A t r a e

    , I n c . | 13 3JWFSQPEͱ͸ 3JWFSQPEͱ͸ w 1SPWJEFSͷ࡞ऀ͕৽ͨʹ։ൃͨ͠1SPWJEFS w 4UBUF/PUJpFSΛ%*4UBUF͕มߋʹͳͬͨΒ 7JFXΛϦϏϧυ͢ΔͨΊʹར༻͍ͯ͠Δɻ w ϝϦοτ͸͜ͷهࣄʹ͔ͬ͠Γॻ͍ͯ͋Γ·͢ ͷͰࠓճ͸ࠩ͠߇͑·͢ɻ
  14. © 2 0 2 0 A t r a e

    , I n c . | 14 ࠓ೔͓࿩͢͠Δ͜ͱ  4UBUF/PUJpFSͱ͸  3JWFSQPEͱ͸  ࣮ࡍͷΞʔΩςΫνϟ  .77.ͱ໋໊͠ͳ͔ͬͨཧ༝  ·ͱΊ
  15. © 2 0 2 0 A t r a e

    , I n c . | 15 ࣮ࡍͷΞʔΩςΫνϟ MJC EJ EPNBJO JOGSBTUSVDUVSF QSFTFOUBUJPO TUBUF@DPOUSPMMFS TUBUF GFBUVSF VJ  VUJM EBP@QSPWJEFST SFQPTJUPSZ@QSPWJEFST DPOUSPMMFS@QSPWJEFST  &OUJUZ %BP 3FQPTJUPSZ  )UUQ%BP -PDBM%C%BP 3FQPTJUPSZ*NQM %UPʜ 7JFX 4UBUF 4UBUF$POUSPMMFS 4UBUF$POUSPMMFS 4UBUF 8JEHFUT 7JFXT  6UJMT
  16. © 2 0 2 0 A t r a e

    , I n c . | 3JWFSQPE 16 ࣮ࡍͷΞʔΩςΫνϟ 7JFX ɿࢀর͍ͯ͠Δํ޲ 3FQPTJUPSZ %BPʜ 4UBUF 4UBUF 4UBUF$POUSPMMFS 4UBUF/PUJpFS
  17. © 2 0 2 0 A t r a e

    , I n c . | 3JWFSQPE 17 ࣮ࡍͷΞʔΩςΫνϟ 7JFX ɿࢀর͍ͯ͠Δํ޲ 3FQPTJUPSZ %BPʜ 4UBUF 4UBUF 4UBUF$POUSPMMFS 4UBUF/PUJpFS ᶃϢʔβʔͷ ೖྗΛ఻ୡ
  18. © 2 0 2 0 A t r a e

    , I n c . | 3JWFSQPE 18 ࣮ࡍͷΞʔΩςΫνϟ 7JFX ɿࢀর͍ͯ͠Δํ޲ 3FQPTJUPSZ %BPʜ 4UBUF ᶄ"1*௨৴ 4UBUF 4UBUF$POUSPMMFS 4UBUF/PUJpFS ᶃϢʔβʔͷ ೖྗΛ఻ୡ
  19. © 2 0 2 0 A t r a e

    , I n c . | 3JWFSQPE 19 ࣮ࡍͷΞʔΩςΫνϟ 7JFX ɿࢀর͍ͯ͠Δํ޲ 3FQPTJUPSZ %BPʜ 4UBUF ᶄ"1*௨৴ 4UBUF 4UBUF$POUSPMMFS 4UBUF/PUJpFS ᶅ4UBUF΁৽͍͠ ɹΠϯελϯεΛ୅ೖ ᶃϢʔβʔͷ ೖྗΛ఻ୡ
  20. © 2 0 2 0 A t r a e

    , I n c . | 3JWFSQPE 20 ࣮ࡍͷΞʔΩςΫνϟ 7JFX ɿࢀর͍ͯ͠Δํ޲ 3FQPTJUPSZ %BPʜ 4UBUF ᶄ"1*௨৴ ᶅ4UBUF΁৽͍͠ ɹΠϯελϯεΛ୅ೖ 4UBUF ᶆ4UBUFͷมߋΛݕ஌͠ɺ ɹ7JFXΛ࠶ੜ੒ʢϦϏϧυʣ ᶃϢʔβʔͷ ೖྗΛ఻ୡ 4UBUF$POUSPMMFS 4UBUF/PUJpFS
  21. © 2 0 2 0 A t r a e

    , I n c . | 21 ߟ͑ํ  7JFX͸ 4UBUF $POUSPMMFS΁ϢʔβʔͷೖྗΛ఻ୡ  $POUSPMMFS͸ඞཁʹԠͯ͡3FQPTJUPSZΛܦ༝ͯ͠ "1*௨৴ %#ͱσʔλͷड͚౉͠Λ͢Δ  $POUSPMMFS͸ɺ4UBUFͷมߋ͕ඞཁͳ৔߹ɺ ৽͍͠4UBUFͷΠϯελϯεΛ࡞੒͠ɺ஋Λม͑Δ  $POUSPMMFSͷมߋΛ7JFX͕ݕ஌͠ɺ ࣗ਎ΛϦϏϧυ͢Δ ˞3JWFSQPE͸4UBUF$POUSPMMFSΛ7JFX΁*OKFDUJPO  ɹ4UBUF$POUSPMMFSͷ4UBUFʹมߋ͕͋ͬͨΒ7JFXΛϦϏϧυ͢Δ ࣮ࡍͷΞʔΩςΫνϟ
  22. © 2 0 2 0 A t r a e

    , I n c . | 22 ߟ͑ํ  7JFX͸ 4UBUF $POUSPMMFS΁ϢʔβʔͷೖྗΛ఻ୡ  $POUSPMMFS͸ඞཁʹԠͯ͡3FQPTJUPSZΛܦ༝ͯ͠ "1*௨৴ %#ͱσʔλͷड͚౉͠Λ͢Δ  $POUSPMMFS͸ɺ4UBUFͷมߋ͕ඞཁͳ৔߹ɺ ৽͍͠4UBUFͷΠϯελϯεΛ࡞੒͠ɺ஋Λม͑Δ  $POUSPMMFSͷมߋΛ7JFX͕ݕ஌͠ɺ ࣗ਎ΛϦϏϧυ͢Δ ˞3JWFSQPE͸4UBUF$POUSPMMFSΛ7JFX΁*OKFDUJPO  ɹ4UBUF$POUSPMMFSͷ4UBUFʹมߋ͕͋ͬͨΒ7JFXΛϦϏϧυ͢Δ $POUSPMMFS͕7JFXʹ4UBUFͷ௨஌͍ͯ͠ΔͷͰ͸ͳ͘ɺ$POUSPMMFSͷ4UBUFͷ มߋΛ7JFX͕؂ࢹ͍ͯ͠ΔͷͰݫີʹ͸1BTTJWF.7$ .7$PCTFSWFS ύλʔϯͱ͸গ͠ҧ͏͔΋͠Ε·ͤΜɻ ࣮ࡍͷΞʔΩςΫνϟ
  23. © 2 0 2 0 A t r a e

    , I n c . | 23 ࣮ࡍͷΞʔΩςΫνϟ
  24. © 2 0 2 0 A t r a e

    , I n c . | 24 ᶃ(JUIVC3FQP-JTU7JFX͔Β(JUIVC3FQP%FUBJM7JFX΁ભҠ͢Δɻ ᶄ(JUIVC3FQP%FUBJM7JFXͰ3FQPTJUPSZʹελʔΛ͚ͭΔɻ ᶅ(JUIVC3FQP%FUBJM4UBUF$POUSPMMFSͷSFHJTUFS4UBS ΛݺͿɻ ᶆ"1*Λୟ͍ͯ௨৴ʹ੒ޭͨ͠Βɺ ɹ(JUIVC3FQP-JTU4UBUF$POUSPMMFSͷTUBSFE3FQPTJUPSZ Λݺͼɺ ɹ(JUIVC3FQP-JTU4UBUFΛߋ৽͢Δɻ ᶇ(JUIVC3FQP-JTU7JFXͰ4UBUFͷมߋΛݕ஌͠ɺ7JFX͕ϦϏϧυ͞Ε ɹҰཡͷ3FQPTJUPSZʹελʔ͕෇͍͍ͯΔঢ়ଶʹͳΔɻ ࣮ࡍͷΞʔΩςΫνϟ
  25. © 2 0 2 0 A t r a e

    , I n c . | 25 ࠓ೔͓࿩͢͠Δ͜ͱ  4UBUF/PUJpFSͱ͸  3JWFSQPEͱ͸  ࣮ࡍͷΞʔΩςΫνϟ  .77.ͱ໋໊͠ͳ͔ͬͨཧ༝  ·ͱΊ
  26. © 2 0 2 0 A t r a e

    , I n c . | 3JWFSQPE 26 7JFX ɿࢀর͍ͯ͠Δํ޲ 3FQPTJUPSZ %BPʜ 4UBUF 4UBUF 3JWFSQPEΛར༻ͯ͠4UBUF$POUSPMMFSΛ "QQMJDBUJPOʹ͓͍ͯ4JOHMFUPOͳΦϒδΣΫτʹͯ͠%*͍ͯ͠Δ .77.ͱ໋໊͠ͳ͔ͬͨཧ༝ 4UBUF$POUSPMMFS 4UBUF/PUJpFS
  27. © 2 0 2 0 A t r a e

    , I n c . | 27 ߟ͑ํ w .77.ʹ͓͍ͯ͸ɺ7JFX7JFX.PEFM͸جຊ̍ର̍ରԠ w ͦͯ͠ɺ7JFX.PEFM΁PO#VUUPO1SFTTFE ͳͲͷΑ͏ʹಛఆͷ 7JFXʹରԠͨ͠ϝιουΛ༻ҙ͢Δ͜ͱʹͳΔ .77.ͱ໋໊͠ͳ͔ͬͨཧ༝
  28. © 2 0 2 0 A t r a e

    , I n c . | 28 ߟ͑ํ .77.ͱ໋໊͠ͳ͔ͬͨཧ༝ w ࠓճ࣮૷ͨ͠4UBUF$POUSPMMFSͰ͸ͦ͏͍ͬͨϝιου͸༻ҙͤ ͣɺHFU6TFS%BUB HFU*UFNT ͳͲͷ௚઀తʹԿΛͯ͠΄͍͠ ͔ͷϝιουΛ༻ҙ͍ͯ͠Δ w ཧ༝ͱͯ͠͸ɺ ࠓͷͱ͜Ζ ͦ͜·Ͱಛఆͷ7JFXʹෳࡶͳϩδο ΫΛॻ͘ඞཁ͕ͳ͍ w ͦΕΑΓ΋ը໘ؒͰڞ༗͍ͨ͠σʔλΛΑ͠ͳʹѻ͍͖͍ͬͯͨ w ͳͷͰɺ7JFX.PEFMΑΓ΋4UBUF$POUSPMMFSͱ͍͏໋໊ͷ΄͏͕ ద੾ͩͱߟ͑ͨ
  29. © 2 0 2 0 A t r a e

    , I n c . | 29 ࠓ೔͓࿩͢͠Δ͜ͱ  4UBUF/PUJpFSͱ͸  3JWFSQPEͱ͸  ࣮ࡍͷΞʔΩςΫνϟ  .77.ͱ໋໊͠ͳ͔ͬͨཧ༝  ·ͱΊ
  30. © 2 0 2 0 A t r a e

    , I n c . | 30 ·ͱΊ ·ͱΊ w ϓϩδΣΫτʹΑͬͯ͸ɺը໘ؒͰͷσʔλͷڞ༗͕ཁΒͣɺ ͦΕΑΓ΋ը໘ʹؔ͢ΔෳࡶͳϩδοΫΛѻ͍͍ͨ৔߹͕͋Δɻ ͦͷ৔߹͸7JFX.PEFMʹͨ͠΄͏͕͍͍͔΋஌Εͳ͍ɻ w 4UBUF$POUSPMMFSΛ4JOHMFUPOʹ͍ͯ͠Δ͜ͱͰϝϞϦ͕ͻͬͺ͘ ͞Ε͍ͯΔՄೳੑ΋͋ΔͷͰͦΕ͸ཁௐࠪ ஌ͬͯͨΒڭ͍͑ͯͩ͘͞  w 7JFXʹؔ͢ΔϩδοΫ͕૿͖͑ͯͨΒ7JFX.PEFM૚ΛೖΕͯɺ .77.$ ͳߏ੒ʹ͍ͯ͜͠͏ͱࢥ͏
  31. © 2 0 2 0 A t r a e

    , I n c . | 31 ਓ͕׆͖׆͖ͱ׆ಈͰ͖Δ૊৫΍ ͜ͷνʔϜ͸ࣗ෼ͷνʔϜͩͱݴ͑ΔΑ͏ͳ νʔϜΛ૿΍ͨ͢Ίͷ Τϯήʔδϝϯτղੳπʔϧ ݸਓ͕͍࣋ͬͯΔ՝୊ҙࣝ΍ࣗݾ࣮ݱͷ ΤωϧΪʔΛɺܗʹ͍ͯ͘͠࢓૊Έ "*ϏδωεϚονϯάΞϓϦ ςΫϊϩδʔʹΑͬͯਓͷՄೳੑΛ֦͛ΔࣄۀΛ૑଄ People Tech Company Business Concept ࣗ෼ʹͱͬͯͷ੨৴߸Λݟ͚ͭΔ·Ͱʹ ίετ΍όΠΞεΛఫഇ͠ɺਓͱ૊৫Λ ݩؾʹ͢ΔͨΊͷ ੒ޭใुܕٻਓϝσΟΞ ઈࢍΤϯδχΞ࠾༻தʂʂʂ 5XJUUFS!NVUUTV@ˡؾܰʹ͝࿈བྷ͍ͩ͘͞