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
520
出前館アプリにおける Flutterアプリ設計
エネチェンジ社との合同技術イベントにてFlutter開発のノウハウをテーマに登壇させていただきました
株式会社出前館
May 31, 2024
Tweet
Share
More Decks by 株式会社出前館
See All by 株式会社出前館
新卒1年目の自分に伝えたかったエンジニアの成長に役に立つ話
demaecan
0
1.5k
新卒エンジニアが0からNon-BlockingなgPRCサーバーを作った話
demaecan
1
310
出前館におけるFlutter活用事例
demaecan
0
140
プロダクト本部紹介資料
demaecan
0
6.5k
処理性能向上とコスト最適化を実現! ハイブリッド/マルチクラウド構成へ移行しサービス需要の急拡大に対応する強力なシステム基盤を実現
demaecan
0
81
出前館におけるFlutterの現在とこれから
demaecan
0
1k
出前館Webフロントエンドリプレイスプロジェクトの取り組みと反省について
demaecan
1
1.3k
必見!Web アクセシビリティの重要性とは?知らないと恥ずかしい!?その理由と対策法まとめ
demaecan
0
73
ITエンジニアの市場価値を高め続ける3つの方法
demaecan
0
760
Other Decks in Technology
See All in Technology
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
Engineer Career Talk
lycorp_recruit_jp
0
160
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
強いチームと開発生産性
onk
PRO
34
11k
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
990
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
Terraform Stacks入門 #HashiTalks
msato
0
350
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Agile that works and the tools we love
rasmusluckow
327
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
860
The Cult of Friendly URLs
andyhume
78
6k
Adopting Sorbet at Scale
ufuk
73
9.1k
Building Applications with DynamoDB
mza
90
6.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
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