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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kenta Enomoto
December 04, 2025
Technology
30
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
調理場で使うタブレット専用アプリ をどうつくったか -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
46
Kotlin Multiplatform / Compose Multiplatform を活用したモバイルアプリ開発の最前線
enomotok
0
140
Compose MultiplatformにおけるiOSネイティブ実装のベストプラクティス
enomotok
1
510
STORES ブランドアプリのスケールするアプリづくり
enomotok
0
95
What's new in Xcode 16 ダイジェスト
enomotok
0
880
Introducing Pkl
enomotok
0
3.1k
iOS リポジトリへの Renovate の導入
enomotok
2
440
iOS開発とGitLab CI
enomotok
7
4.1k
ポモドーロテクニックについて
enomotok
0
190
Other Decks in Technology
See All in Technology
20260619 私の日常業務での生成 AI 活用
masaruogura
1
220
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
520
攻撃者視点で考えるDetection Engineering
cryptopeg
3
1.9k
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1.2k
連合学習と機密コンピューティング
lycorptech_jp
PRO
0
120
【NRUG vol.18】KubernetesにおけるNew Relicデータ取得量削減の考え方
nrug_member
0
160
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
210
MCP Appsを作ってみよう
iwamot
PRO
4
670
失敗を資産に変えるClaude Code
shinyasaita
0
690
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
230
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
360
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
220
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
So, you think you're a good person
axbom
PRO
2
2.1k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Mind Mapping
helmedeiros
PRO
1
250
WENDY [Excerpt]
tessaabrams
11
38k
Designing for Performance
lara
611
70k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
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 として 今後の資産としても活用できる基盤になった
まとめ
得られたもの 制約から最適解に辿り着く • まず制約をすべて明らかにすること • その中で最も重要なビジネス上の制約を特定し、遵守する • 守るべきものを決めれば、最適な設計は自ずと浮かび上がる