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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Masatoshi Kubode
January 15, 2025
Technology
640
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
More Decks by Masatoshi Kubode
See All by Masatoshi Kubode
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
kubode
0
220
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
1.3k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
720
技術を根付かせる / How to make technology take root
kubode
1
500
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.4k
Make your Android app into Multiplatform app
kubode
0
230
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.5k
Jetpack ComposeのBottomSheetとの戦い / Fight with BottomSheet of Jetpack Compose
kubode
0
1.1k
Mobile Chapterが目指すところと技術 / Vision and Technology of Mobile Chapter at Wantedly
kubode
0
440
Other Decks in Technology
See All in Technology
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
490
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
3
600
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
0
190
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
200
チームで進めるAI駆動アジャイル×ウォーターフォール
kumaiu
0
150
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
710
Android の公式 Skill / Android skills
yanzm
0
120
自律型AIエージェントは何を破壊するのか
kojira
0
150
10倍の生産性を実現するAI駆動並列エージェントのすべて
kumaiu
4
1.3k
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
830
FDE という解 ― 暗黙知と明示知をつなぐ、伴走型エンジニアリング ―
otanet
0
130
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
A designer walks into a library…
pauljervisheath
211
24k
Google's AI Overviews - The New Search
badams
0
1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
170
Making the Leap to Tech Lead
cromwellryan
135
9.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
190
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
200
Making Projects Easy
brettharned
120
6.7k
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によってプロセスを改善するのではなく、プロセス改善が先