Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
出前館アプリにおける Flutterアプリ設計
Search
株式会社出前館
May 31, 2024
Technology
1.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
出前館アプリにおける Flutterアプリ設計
エネチェンジ社との合同技術イベントにてFlutter開発のノウハウをテーマに登壇させていただきました
株式会社出前館
May 31, 2024
More Decks by 株式会社出前館
See All by 株式会社出前館
出前館のメニュー登録・更新用APIをSpring Boot+Kafkaで実現したお話
demaecan
0
260
現実的なセキュリティ体制の構築 限られたリソースの中で成果を最大化する「選択と集中」
demaecan
7
5.7k
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
1.2k
複雑にからみあう複数のシステムを要する出前館QAの実情、展望
demaecan
0
230
QA業務を変える(!?)AIを併用した不具合分析の実践
demaecan
0
270
出前館アプリの品質を支えるリリーストレインとその実践
demaecan
0
320
出前館アプリ進化論 アーキテクチャと組織のリアルな変⾰の舞台裏
demaecan
0
1k
Flutterにしてよかった?出前館アプリを2年運用して気づいたことを全部話します
demaecan
1
1.4k
Boxを“使われる場”にする統制と自動化の仕組み
demaecan
1
550
Other Decks in Technology
See All in Technology
SQL Server 2025 最適化されたロック
odashinsuke
0
100
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
270
Claude起点の仕様駆動開発
tanakaseiya
0
240
DORA_Metrics.pdf
wagnerfusca
1
140
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
judau
1
190
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
0
110
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
780
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
390
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
1
510
音声コミュニティを守るAI監視基盤_ 90%以上の入力削減を支えたServerless設計と運用判断
shuheioka123
0
120
セルフサービスのオブザーバビリティ基盤をOpenTelemetryで作る / Building a Self-Service Observability Platform with OpenTelemetry
ymotongpoo
3
490
Featured
See All Featured
Believing is Seeing
oripsolob
1
230
A Soul's Torment
seathinner
8
3.7k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Technical Leadership for Architectural Decision Making
baasie
3
580
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Everyday Curiosity
cassininazir
0
340
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Claude Code のすすめ
schroneko
67
230k
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