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
480
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
1.1k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
530
技術を根付かせる / How to make technology take root
kubode
1
380
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.3k
Make your Android app into Multiplatform app
kubode
0
170
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.2k
Jetpack ComposeのBottomSheetとの戦い / Fight with BottomSheet of Jetpack Compose
kubode
0
880
Mobile Chapterが目指すところと技術 / Vision and Technology of Mobile Chapter at Wantedly
kubode
0
370
ウォンテッドリーでのKMPワークフロー / KMP workflow at Wantedly
kubode
0
1.8k
Other Decks in Technology
See All in Technology
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい勘所を集めてみました! - / How to start Scrum that is not written in the Scrum Guide 2nd
takaking22
1
160
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
450
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
530
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
190
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
280
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
480
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.3k
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
KotlinConf 2025_イベントレポート
sony
1
140
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
240
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Balancing Empowerment & Direction
lara
3
620
Statistics for Hackers
jakevdp
799
220k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Pragmatic Product Professional
lauravandoore
36
6.9k
BBQ
matthewcrist
89
9.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Scaling GitHub
holman
463
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
930
Building Adaptive Systems
keathley
43
2.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によってプロセスを改善するのではなく、プロセス改善が先