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
590
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
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
kubode
0
140
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
1.3k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
660
技術を根付かせる / How to make technology take root
kubode
1
460
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.4k
Make your Android app into Multiplatform app
kubode
0
210
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.4k
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
410
Other Decks in Technology
See All in Technology
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
7
7.1k
Master Dataグループ紹介資料
sansan33
PRO
1
4.4k
プロジェクトマネジメントをチームに宿す -ゼロからはじめるチームプロジェクトマネジメントは活動1年未満のチームの教科書です- / 20260304 Shigeki Morizane
shift_evolve
PRO
1
120
モブプログラミング再入門 ー 基本から見直す、AI時代のチーム開発の選択肢 ー / A Re-introduction of Mob Programming
takaking22
1
150
バクラクのSREにおけるAgentic AIへの挑戦/Our Journey with Agentic AI
taddy_919
2
1.1k
AIエンジニア Devin と歩む、自律型運用プロセスの構築
a2ito
0
710
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
95k
大規模サービスにおける レガシーコードからReactへの移行
magicpod
1
140
Startups on Rails: 2026 at RubyConf Thailand
irinanazarova
0
130
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.3k
オンプレとGoogle Cloudを安全に繋ぐための、セキュア通信の勘所
waiwai2111
3
1.1k
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
220
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Discover your Explorer Soul
emna__ayadi
2
1.1k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Typedesign – Prime Four
hannesfritz
42
3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
850
How STYLIGHT went responsive
nonsquared
100
6k
First, design no harm
axbom
PRO
2
1.1k
Six Lessons from altMBA
skipperchong
29
4.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
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によってプロセスを改善するのではなく、プロセス改善が先