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
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin M...
Search
Masatoshi Kubode
January 15, 2025
Technology
710
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
https://sansan.connpass.com/event/339209/
Masatoshi Kubode
January 15, 2025
Transcript
21 slides
© 2025 Wantedly, Inc.
© 2025 Wantedly, Inc. WantedlyでのKotlin Multiplatformの導入と課題 Kotlin Multiplatform Night 2025/01/15
久保出雅俊
© 2025 Wantedly, Inc. wantedly.com/id/kubode @swiz_ard @kubode
© 2025 Wantedly, Inc. Agenda 弊社のKMP導入事例を紹介 • 導入した背景 • 導入により得られた成果
• 導入プロセス • 導入後の課題 🙅 KMP自体の紹介、導入時の技術的課題
© 2025 Wantedly, Inc. 導入した背景
© 2025 Wantedly, Inc. 導入したプロダクトの紹介 https://speakerdeck.com/wantedly/for-engineers
© 2025 Wantedly, Inc. 大きく2つの課題 • React Nativeの技術負債化 ◦ メンテナー不在
◦ アップデートが困難に • iOSとAndroidでの動作の不一致 ◦ 詳細仕様や設計書がない ◦ キャッシュ構造 ◦ エラー時の挙動 導入背景 https://www.wantedly.com/companies/wantedly/post_articles/282562
© 2025 Wantedly, Inc. Native UI アーキテクチャ Kotlin Multiplatform Reactor
Action State UseCase GraphQL RestAPI DB Backend
© 2025 Wantedly, Inc. 導入により得られた成果
© 2025 Wantedly, Inc. 課題の解決 • React Nativeを取り除き、技術負債を返済 ◦ モバイルチームの所有物が減りメンテナンス性が向上
• 動作の不一致の改善
© 2025 Wantedly, Inc. 設計プロセスの改善
© 2025 Wantedly, Inc. KMP/iOS/Android並列実装 • KMP側はロジックの内部実装を進める • UI側は設計されたStateをもとにPreview駆動開発 KMP
インターフェー ス 設計・実装 KMP 内部実装 iOS UI実装 Android UI実装 画面仕様 QA リリース 結合
© 2025 Wantedly, Inc. 導入プロセス
© 2025 Wantedly, Inc. チームへの共有やヒアリング • 課題感をチームへ共有、認識を合わせる • 導入検討方針を伝え、懸念や不安を個別にヒアリング ◦
React Nativeと変わらないのでは? ◦ iOSエンジニアのKotlinの学習コスト ◦ 退行プランはどうするのか
© 2025 Wantedly, Inc. 検証フェーズ • 小さく検証し懸念や不安を払拭 • PoCだけでなくプロダクションコードでの実証
© 2025 Wantedly, Inc. 説明責任を果たす KMPはチームのあり方を変える技術 👉 ステークホルダーとの合意形成が必須 ◦ なぜ導入したいのか、長期視点での利点やリスクを説明
◦ 導入検討を伝えることで、欠如した観点を得られる ◦ 合意後も状況共有しつつ導入を進める
© 2025 Wantedly, Inc. 導入後の課題
© 2025 Wantedly, Inc. 定期的な振り返りの実施 検証しても課題はつきもの • 導入後に定期的に振り返りを実施、継 続的に改善 •
導入して終わりにしない
© 2025 Wantedly, Inc. チームに根付かせる 属人化させず、チームにKMPを根付かせる • ドキュメント化 • ペアプロやモブプロの実践
© 2025 Wantedly, Inc. まとめ
© 2025 Wantedly, Inc. まとめ 弊社のKMP導入事例を紹介 • 弊社にとってKMPは、課題解決にマッチした良い技術 • 乗り越えるハードルはあるが、それに見合う利点がある
• 先にプロセスの課題を改善すべきだった ◦ 動作の不一致の課題解決や設計改善は、別の手法でも可能 ◦ KMP導入によるリスクの漏れや過小評価 ◦ KMPによってプロセスを改善するのではなく、プロセス改善が先
More Decks by Masatoshi Kubode
See All by Masatoshi Kubode
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
250
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
kubode
0
320
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
1.4k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
790
技術を根付かせる / How to make technology take root
kubode
1
550
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.5k
Make your Android app into Multiplatform app
kubode
0
270
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.6k
Jetpack ComposeのBottomSheetとの戦い / Fight with BottomSheet of Jetpack Compose
kubode
0
1.2k
Other Decks in Technology
See All in Technology
Shared Signals Framework 仕様解説
oidfj
0
430
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.2k
The Author Pays
hiccupps
0
200
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
430
Where Should Platform Complexity Live? Lessons from a Cross-Team PR Preview Platform
taiki45
0
110
うちなーぐちが認識できるなら、秋田弁もいけるはず!? Amazon Transcribe方言チューニング検証
ryouto715
1
170
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
340
マネージャーをエスパーにしない マネジメントされる側から始める、働きやすい現場づくり
comi190327
0
200
複数システムが同居した 15 年物の AWS アカウントを解体するための考古学
wa6sn
3
150
Linuxネットワークスタック進化の軌跡: 過去10年の歩みと最新トレンド
orimanabu
3
600
Kiro IDE 入門 (画面の各部から、頼み方、任せ方、戻し方まで) | 目指せ Kiro マスター 02
inariku
PRO
4
230
2026-11-11 Tamachi.sre#7 PaCにインフラリソースの命を救われました。 / PaC saves the infra resource life
masasuzu
0
160
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
The SEO identity crisis: Don't let AI make you average
varn
0
630
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
750
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
370
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
900