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
1.4k
2
Share
出前館アプリにおける Flutterアプリ設計
エネチェンジ社との合同技術イベントにてFlutter開発のノウハウをテーマに登壇させていただきました
株式会社出前館
May 31, 2024
More Decks by 株式会社出前館
See All by 株式会社出前館
複雑にからみあう複数のシステムを要する出前館QAの実情、展望
demaecan
0
170
QA業務を変える(!?)AIを併用した不具合分析の実践
demaecan
0
170
出前館アプリの品質を支えるリリーストレインとその実践
demaecan
0
220
出前館アプリ進化論 アーキテクチャと組織のリアルな変⾰の舞台裏
demaecan
0
620
Flutterにしてよかった?出前館アプリを2年運用して気づいたことを全部話します
demaecan
1
1.1k
Boxを“使われる場”にする統制と自動化の仕組み
demaecan
1
430
生成AI導入における「短期ROIを超えた」共存戦略
demaecan
0
150
Okta Identity Governanceで実現する最小権限の原則
demaecan
1
470
incident_commander_demaecan__1_.pdf
demaecan
0
400
Other Decks in Technology
See All in Technology
全社統制を維持しながら現場負担をどう減らすか〜プラットフォームチームとセキュリティチームで進めたSecurity Hub活用によるAWS統制の見直し〜/secjaws-security-hub-custom-insights
mhrtech
1
410
データモデリング通り #5オンライン勉強会: AIに『ビジネスの文脈』を教え込むデータモデリング
datayokocho
0
260
Every Conversation Counts
kawaguti
PRO
0
210
ボトムアップ限界を越える - 20チームを束る "Drive Map" / Beyond Bottom-Up: A 'Drive Map' for 20 Teams
kaonavi
0
190
Oracle Cloud Infrastructure presents managed, serverless MCP Servers for Oracle AI Database
thatjeffsmith
0
230
サービスの信頼性を高めるため、形骸化した「プロダクションミーティング」を立て直すまでの取り組み
stefafafan
1
260
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
250
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
260
会社説明資料|株式会社ギークプラス ソフトウェア事業部
geekplus_tech
0
220
React 19×Rustツール 進化の「ズレ」を設計で埋める
remrem0090
1
110
【関西製造業祭り2026春】現場を変える技術はここまで来た〜世界最大の製造業見本市から持って帰ってきたもの〜
tanakaseiya
0
130
AI対話分析の夢と、汚いデータの現実 Looker / Dataplex / Dataform で実現する品質ファーストな基盤設計
waiwai2111
0
430
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Exploring anti-patterns in Rails
aemeredith
3
350
The Cult of Friendly URLs
andyhume
79
6.9k
The agentic SEO stack - context over prompts
schlessera
0
770
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
A designer walks into a library…
pauljervisheath
211
24k
Code Review Best Practice
trishagee
74
20k
The SEO Collaboration Effect
kristinabergwall1
1
440
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
910
Building the Perfect Custom Keyboard
takai
2
750
Product Roadmaps are Hard
iamctodd
PRO
55
12k
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