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
『ホットペッパーグルメ』における マルチプラットフォーム化の歩み
Search
Recruit
PRO
March 03, 2025
Technology
310
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
『ホットペッパーグルメ』における マルチプラットフォーム化の歩み
2025/2/19に開催したRecruit Tech Conference 2025の永井の資料です
Recruit
PRO
March 03, 2025
More Decks by Recruit
See All by Recruit
自律型 AI をセキュアに実装!Gemini と MIG で作る動的コード実行環境
recruitengineers
PRO
1
84
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
72
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
6
2.7k
ブラウザ研修 2026
recruitengineers
PRO
8
1.9k
事業価値と Engineering 2026年度版
recruitengineers
PRO
59
30k
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
1.5k
JavaScript 研修 (2026)
recruitengineers
PRO
2
920
TypeScript入門 2026
recruitengineers
PRO
3
1.6k
モダンフロントエンド 開発研修
recruitengineers
PRO
4
1.3k
Other Decks in Technology
See All in Technology
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
1
630
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
250
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
270
The kernel report
ennael
PRO
1
190
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
290
Meet AgentCore Identity Consent Portal
hironobuiga
3
150
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
290
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
130
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
270
猫でもわかるKiro Web
kentapapa
1
160
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
290
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
670
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
142
7.7k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
So, you think you're a good person
axbom
PRO
2
2.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
910
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
How to make the Groovebox
asonas
2
2.5k
What's in a price? How to price your products and services
michaelherold
247
13k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
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共通化に取り組んでいる