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
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin M...
Search
Masatoshi Kubode
January 15, 2025
Technology
0
400
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
https://sansan.connpass.com/event/339209/
Masatoshi Kubode
January 15, 2025
Tweet
Share
More Decks by Masatoshi Kubode
See All by Masatoshi Kubode
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
560
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
290
技術を根付かせる / How to make technology take root
kubode
1
320
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.2k
Make your Android app into Multiplatform app
kubode
0
140
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
960
Jetpack ComposeのBottomSheetとの戦い / Fight with BottomSheet of Jetpack Compose
kubode
0
720
Mobile Chapterが目指すところと技術 / Vision and Technology of Mobile Chapter at Wantedly
kubode
0
350
ウォンテッドリーでのKMPワークフロー / KMP workflow at Wantedly
kubode
0
1.7k
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile
hr01
0
64k
ユーザーコミュニティが海外スタートアップのDevRelを補完する瞬間
nagauta
0
180
Part2 GitHub Copilotってなんだろう
tomokusaba
2
780
本当に必要なのは「QAという技術」だった!試行錯誤から生まれた、品質とデリバリーの両取りアプローチ / Turns Out, "QA as a Discipline" Was the Key!
ar_tama
9
4.4k
LLMの開発と社会実装の今と未来 / AI Builders' Community (ABC) vol.2
pfn
PRO
1
140
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
5.5k
Google Cloud Next 2025 Recap アプリケーション開発を加速する機能アップデート / Application development-related features of Google Cloud
ryokotmng
0
180
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
120
DynamoDB のデータを QuickSight で可視化する際につまづいたこと/stumbling-blocks-when-visualising-dynamodb-with-quicksight
emiki
0
150
MagicPod MCPサーバー開発の裏側とAIエージェント活用の展望
magicpod
0
120
LINE 購物幕後推手
line_developers_tw
PRO
0
450
RubyKaigi NOC 近況 2025
sorah
1
890
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1031
460k
Unsuck your backbone
ammeep
671
58k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Writing Fast Ruby
sferik
628
61k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
600
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Thoughts on Productivity
jonyablonski
69
4.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Done Done
chrislema
184
16k
Automating Front-end Workflow
addyosmani
1370
200k
Transcript
© 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によってプロセスを改善するのではなく、プロセス改善が先