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
iOSDC2025_ソニーのKMP/CMP挑戦記
Search
ソニー株式会社
September 19, 2025
1.6k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSDC2025_ソニーのKMP/CMP挑戦記
ソニー株式会社
September 19, 2025
More Decks by ソニー株式会社
See All by ソニー株式会社
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
430
Sony-DroidKaigi2026
sony
1
1.1k
Flutterをカメラで動かしたかった話
sony
1
240
Sony_KMP_Journey_KotlinConf2026
sony
3
310
ソニーのスマホ通信制御エンジニアから東大博士へ~東大で 5G/6G研究に挑んだ 3年間~
sony
1
380
ソニー Creators' Cloudチームのハッカソン~生成AIで加速するイノベーション~
sony
1
250
Connpass-Xperia_Camera_App_by_HCD.pdf
sony
2
850
GitHub を組織的に使いこなすために ソニーが実践した全社展開のプラクティス
sony
28
20k
マイクロリブート ~ACEマインドセットで実現するアジャイル~
sony
2
930
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
sira's awesome portfolio website redesign presentation
elsirapls
0
440
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Bash Introduction
62gerente
615
220k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
The Curious Case for Waylosing
cassininazir
1
550
Transcript
@sergiocarrilho Sergio Carrilho ソニーのKMP/CMP挑戦記 Sony’s Story with KMP/CMP TechLead |
Sony
iOSエンジニアの可能性を広げる ソニーがKotlin/Compose Multiplatformに挑戦した理由 (あなたもぜひ)
iOSエンジニアの可能性を広げる ソニーがKotlin/Compose Multiplatformに挑戦した理由 (あなたもぜひ????)
01 Why KMP/CMP 02 How we did it? 03 Should
you do it?
None
2018
>>Next project...
UI UI Biz Logic Biz Logic Until now
UI UI Goal Biz Logic
Sensing trigger Context Action data
Requirement 1.iOS & Android 2.High performance 3.Platform APIs (BLE, GPS,
BG...)
Why
UI UI Business/Domain Data/Core iOS APIs Android APIs iOS Android
KMP (shared)
Native UIs Bytecode LLVM Kotlin Multiplatform JVM Kotlin/Native
Bytecode LLVM Kotlin Multiplatform JVM Kotlin/Native iOS framework
expect fun / class actual fun / class actual fun
/ class Common
expect fun randomUUID(): String import java.util.* actual fun randomUUID() =
UUID.randomUUID().toString() import platform.Foundation.NSUUID actual fun randomUUID(): String = NSUUID().UUIDString() Common
HOW Part 2
Hexagonal Architecture
None
Core: Biz logic, platform agnostic
Core: Biz logic, platform agnostic Platform: iOS/Android
Platform: iOS/Android Core: Biz logic, platform agnostic External / cloud:
Sensor, biz intelligence
Platform: iOS/Android Core: Biz logic, platform agnostic Adapters External /
cloud: Sensor, biz intelligence
2021 2023
2023
2023 Sony | Headphones Connect Sony | Sound Connect
Compose Multiplatform
UI UI Business/Domain Data/Core Presentation Presentation iOS Android KMP(shared) Kotlin
Multiplatform
iOS specific Android specific Business/Domain Data/Core iOS Android KMP(shared) Compose
Multiplatform UI Presentation
None
None
iOS Android
None
Maps
None
Results
55 55% % iOS iOS users P E R P
L AT FO R M
Code L A N G U AG E D I
ST. 80 20 Multiplatform Native
SHOULD YOU DO IT? Part 3
it depends...
Stick to iOS if... You want full iOS UX Target
market is iOS
Try KMP/CMP if... iOS Dev → Mobile Dev Expand to
other platforms A lot of common biz logic (>10%)
start
None
None
Kotlin/Swift Mapping Kotlin Swift Class Class Interface Protocol Constructor Initializer
Property Property Method Method null nil Kotlin Swift Unit Void String String List Array Set Set Map Dictionary Function type Function type
suspend vs async
None
iOS/Android dev Development Duplication Unification Mobile dev Users
TRY IT just
None