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
『ホットペッパーグルメ』における マルチプラットフォーム化の歩み
Search
Recruit
PRO
March 03, 2025
Technology
2
210
『ホットペッパーグルメ』における マルチプラットフォーム化の歩み
2025/2/19に開催したRecruit Tech Conference 2025の永井の資料です
Recruit
PRO
March 03, 2025
Tweet
Share
More Decks by Recruit
See All by Recruit
事業の財務責任に向き合うリクルートデータプラットフォームのFinOps
recruitengineers
PRO
2
430
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
660
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
4
1.1k
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
4
430
dbtとBigQuery MLで実現する リクルートの営業支援基盤のモデル開発と保守運用
recruitengineers
PRO
5
320
『ホットペッパービューティー』のiOSアプリをUIKitからSwiftUIへ段階的に移行するためにやったこと
recruitengineers
PRO
5
1.9k
経営の意思決定を加速する 「事業KPIダッシュボード」構築の全貌
recruitengineers
PRO
4
510
Browser
recruitengineers
PRO
13
4.3k
JavaScript 研修
recruitengineers
PRO
9
2.4k
Other Decks in Technology
See All in Technology
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
230
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
300
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.8k
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
280
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.4k
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
200
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
150
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
450
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
230
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
180
Featured
See All Featured
New Earth Scene 8
popppiees
1
1.5k
The browser strikes back
jonoalderson
0
370
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
110
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Technical Leadership for Architectural Decision Making
baasie
1
240
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Crafting Experiences
bethany
1
49
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
92
Transcript
『ホットペッパーグルメ』における マルチプラットフォーム化の歩み RECRUIT TECH CONFERENCE 2025 Flutter/KMPを用いたアジリティ追求の軌跡 永井 佑樹 株式会社リクルート プロダクトディベロップメント室
マネジャー
永井 佑樹 育児・料理・筋トレ・ゲーム 経歴 / Career 2014年リクルートに新卒入社。 長年のサービス運営に伴って起こる様々な問題を解決し、更 にアジリティを高めるべく、リクルートでは一部アプリのリ プレイスを進めてきました。現在は『ホットペッパーグル
メ』の開発グループマネジャー。 モバイル技術遍歴: ・『Airレジ』 Swiftフルリプレイス ・『じゃらんnet』 Flutter段階リプレイス ・『ホットペッパーグルメ』KMPフルリプレイス 趣味 / Hobbies プロダクトディベロップメント室 販促領域エンジニアリング2ユニット 飲食領域エンジニアリング部 飲食プロダクト開発1グループ
話すこと • Kotlin Multiplatformを導入した『ホットペッパーグルメ』がなぜ・どのよ うにCompose Multiplatformに取り組むのか
『ホットペッパーグルメ』 飲食店の検索・予約サービス 2020年から2022年にかけてObjective-C&Java からSwift&Kotlinへのフルリプレイスを実施 共通化による工数削減を目的として当時betaだっ たKotlin Multiplatform(KMP)を採用 Objective-C&Javaからのフルリプレイスによりエ ンジニアにとって魅力的な環境に🎉
『ホットペッパーグルメ』におけるKMP KMPとは:Kotlinで書かれたロジックを各プラット フォーム間で再利用する技術 iOS/Android/Shared3つのサブチームで構成される 撤退時もAndroidはそのまま動くという利点から FlutterではなくKMPを採用 iOS Team iOS View
View ViewModel Android Team Android View View ViewModel Shared Team Business logic UseCase Repository Utility チーム構成
Compose Multiplatform Compose Multiplatform は Kotlin と Jetpack Compose をベースとする
Android、iOS、ウェブ、およびデスク トップ(JVM を使用)間で UI を共有するための宣言型フレームワーク https://www.jetbrains.com/ja-jp/kotlin-multiplatform/ 『ホットペッパーグルメ』ではUIも共通化すべく現在画面ごと段階的にJetpack Compose → Compose Multiplatform(CMP)への移行を計画している iOS View Android View TOP 検索条件 検索結果 店舗 SwiftUI XML SwiftUI Compose Compose UIKit Compose 移行イメージ ... Kotlin ロジック
なぜCMPに移行するのか 1. フルリプレイスが一段落してきた中、一層の開発スピードが求められている 2. iOSサポートがbetaまで進み、社内検証の結果からも現実味が出てきた 3. KMP単体だと工数削減効果に限界があることがわかった ◦ コード行数差分、案件リードタイム、実感値など
KMP効果の阻害要因考察 K M P 効 果 の 阻 害 案件特性
片方のOSでのみ実施する A/Bテスト案件が多い プロダクト特性 検索・予約といったAPIに委 ねる処理がほとんどでアプリ 独自に持つビジネスロジック が少ない 体制特性 基本iOS/Android/Sharedそれ ぞれ専任としているためAPIと同 様Sharedに関する設計コミュニ ケーションが発生する ロジックの共通化のみだと旨みが 少なくコミュニケーションコスト がかかる
CMPが解決すること アプリ開発をKMPで完結させられる 1. 片方のOSを先行させる必要がなくなる → 案件特性に依らず共通化メリットを享 受できる 2. iOS/Android/Shared間の境界線がなく なる
→ ワンチームとしての会話が促進される
CMP導入に向けて Android各画面の Jetpack Compose化 iOSでの動作確認 CMP統合 新画面はCMPで リソース管理などはCMP準拠 iOS/Android間の仕様差異解消 ロジック層の設計をCMPに最適化
CMP活動におけるチーム状況 • CMP活用・ワンチームで高速に改善を積み重ねられる状態を目指し全 員がモチベーション高く取り組めている • 新卒社員やインターン生に向けたチャレンジテーマもCMPから多く生 まれている •
🤔 CMPの情報は少なくコミュニティとともに開拓していく必要がある が、Jetpack Composeの知見から流用できるものも多い 今年から積極的にテックブログ等情報発信していく予定です!
まとめ • KMPを用いたフルリプレイスによる技術刷新を行った • 更なる開発効率を求めてCMPによるUI共通化に取り組んでいる