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
250
2
Share
『ホットペッパーグルメ』における マルチプラットフォーム化の歩み
2025/2/19に開催したRecruit Tech Conference 2025の永井の資料です
Recruit
PRO
March 03, 2025
More Decks by Recruit
See All by Recruit
まなび領域における生成AI活用事例
recruitengineers
PRO
2
190
AI時代にエンジニアはどう成長すれば良いのか?
recruitengineers
PRO
1
340
AIを用いたカスタマーサポートの業務プロセス・組織変革の実現
recruitengineers
PRO
1
180
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
280
「Air ビジネスツールズ」のクライアントサポートにおける生成 AI 活用
recruitengineers
PRO
0
130
AI活用のためのアナリティクスエンジニアリング
recruitengineers
PRO
2
200
SaaS事業のデータマネジメント事例
recruitengineers
PRO
0
160
Kaggleで鍛えたスキルの実務での活かし方 競技とプロダクト開発のリアル
recruitengineers
PRO
1
520
LLM のプロダクト導入における開発の裏側と技術的挑戦
recruitengineers
PRO
1
230
Other Decks in Technology
See All in Technology
聞き手の目線で考えるプロポーザル
takefumiyoshii
0
440
自分のハンドルは自分で握れ! ― 自分のケイパビリティを増やし、メンバーのケイパビリティ獲得を支援する ― / Take the wheel yourself
takaking22
1
650
The Journey of Box Building
tagomoris
4
210
60分で学ぶ最新Webフロントエンド
mizdra
PRO
33
17k
「責任あるAIエージェント」こそ自社で開発しよう!
minorun365
4
550
ぼくがかんがえたさいきょうのあうとぷっと
yama3133
0
150
Zero-Downtime Migration: Moving a Massive, Historic iOS App from CocoaPods to SPM and Tuist without Stopping Feature Delivery
kagemiku
0
240
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
120
みんなで作るAWS Tips 100連発 (FinOps編)
schwrzktz
1
250
インフラを Excel 管理していた組織が 3 ヶ月で IaC 化されるまで
geekplus_tech
3
200
JEDAI in Osaka 2026イントロ
taka_aki
0
230
NOSTR, réseau social et espace de liberté décentralisé
rlifchitz
0
190
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
180
Bash Introduction
62gerente
615
210k
Paper Plane (Part 1)
katiecoart
PRO
0
6.6k
Accessibility Awareness
sabderemane
0
99
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
710
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
360
Code Reviewing Like a Champion
maltzj
528
40k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Embracing the Ebb and Flow
colly
88
5k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Chasing Engaging Ingredients in Design
codingconduct
0
170
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共通化に取り組んでいる