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
25
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
36
Kotlin Multiplatform / Compose Multiplatform を活用したモバイルアプリ開発の最前線
enomotok
0
130
Compose MultiplatformにおけるiOSネイティブ実装のベストプラクティス
enomotok
1
490
STORES ブランドアプリのスケールするアプリづくり
enomotok
0
89
What's new in Xcode 16 ダイジェスト
enomotok
0
860
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
みんなの考えた最強のデータ基盤アーキテクチャ'26前期〜前夜祭〜ルーキーズ_資料_遠藤な
endonanana
0
120
Databricks Academic Series 〜 大規模言語モデル / エージェント編 〜 / academic-series-llm
databricksjapan
0
110
MySQL 9.7がやってきた ~これまでのあらすじと基本情報~ @ 日本MySQLユーザ会会2026年04月 / mysql97-yattekita
sakaik
0
180
エージェント時代の UIとAPI、CLI戦略
coincheck_recruit
0
160
Building a Study Buddy AI Agent from Scratch: From Passive Chatbots to Autonomous Systems
itchimonji
0
140
アクセシビリティはすべての人のもの
tomokusaba
0
290
生成AI時代に信頼性をどう保ち続けるか - Policy as Code の実践
akitok_
0
130
GitHub Copilot Dev Days
tomokusaba
0
150
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
210
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
4
7.3k
色を視る
yuzneri
0
320
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
2.5k
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Rails Girls Zürich Keynote
gr2m
96
14k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
500
Agile that works and the tools we love
rasmusluckow
331
21k
Fireside Chat
paigeccino
42
3.9k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
290
How to Ace a Technical Interview
jacobian
281
24k
The Curse of the Amulet
leimatthew05
1
12k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
170
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 として 今後の資産としても活用できる基盤になった
まとめ
得られたもの 制約から最適解に辿り着く • まず制約をすべて明らかにすること • その中で最も重要なビジネス上の制約を特定し、遵守する • 守るべきものを決めれば、最適な設計は自ずと浮かび上がる