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
150
『ホットペッパーグルメ』における マルチプラットフォーム化の歩み
2025/2/19に開催したRecruit Tech Conference 2025の永井の資料です
Recruit
PRO
March 03, 2025
Tweet
Share
More Decks by Recruit
See All by Recruit
Browser
recruitengineers
PRO
9
2.9k
JavaScript 研修
recruitengineers
PRO
8
1.7k
TypeScript入門
recruitengineers
PRO
36
12k
モダンフロントエンド 開発研修
recruitengineers
PRO
12
6.9k
Webアクセシビリティ入門
recruitengineers
PRO
4
1.8k
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
4
2.2k
モバイルアプリ研修
recruitengineers
PRO
6
1.9k
事業価値と Engineering
recruitengineers
PRO
10
6.2k
制約理論(ToC)入門
recruitengineers
PRO
10
4.3k
Other Decks in Technology
See All in Technology
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
2025年になってもまだMySQLが好き
yoku0825
8
4.8k
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
310
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
220
La gouvernance territoriale des données grâce à la plateforme Terreze
bluehats
0
180
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
160
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
1
260
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.5k
Rustから学ぶ 非同期処理の仕組み
skanehira
1
140
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
210
Featured
See All Featured
A Tale of Four Properties
chriscoyier
160
23k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Docker and Python
trallard
46
3.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
113
20k
The Cult of Friendly URLs
andyhume
79
6.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Being A Developer After 40
akosma
90
590k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
The Invisible Side of Design
smashingmag
301
51k
Fireside Chat
paigeccino
39
3.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
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共通化に取り組んでいる