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
調理場で使うタブレット専用アプリ をどうつくったか -STORES モバイルオーダー 実装の...
Search
Kenta Enomoto
December 04, 2025
Technology
29
0
Share
調理場で使うタブレット専用アプリ をどうつくったか -STORES モバイルオーダー 実装の舞台裏-
STORES Tech Conf 2025 "What would you do?" で登壇した際の資料です
https://storesinc.tech/conf/2025
Kenta Enomoto
December 04, 2025
More Decks by Kenta Enomoto
See All by Kenta Enomoto
[DroidKaigi 2025] 共有と分離 - Compose Multiplatform "本番導入" の設計指針
enomotok
0
43
Kotlin Multiplatform / Compose Multiplatform を活用したモバイルアプリ開発の最前線
enomotok
0
130
Compose MultiplatformにおけるiOSネイティブ実装のベストプラクティス
enomotok
1
500
STORES ブランドアプリのスケールするアプリづくり
enomotok
0
94
What's new in Xcode 16 ダイジェスト
enomotok
0
870
Introducing Pkl
enomotok
0
3.1k
iOS リポジトリへの Renovate の導入
enomotok
2
440
iOS開発とGitLab CI
enomotok
7
4.1k
ポモドーロテクニックについて
enomotok
0
180
Other Decks in Technology
See All in Technology
GoとSIMDとWasmの今。
askua
3
490
そのPoC、何を検証したつもりでしたか? AIプロダクトの価値検証で陥った落とし穴
techtekt
PRO
0
140
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
230
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
210
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
5
3.5k
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
240
TypeScript Compiler APIとPHP-Parserを活用し、TypeScriptとPHPで型を共有する
shuta13
0
360
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
サイバーセキュリティ概論 / Introduction to Cybersecurity
ks91
PRO
0
140
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.4k
「気づいたら仕事が終わっている」バクラクAIエージェント本番運用の裏側 / layerx-bakuraku-aie2026
yuya4
18
9.8k
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
490
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
320
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Faster Mobile Websites
deanohume
310
31k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Designing for humans not robots
tammielis
254
26k
Facilitating Awesome Meetings
lara
57
6.9k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Between Models and Reality
mayunak
4
320
Transcript
調理場で使うタブレット専用アプリ をどうつくったか -STORES モバイルオーダー 実装の舞台裏- Kenta Enomoto
榎本 健太 STORES ブランドアプリチーム iOS エンジニア enomot_ enomoto 自己紹介
1. STORES モバイルオーダーとは 2. 私たちが直面した「制約」 3. 制約の中で下した判断 4. 開発の結果とタイムライン 5.
まとめ アジェンダ
STORES モバイルオーダー とは
注文から決済、受け取りまでを スムーズにデジタル化するプロダクト STORES モバイルオーダーとは • モバイルオーダーサービスを 簡単に導入できる仕組み • 注文、決済、受け取りまでをス ムーズに
キッチンディスプレイとは 調理場で使われるタブレット専用アプリ • 調理場でオーダー情報をリア ルタイムに把握 • オーダーのステータスを変更 し、お客さまに進捗を通知
2. 私たちが直面 した「制約」
制約 6 1. 調理場特有の要件 2. ビジネスのスピード感と、限られたリソースによる、 事業上の制約
制約①:調理場特有の要件 一般的なアプリとは異なる現場環境からの要求 • 一覧性 ◦ 一画面で必要な情報がすべてわかるUI • 即時性 ◦ 新しい注文に「すぐ」気づくことができる通知やUI
• 堅牢性 (端末) ◦ 故障に強い端末(例:防水性)を選択可能であること
実際に使われている現場 (iki Roastery & Eatery さま)
実際に使われている現場 (iki Roastery & Eatery さま)
実際に使われている現場 (iki Roastery & Eatery さま)
実際に使われている現場の様子 (iki Roastery & Eatery さま)
制約①:調理場特有の要件(再掲) 一般的なアプリとは異なる現場環境からの要求 • 一覧性 ◦ 一画面で必要な情報がすべてわかるUI • 即時性 ◦ 新しい注文に「すぐ」気づくことができる通知やUI
• 堅牢性 (端末) ◦ 故障に強い端末(例:防水性)を選択可能であること
制約②:事業上の制約 ビジネスのスピード感と、限られたリソースによる制約 • ゼロからの新規開発 • ビジネス要求に応えるための早期リリース • Android版 のリリースが必須 ◦
端末の選択肢のため • 少人数チームと技術スタックの制限
制約の中で下した 判断
制約の中でどのように判断をしたか MUST/前提として満たす必要あり • Android版の提供 • 一画面で情報がわかる UI • 早期リリース •
エンジニアリソースの不足 • ゼロからの開発 WANT/妥協できる • ネイティブらしいリッチな UI ◦ 凝ったアニメーション ◦ 複雑で美しいデザイン • iOS版の早期リリース 全てはトレードオフである
制約への回答 1. Kotlin Multi Platform / Compose Multi Platform という技術選定
◦ Android 版の提供 ◦ 早期リリース ◦ エンジニアリソースの不足 2. UI 設計による問題解決 ◦ 一画面で情報がわかるUI
制約への回答①:技術選定 Kotlin Multiplatform / Compose Multiplatform (KMP / CMP) Shared
UI Compose Multiplatform Shared logic Kotlin Multiplatform
制約への回答①:技術選定 Kotlin Multiplatform / Compose Multiplatform を選定 • Android 版を先行リリース
• iOS 版も要望が上がる可能性が高い • 仮に iOS をネイティブで作り直しになっても、 KMP / CMP の コードは Android の資産として活かせる • 業務アプリのため、プラットフォーム固有の UI の作り込みは少 ない
技術選定上の工夫 プロトタイピング • リリース前の時点では CMP を用いた事例はまだ少なかった • 実装に先駆けて2週間のプロトタイピングを実施 • マルチプラットフォーム環境での開発効率を検証
KMP/CMP による実装の詳細を知りたい方へ https://2025.droidkaigi.jp/timetable/944860/
制約への回答②:UI設計と工夫 • 1画面で情報がわかる UI の設計 • ボトムシート UI
制約への回答②:UI設計と工夫 1画面で情報がわかる UI の設計
制約への回答②:UI設計と工夫 ボトムシート UI
開発の結果と タイムライン
Android 版の成果 Android 版 • 通常の Android ネイティブ開発に対して、1.3倍程度の工数でリ リース (KMP/CMP
のキャッチアップも含む) • Jetpack Compose の知識があれば UI 実装で迷う部分は少な い
iOS 版の成果 iOS 版 • 実装着手からおよそ 2 ヶ月でリリース • Android
版と 90 %のコードを共有 • コードを共有できないだけモジュール分割と DI を用いて分離す る手法を用いた
開発タイムライン プロダクト 構想 2024/03 Android版 開発着手 2024/08 Android版 リリース 2024/12
2025/03 iOS版 リリース 制約の中での迅速なリリースを実現 技術選定/ 設計
得られたもの 採用した技術選定は、 STORES として 今後の資産としても活用できる基盤になった
まとめ
得られたもの 制約から最適解に辿り着く • まず制約をすべて明らかにすること • その中で最も重要なビジネス上の制約を特定し、遵守する • 守るべきものを決めれば、最適な設計は自ずと浮かび上がる