Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
出前館アプリにおける Flutterアプリ設計
Search
株式会社出前館
May 31, 2024
Technology
2
900
出前館アプリにおける Flutterアプリ設計
エネチェンジ社との合同技術イベントにてFlutter開発のノウハウをテーマに登壇させていただきました
株式会社出前館
May 31, 2024
Tweet
Share
More Decks by 株式会社出前館
See All by 株式会社出前館
出前館を支えるJavaとKotlin
demaecan
0
29
滑らかなユーザー体験も目指す注文管理のマイクロサービス化〜注文情報CSVダウンロード機能の事例〜
demaecan
0
21
Yahoo!クイックマート管理画面でNext.js + static exportsを選んだ理由
demaecan
0
23
出前館アプリにおけるFlutterアプリ設計とそれを支えるCICD環境の進化
demaecan
0
630
出前館のマルチプロダクト戦略を支えるアーキテクチャ 〜技術的負債を解消しながら事業を多角化する〜
demaecan
1
150
新卒1年目の自分に伝えたかったエンジニアの成長に役に立つ話
demaecan
0
1.7k
新卒エンジニアが0からNon-BlockingなgPRCサーバーを作った話
demaecan
1
480
出前館におけるFlutter活用事例
demaecan
0
490
プロダクト本部紹介資料
demaecan
0
10k
Other Decks in Technology
See All in Technology
PostgreSQL Unconference #52 pg_tde
nori_shinoda
0
190
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
7
1.5k
20250328_OpenAI製DeepResearchは既に一種のAGIだと思う話
doradora09
PRO
0
150
新卒エンジニア研修の試行錯誤と工夫/nikkei-tech-talk-31
nishiuma
0
200
ウェブアクセシビリティとは
lycorptech_jp
PRO
0
260
ひまプロプレゼンツ 「エンジニア格付けチェック 〜春の公開収録スペシャル〜」
kaaaichi
0
120
AIエージェントキャッチアップと論文リサーチ
os1ma
6
1.2k
ISUCONにPHPで挑み続けてできるようになっ(てき)たこと / phperkaigi2025
blue_goheimochi
0
140
OCI見積もり入門セミナー
oracle4engineer
PRO
0
120
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略 / phper-kaigi-2025-ryu
carta_engineering
0
690
Why Go?
xpmatteo
0
130
Featured
See All Featured
Visualization
eitanlees
146
16k
Gamification - CAS2011
davidbonilla
81
5.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Unsuck your backbone
ammeep
670
57k
The Pragmatic Product Professional
lauravandoore
33
6.5k
Designing Experiences People Love
moore
141
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
Raft: Consensus for Rubyists
vanstee
137
6.8k
GraphQLとの向き合い方2022年版
quramy
45
14k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Transcript
גࣜձࣾग़લؗ 1"3,:&0/)0ɹύΫɾϤϯϗ ग़લؗΞϓϦʹ͓͚Δ 'MVUUFSΞϓϦઃܭ
ύΫɾϤϯϗ ग़લؗ プ ϩ ダ Ϋτຊ෦ίϯγϡʔϚ෦ Ξ プ Ϧ։ൃ グ
ϧʔ プ ܦྺ w -(ిࢠ d w .PCJMF8J'J #41"OESPJE'SBNFXPSL.PCJMF"QQMJDBUJPO w %FFQ/BUVSBM d w .PCJMF"QQMJDBUJPO w -*/&1MVT d (JUIVC w IUUQTHJUIVCDPNUVSMWP ԭೄग़ͷ࠺ͱઈࢍΠϠΠϠظͷࣗಈंΦλΫͷଉࢠʢ̐ࡀʣͱؖࠃࡏॅ
$POUFOUT ग़લؗͱ 'PMEFS4USVDUVSF 5ZQF%PBNJOWT'FBUVSFWT1BDLBHF "TTFU.BOBHFNFOU fl VUUFS@HFO 4UBUF.BOBHFNFOU
#-P$ ·ͱΊ
$POUFOUT ग़લؗͱ 'PMEFS4USVDUVSF 5ZQF%PBNJOWT'FBUVSFWT1BDLBHF "TTFU.BOBHFNFOU fl VUUFS@HFO 4UBUF.BOBHFNFOU
#-P$ ·ͱΊ
ग़લؗͱ ग़લؗ ΞϓϦαΠτ͔Β؆୯ʹจͰ͖ɺ͞·͟·ͳγʔϯͰ׆༻Մೳͳશࠃ ಓݝʹల։͢Δࠃ࠷େڃͷσϦόϦʔαʔϏε ग़લؗ130%6$54 Ճໍళ͚Ξ プ Ϧ
ϑʔυʔ 9BNBSJO'MVUUFS Ճໍళ͚Ξ プ Ϧ Ϧςʔϧʔ /BUJWF'MVUUFS υϥΠόʔ͚Ξ プ Ϧ 3FBDU/BUJWF'MVUUFS Ճໍళཧऀ͚ΞϓϦ 'MVUUFS ग़લؗΞ プ Ϧ ΤϯυϢʔ ザ ͚ 3FBDU/BUJWF'MVUUFS
$POUFOUT ग़લؗͱ 'PMEFS4USVDUVSF 5ZQF%PBNJOWT'FBUVSFWT1BDLBHF "TTFU.BOBHFNFOU fl VUUFS@HFO 4UBUF.BOBHFNFOU
#-P$ ·ͱΊ
'PMEFS4USVDUVSF 5ZQF%PBNJO74'FBUVSF741BDLBHF 5ZQF%PBNJO ϑΝΠϧΛυϝΠϯผ .PEFM 7JFX 7JFX.PEFM ྨ͢Δ
ϝϦοτॳظখنϓϩδΣΫτʹ ͓͍ͯϑΝΠϧΛૉૣ͘୳ͤΔͱ͍͏ σϝϦοτϓϩδΣΫτن͕େ͖͘ ͳΕͳΔ΄ͲϑΝΠϧ͕ଟ͘ͳΓɺ ίʔυཧݕࡧ͕ෳࡶʹͳΔ ‣MJC ‣TSD ‣QSFTFOUBUJPO ‣GFBUVSF ‣GFBUVSF ‣BQQMJDBUJPO ‣GFBUVSF ‣GFBUVSF ‣EPNBJO ‣GFBUVSF ‣GFBUVSF ‣EBUB ‣GFBUVSF ‣GFBUVSF
'PMEFS4USVDUVSF 5ZQF%PBNJO74'FBUVSF741BDLBHF 'PMEFSTCZ'FBUVSF ֤ػೳผʹϑΥϧμΛߏɺ֤'FBUVSFϑΥϧ μXJEHFUNPEFMDPOUSPMMFSͳͲΛؚΉ ϝϦοτ େنϓϩδΣΫτʹ͓͍ͯಛఆػೳΛૉ ૣ͘ݕࡧɺཧ͕Ͱ͖Δ
ҟͳΔ'FBUVSFͷ։ൃ࣌ʹিಥΛݮΒ͢͜ͱ ͕Ͱ͖Δ σϝϦοτ ॳظߏ͕ෳࡶʹͳΔՄೳੑ͕͋Δ ڞ௨ίʔυͷཧ͕͘͠ͳΔՄೳੑ͕͋Δ ‣MJC ‣TSD ‣GFBUVSFT ‣GFBUVSF ‣QSFTFOUBUJPO ‣BQQMJDBUJPO ‣EPNBJO ‣EBUB ‣GFBUVSF ‣QSFTFOUBUJPO ‣BQQMJDBUJPO ‣EPNBJO ‣EBUB
'PMEFS4USVDUVSF 5ZQF%PBNJO74'FBUVSF741BDLBHF 1BDLBHFTCZ'FBUVSF ֤'FBUVSFΛผ్ͷύοέʔδͰཧͯ͠Ϟδϡ ʔϧԽ ϝϦοτ ಠཱతʹ֤ػೳΛ։ൃɾςετ͕Ͱ͖Δ ͝ͱʹׂΛ୲ͯ͠։ൃ͢Δ͜ͱ͕༰қ
σϝϦοτ ґଘతͳؔΛ͞Βʹෳࡶʹ͢ΔՄೳੑ͕͋Δ ઃఆͱॳظߏ͕ෳࡶͰ͋Δ Ϧιʔεཧ͕ෳࡶʹͳΓɺॏෳͨ͠Ϧιʔε ͕ൃੜ͢ΔՄೳੑ͕͋Δ ‣MJC ‣TSD ‣QSFTFOUBUJPO ‣BQQMJDBUJPO ‣EPNBJO ‣EBUB ‣QBDLBHFT ‣GFBUVSF ‣MJC ‣TSD ‣GFBUVSF ‣MJC ‣TSD
ग़લؗΞϓϦͷϑΥϧμߏʹ͍ͭͯ
"QQMJDBUJPO ᵓᴷᴷBTTFUT3FTPVSDFؔ࿈ϑΥϧμ *NBHFT 'POUT ᵓᴷᴷDPO fi H#VJME$PO fi HVSBUJPOϑΥϧμ
ᵓᴷᴷMJC ᴹᵓᴷᴷDPNNPOΞϓϦͰڞ௨ͯ͠༻͞ΕΔϞδϡʔϧϑΥϧμ ᴹᴹᵓᴷᴷDPOTUBOUڞ௨$POTUBOU ᴹᴹᵓᴷᴷEBUB@TPVSDFڞ௨-PDBMɺ3FNPUF"1*ؔ࿈ϑΥϧμ ᴹᴹᴹᵓᴷᴷMPDBM ᴹᴹᴹᵋᴷᴷSFNPUF ᴹᵓᴷᴷGFBUVSFT'FBUVSF5PQϑΥϧμ ᴹᴹᵋᴷᴷGFBUVSF" ᴹᴹ ᵓᴷᴷᴷCMPD'FBUVSFผ#MPDϑΥϧμ ᴹᴹ ᵓᴷᴷᴷEBUB@TPVSDF'FBUVSFผ-PDBM 3FNPUF"1*ϑΥϧμ ᴹᴹ ᴹᵓᴷᴷᴷMPDBM ᴹᴹ ᴹᵋᴷᴷᴷSFNPUF ᴹᴹ ᵓᴷᴷᴷNPEFM'FBUVSFผϞσϧϑΥϧμ ᴹᴹ ᵓᴷᴷᴷQBHF'FBUVSFผ7JFXϑΥϧμ ᴹᴹ ᴹᵋᴷᴷᴷXJEHFU ᴹᴹ ᵓᴷᴷᴷVUJM'FBUVSFผ6UJMϑΥϧμ ᴹᴹ ᵋᴷᴷᴷSFQPTJUPSZ'FBUVSFผ3FQPTJUPSZϑΥϧμ ᴹᵓᴷᴷQMBUGPSNT1MBUGPSNϑΥϧμ ᴹᵓᴷᴷTFSWJDFTڞ௨Ϟδϡʔϧ 4FSWJDF ϑΥϧμ ᴹᵋᴷᴷVUJMڞ௨6UJMϑΥϧμ ᵓᴷᴷQBDLBHFT$VTUPN QBDLBHFϑΥϧμ ᵓᴷᴷUFTUςετϑΥϧμ ᵋᴷᴷUPPMT$*ϑΥϧμ ग़લؗ"QQϑΥϧμߏɹ 'PMEFSTCZ'FBUVSF େنϓϩδΣΫτ ಛఆػೳʹ͓͚Δݕࡧɺཧ͕༰қ ڞ௨ίʔυཧ͕հ ‣MJC ‣TSD ‣GFBUVSFT ‣GFBUVSF ‣QSFTFOUBUJPO ‣BQQMJDBUJPO ‣EPNBJO ‣EBUB ‣GFBUVSF ‣QSFTFOUBUJPO ‣BQQMJDBUJPO ‣EPNBJO
$POUFOUT ग़લؗͱ 'PMEFS4USVDUVSF 5ZQF%PBNJOWT'FBUVSFWT1BDLBHF "TTFU.BOBHFNFOU fl VUUFS@HFO 4UBUF.BOBHFNFOU
#-P$ ·ͱΊ
ଞϓϩμΫτΛݟͯΈΑ͏👀
"TTFU.BOBHFNFOU GMVUUFS@HFO ଞϓϩμΫτݱঢ় υϥΠόʔ͚Ξ プ Ϧ Ճໍళ͚Ξ プ Ϧ ϑʔυ
Ճໍళ͚Ξ プ Ϧ Ϧςʔϧʣ Ճໍళཧऀ͚ΞϓϦ %FTDSJQUJPO "TTFUQBUIOBNF ೖྗ fl VUUFS@HFO༻ fl VUUFS@HFO༻ εΫϦϓτͰ$MBTT࡞ ϝϦοτ Ճࣄલ࡞ۀ͕ෆඞཁ "TTFUࢀরΤϥʔࢭ "TTFUࢀরΤϥʔࢭ "TTFUࢀরΤϥʔࢭ σϝϦοτ "TTFUQBUIOBNFϛ ε "TTFUՃআ࣌ CVJME@SVOOFS࣮ߦඞਢ "TTFUՃআ࣌ CVJME@SVOOFS࣮ߦඞ ਢ "TTFUՃআ࣌ 4DSJQU࣮ߦඞਢ 4DSJQUͷϝϯςφϯε "TTFUUZQFϛε
"TTFU.BOBHFNFOU GMVUUFS@HFO ଞϓϩμΫτݱঢ় υϥΠόʔ͚Ξ プ Ϧ Ճໍళ͚Ξ プ Ϧ ϑʔυ
Ճໍళ͚Ξ プ Ϧ Ϧςʔϧʣ Ճໍళཧऀ͚ΞϓϦ %FTDSJQUJPO "TTFUQBUIOBNF ೖྗ fl VUUFS@HFO༻ fl VUUFS@HFO༻ εΫϦϓτͰ$MBTT࡞ ϝϦοτ Ճࣄલ࡞ۀ͕ෆඞཁ "TTFUࢀরΤϥʔࢭ "TTFUࢀরΤϥʔࢭ "TTFUࢀরΤϥʔࢭ σϝϦοτ "TTFUQBUIOBNFϛ ε "TTFUՃআ࣌ CVJME@SVOOFS࣮ߦඞਢ "TTFUՃআ࣌ CVJME@SVOOFS࣮ߦඞ ਢ "TTFUՃআ࣌ 4DSJQU࣮ߦඞਢ 4DSJQUͷϝϯςφϯε "TTFUUZQFϛε
"TTFU.BOBHFNFOU GMVUUFS@HFO ଞϓϩμΫτݱঢ় υϥΠόʔ͚Ξ プ Ϧ Ճໍళ͚Ξ プ Ϧ ϑʔυ
Ճໍళ͚Ξ プ Ϧ Ϧςʔϧʣ Ճໍళཧऀ͚ΞϓϦ %FTDSJQUJPO "TTFUQBUIOBNF ೖྗ fl VUUFS@HFO༻ fl VUUFS@HFO༻ εΫϦϓτͰ$MBTT࡞ ϝϦοτ Ճࣄલ࡞ۀ͕ෆඞཁ "TTFUࢀরΤϥʔࢭ "TTFUࢀরΤϥʔࢭ "TTFUࢀরΤϥʔࢭ σϝϦοτ "TTFUQBUIOBNFϛ ε "TTFUՃআ࣌ CVJME@SVOOFS࣮ߦඞਢ "TTFUՃআ࣌ CVJME@SVOOFS࣮ߦඞ ਢ "TTFUՃআ࣌ 4DSJQU࣮ߦඞਢ 4DSJQUͷϝϯςφϯε "TTFUUZQFϛε
ग़લؗΞϓϦʹ࣮ફ✂📋
"TTFU.BOBHFNFOU GMVUUFS@HFO fl VUUFS@HFOద༻ "TTFUࢀরΤϥʔࢭ طଘ#VJME@SVOOFS༻தͰ͋ΓՃ࡞ۀͷඞཁͳ͠ ίʔυ࡞࣌*%&ͷࣗಈิػೳʹΑΔੜ࢈ੑ্ 50#& "4*4
&Y 8JEHFUCVJME #VJME$POUFYUDPOUFYU \ SFUVSO *NBHFBTTFU BTTFUTJNBHFTQSP fi MFKQFH ^ &Y DPOTU QSP fi MF*NBHF BTTFUTJNBHFTQSP fi MFKQFH 8JEHFUCVJME #VJME$POUFYUDPOUFYU \ SFUVSO *NBHFBTTFU QSP fi MF*NBHF ^ 8JEHFUCVJME #VJME$POUFYUDPOUFYU \ SFUVSO "TTFUTJNBHFTQSP fi MFJNBHF ^
FYUFOTJPO%F"TTFU4IPSUDVUPO#VJME$POUFYU\ "TTFUT*NBHFT(FOHFUJNBHFT%F"TTFUTJNBHFT ^ 8JEHFUCVJME #VJME$POUFYUDPOUFYU \ SFUVSODPOUFYUJNBHFTQSP fi MFJNBHF
^ 8JEHFUCVJME #VJME$POUFYUDPOUFYU \ SFUVSO "TTFUTJNBHFTQSP fi MFJNBHF ^ "TTFU.BOBHFNFOU GMVUUFS@HFO fl VUUFS@HFOద༻ #VJME$POUFYUFYUFOTJPOΛ௨͠"TTFU4IPSUDVU༻த 5ZQPHSBQIZ $PMPS 4UZMF 5IFNFͳͲ͕͢ͰʹಉҰͷํ๏Λ༻ DPOUFYU͕ଘࡏ͢Δ7JFXͰͷΈΞΫηεՄೳ 0OFNPSFUIJOHʜ 50#&
$POUFOUT ग़લؗͱ 'PMEFS4USVDUVSF 5ZQF%PBNJOWT'FBUVSFWT1BDLBHF "TTFU.BOBHFNFOU fl VUUFS@HFO 4UBUF.BOBHFNFOU
#-P$ ·ͱΊ
ग़લؗঢ়ଶཧ #-P$Λ༻த "QQFOEJY'MVUUFSਓؾΞʔΩςΫνϟϥΠϒϥϦछͷൺֱੳ(FU9WT#-P$WT1SPWJEFS
4UBUF.BOBHFNFOU #-P$ DVCJU.VMUJDMBTTXJUI'SFF[FE #-P$ 4UBUF$MBTT 4UBUF$MBTT 4UBUF$MBTT 4UBUF$MBTT 4UBUF$MTTT 8JUI&OVNTUBUVT
'SFF[FE 4UBUF$MBTT 4JOHMF$MBTT .VMUJ$MBTT 'SFF[FE 4UBUF$MBTT
4JOHMF$MBTT .VMUJ$MBTT 4JOHMF$MBTT4UBUF 4JOHMF$MBTT4UBUF &OVNTUBUVT 'SFF[FE .VMUJ$MBTT4UBUF .VMUJ$MBTT4UBUF 'SFF[FE
4BNQMF DMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOUFS fi OBMCPPMJT-PBEJOH $PVOUFS4UBUF \ UIJTDPVOUFS UIJTJT-PBEJOHGBMTF ^ ^ FOVN $PVOUFS4UBUVT\MPBEJOH MPBEFE^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUF \ !%FGBVMU $PVOUFS4UBUVTMPBEFE TUBUVT SFRVJSFE JOU DPVOU ^ @$PVOUFS4UBUF ^ BCTUSBDUDMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOU $PVOUFS4UBUF \ SFRVJSFEUIJTDPVOU ^ ^ DMBTT-PBEJOH4UBUFFYUFOET$PVOUFS4UBUF\ -PBEJOH4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ DMBTT-PBEFE4UBUFFYUFOET$PVOUFS4UBUF\ -PBEFE4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUFMPBEFE \ SFRVJSFE JOU DPVOU ^ -PBEFE4UBUF DPOTU GBDUPSZ$PVOUFS4UBUFMPBEJOH \ SFRVJSFE JOU DPVOU ^ -PBEJOH4UBUF ^ ϝϦοτ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ ͞Ε͍ͯΔγϯϓϧͳߏ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ͞Εͯ ͍Δγϯϓϧͳߏ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲϝιουࣗಈੜ ֤ঢ়ଶΛผ్ͷΫϥεʹ͠ɺՄಡੑ͕ ߴ͍ ঢ়ଶผʹ fi FMEΛผʹߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ ֤ঢ়ଶผͷΫϥεΛ͠ɺՄಡੑ͕ߴ͍ ঢ়ଶผ fi FMEΛߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ϝιουࣗಈੜ σϝϦοτ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽ Δ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘ ͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽΔ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͝ͱʹผ్ͷΫϥεʹఆٛɺཧ͕ඞ ཁ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲͷϝιου۩ମԽඞཁ 'SFF[FE༻ϥʔχϯάΧʔϒ Ϗϧυ࣌ؒ૿Ճ 'SFF[FEՃʹΑΔύοέʔδґଘੑ͕Ͱ ͖Δ
4JOHMF$MBTT .VMUJ$MBTT 4JOHMF$MBTT4UBUF 4JOHMF$MBTT4UBUF &OVNTUBUVT 'SFF[FE .VMUJ$MBTT4UBUF .VMUJ$MBTT4UBUF 'SFF[FE
4BNQMF DMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOUFS fi OBMCPPMJT-PBEJOH $PVOUFS4UBUF \ UIJTDPVOUFS UIJTJT-PBEJOHGBMTF ^ ^ FOVN $PVOUFS4UBUVT\MPBEJOH MPBEFE^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUF \ !%FGBVMU $PVOUFS4UBUVTMPBEFE TUBUVT SFRVJSFE JOU DPVOU ^ @$PVOUFS4UBUF ^ BCTUSBDUDMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOU $PVOUFS4UBUF \ SFRVJSFEUIJTDPVOU ^ ^ DMBTT-PBEJOH4UBUFFYUFOET$PVOUFS4UBUF\ -PBEJOH4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ DMBTT-PBEFE4UBUFFYUFOET$PVOUFS4UBUF\ -PBEFE4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUFMPBEFE \ SFRVJSFE JOU DPVOU ^ -PBEFE4UBUF DPOTU GBDUPSZ$PVOUFS4UBUFMPBEJOH \ SFRVJSFE JOU DPVOU ^ -PBEJOH4UBUF ^ ϝϦοτ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ ͞Ε͍ͯΔγϯϓϧͳߏ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ͞Εͯ ͍Δγϯϓϧͳߏ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲϝιουࣗಈੜ ֤ঢ়ଶΛผ్ͷΫϥεʹ͠ɺՄಡੑ͕ ߴ͍ ঢ়ଶผʹ fi FMEΛผʹߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ ֤ঢ়ଶผͷΫϥεΛ͠ɺՄಡੑ͕ߴ͍ ঢ়ଶผ fi FMEΛߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ϝιουࣗಈੜ σϝϦοτ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽ Δ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘ ͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽΔ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͝ͱʹผ్ͷΫϥεʹఆٛɺཧ͕ඞ ཁ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲͷϝιου۩ମԽඞཁ 'SFF[FE༻ϥʔχϯάΧʔϒ Ϗϧυ࣌ؒ૿Ճ 'SFF[FEՃʹΑΔύοέʔδґଘੑ͕Ͱ ͖Δ
4JOHMF$MBTT .VMUJ$MBTT 4JOHMF$MBTT4UBUF 4JOHMF$MBTT4UBUF &OVNTUBUVT 'SFF[FE .VMUJ$MBTT4UBUF .VMUJ$MBTT4UBUF 'SFF[FE
4BNQMF DMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOUFS fi OBMCPPMJT-PBEJOH $PVOUFS4UBUF \ UIJTDPVOUFS UIJTJT-PBEJOHGBMTF ^ ^ FOVN $PVOUFS4UBUVT\MPBEJOH MPBEFE^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUF \ !%FGBVMU $PVOUFS4UBUVTMPBEFE TUBUVT SFRVJSFE JOU DPVOU ^ @$PVOUFS4UBUF ^ BCTUSBDUDMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOU $PVOUFS4UBUF \ SFRVJSFEUIJTDPVOU ^ ^ DMBTT-PBEJOH4UBUFFYUFOET$PVOUFS4UBUF\ -PBEJOH4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ DMBTT-PBEFE4UBUFFYUFOET$PVOUFS4UBUF\ -PBEFE4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUFMPBEFE \ SFRVJSFE JOU DPVOU ^ -PBEFE4UBUF DPOTU GBDUPSZ$PVOUFS4UBUFMPBEJOH \ SFRVJSFE JOU DPVOU ^ -PBEJOH4UBUF ^ ϝϦοτ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ ͞Ε͍ͯΔγϯϓϧͳߏ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ͞Εͯ ͍Δγϯϓϧͳߏ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲϝιουࣗಈੜ ֤ঢ়ଶΛผ్ͷΫϥεʹ͠ɺՄಡੑ͕ ߴ͍ ঢ়ଶผʹ fi FMEΛผʹߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ ֤ঢ়ଶผͷΫϥεΛ͠ɺՄಡੑ͕ߴ͍ ঢ়ଶผ fi FMEΛߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ϝιουࣗಈੜ σϝϦοτ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽ Δ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘ ͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽΔ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͝ͱʹผ్ͷΫϥεʹఆٛɺཧ͕ඞ ཁ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲͷϝιου۩ମԽඞཁ 'SFF[FE༻ϥʔχϯάΧʔϒ Ϗϧυ࣌ؒ૿Ճ 'SFF[FEՃʹΑΔύοέʔδґଘੑ͕Ͱ ͖Δ
4JOHMF$MBTT .VMUJ$MBTT 4JOHMF$MBTT4UBUF 4JOHMF$MBTT4UBUF &OVNTUBUVT 'SFF[FE .VMUJ$MBTT4UBUF .VMUJ$MBTT4UBUF 'SFF[FE
4BNQMF DMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOUFS fi OBMCPPMJT-PBEJOH $PVOUFS4UBUF \ UIJTDPVOUFS UIJTJT-PBEJOHGBMTF ^ ^ FOVN $PVOUFS4UBUVT\MPBEJOH MPBEFE^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUF \ !%FGBVMU $PVOUFS4UBUVTMPBEFE TUBUVT SFRVJSFE JOU DPVOU ^ @$PVOUFS4UBUF ^ BCTUSBDUDMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOU $PVOUFS4UBUF \ SFRVJSFEUIJTDPVOU ^ ^ DMBTT-PBEJOH4UBUFFYUFOET$PVOUFS4UBUF\ -PBEJOH4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ DMBTT-PBEFE4UBUFFYUFOET$PVOUFS4UBUF\ -PBEFE4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUFMPBEFE \ SFRVJSFE JOU DPVOU ^ -PBEFE4UBUF DPOTU GBDUPSZ$PVOUFS4UBUFMPBEJOH \ SFRVJSFE JOU DPVOU ^ -PBEJOH4UBUF ^ ϝϦοτ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ ͞Ε͍ͯΔγϯϓϧͳߏ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ͞Εͯ ͍Δγϯϓϧͳߏ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲϝιουࣗಈੜ ֤ঢ়ଶΛผ్ͷΫϥεʹ͠ɺՄಡੑ͕ ߴ͍ ঢ়ଶผʹ fi FMEΛผʹߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ ֤ঢ়ଶผͷΫϥεΛ͠ɺՄಡੑ͕ߴ͍ ঢ়ଶผ fi FMEΛߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ϝιουࣗಈੜ σϝϦοτ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽ Δ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘ ͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽΔ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͝ͱʹผ్ͷΫϥεʹఆٛɺཧ͕ඞ ཁ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲͷϝιου۩ମԽඞཁ 'SFF[FE༻ϥʔχϯάΧʔϒ Ϗϧυ࣌ؒ૿Ճ 'SFF[FEՃʹΑΔύοέʔδґଘੑ͕Ͱ ͖Δ
None
4JOHMF$MBTT .VMUJ$MBTT 4JOHMF$MBTT4UBUF 4JOHMF$MBTT4UBUF &OVNTUBUVT 'SFF[FE .VMUJ$MBTT4UBUF .VMUJ$MBTT4UBUF 'SFF[FE
4BNQMF DMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOUFS fi OBMCPPMJT-PBEJOH $PVOUFS4UBUF \ UIJTDPVOUFS UIJTJT-PBEJOHGBMTF ^ ^ FOVN $PVOUFS4UBUVT\MPBEJOH MPBEFE^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUF \ !%FGBVMU $PVOUFS4UBUVTMPBEFE TUBUVT SFRVJSFE JOU DPVOU ^ @$PVOUFS4UBUF ^ BCTUSBDUDMBTT$PVOUFS4UBUF\ fi OBMJOUDPVOU $PVOUFS4UBUF \ SFRVJSFEUIJTDPVOU ^ ^ DMBTT-PBEJOH4UBUFFYUFOET$PVOUFS4UBUF\ -PBEJOH4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ DMBTT-PBEFE4UBUFFYUFOET$PVOUFS4UBUF\ -PBEFE4UBUF \ SFRVJSFETVQFSDPVOU ^ ^ !GSFF[FE DMBTT $PVOUFS4UBUFXJUI@$PVOUFS4UBUF\ DPOTU GBDUPSZ$PVOUFS4UBUFMPBEFE \ SFRVJSFE JOU DPVOU ^ -PBEFE4UBUF DPOTU GBDUPSZ$PVOUFS4UBUFMPBEJOH \ SFRVJSFE JOU DPVOU ^ -PBEJOH4UBUF ^ ϝϦοτ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ ͞Ε͍ͯΔγϯϓϧͳߏ શͯͷঢ়ଶใ͕ҰͭͷΫϥεʹཧ͞Εͯ ͍Δγϯϓϧͳߏ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲϝιουࣗಈੜ ֤ঢ়ଶΛผ్ͷΫϥεʹ͠ɺՄಡੑ͕ ߴ͍ ঢ়ଶผʹ fi FMEΛผʹߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ ֤ঢ়ଶผͷΫϥεΛ͠ɺՄಡੑ͕ߴ͍ ঢ়ଶผ fi FMEΛߏɺॊೈͳߏ ৽͍͠ঢ়ଶՃ·ͨϝϯςφϯε͕༰қ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ϝιουࣗಈੜ σϝϦοτ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽ Δ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘ ͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͕ଟ͘ͳΕཧɺՄಡੑʹ͚ܽΔ ঢ়ଶʹؔͳ͘શͯͷ fi MFE͕ৗʹଘࡏ FYGBJMVSFͰ͋ͬͯTVDDFTTʹ֘͢Δ fi FME͕·ͩଘࡏ͢Δ ঢ়ଶ͝ͱʹผ్ͷΫϥεʹఆٛɺཧ͕ඞ ཁ DPQZ8JUI GSPN+TPO UP+TPO UP4USJOH ͳͲͷϝιου۩ମԽඞཁ 'SFF[FE༻ϥʔχϯάΧʔϒ Ϗϧυ࣌ؒ૿Ճ 'SFF[FEՃʹΑΔύοέʔδґଘੑ͕Ͱ ͖Δ
$POUFOUT ग़લؗͷ͝հ 'PMEFS4USVDUVSF 5ZQF%PBNJOWT'FBUVSFWT1BDLBHF "TTFU.BOBHFNFOU fl VUUFS@HFO 4UBUF.BOBHFNFOU
#-P$ ·ͱΊ
·ͱΊ w ग़લؗϑʔυੜ׆ඞधୡαʔϏεͰ͋ΓɺՃໍళɺυϥΠόʔɺϚωʔδϟʔɺϢ ʔβʔΞϓϦͱͯ͠ӡӦ͞ΕͯΔσϦόϦʔαʔϏεɻ w ग़લؗΞϓϦͷϑΥϧμߏɺେ͖͘'FBUVSFج४ʹ͔Ε͓ͯΓ υϝΠϯผʹࡉԽ͞Ε͍ͯΔɻ w *NBHF-PUUJF'POUBTTFU fl
VUUFS@HFOͰཧ͍ͯ͠Δɻ w ঢ়ଶཧͷͨΊ#MPDύοέʔδΛ༻͓ͯ͠Γɺ #MPDύλʔϯ 4UBUF.VMUJDMBTT 'SFF[FEܗଶͰ͋Δɻ
5)"/,:06
"QQFOEJY'MVUUFSਓؾΞʔΩςΫνϟϥΠϒϥϦछͷൺֱੳ(FU9WT#-P$WT1SPWJEFS IUUQTFOHJOFFSJOHMJOFDPSQDPNLPCMPH fl VUUFSBSDIJUFDUVSFHFUYCMPDQSPWJEFS LPSFBO "QQFOEJY
User Action Event Event stream Business Logic State State stream
View 6TFSBDUJPO #MPD 6* User Action Business Logic State State stream View 6TFSBDUJPO $VCJU 6* $VCJU #MPD
Push order button 6TFSBDUJPO #MPD 6* * orderInfo * orderInfo
* orderInfo * orderId * orderInfo * message Order Page + Loading Order Page Move to OrderComplete Order Page + Error 4UBUFT #MPD $VCJU Order logic Success :FT /P Push order button 6TFSBDUJPO #MPD 6* *orderInfo orderId Message Order Page 4UBUFT #MPD $VCJU Order logic Success :FT /P *orderInfo orderId Message *orderInfo *orderId Message *orderInfo orderId *Message -PBEFE4UBUF -PBEJOH4UBUF 0SEFS$PNQMFUF4UBUF 'BJMFE4UBUF .VMUJ$MBTT4UBUF 4JOHMF$MBTT4UBUF