Kotlin 멀티플랫폼 (KMP)을 사용하면 여러 플랫폼에서 Kotlin 코드를 공유할 수 있습니다. Kotlin Multiplatform은 JetBrains에서 개발한 것으로, KMP를 사용하여 모바일 플랫폼을 타겟팅하는 것은 안정적이고 프로덕션에 즉시 사용할 수 있습니다.
멀티플랫폼 Jetpack 라이브러리
Kotlin 멀티플랫폼은 Android와 iOS 간에 비즈니스 로직을 공유하기 위해 Google에서 공식적으로 지원합니다. 많은 Jetpack 라이브러리가 이미 KMP를 활용하도록 이전되었습니다.
다음 Jetpack 라이브러리는 KMP를 지원합니다.
Maven 그룹 ID | 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 | 문서 |
---|---|---|---|---|---|---|
annotation(*) | 2025년 5월 7일 | 1.9.1 | - | - | - | |
collection | 2025년 3월 12일 | 1.5.0 | - | - | - | |
Datastore | 2025년 5월 20일 | 1.1.7 | - | - | 1.2.0-alpha02 | 문서 |
lifecycle(*) | 2025년 7월 2일 | 2.9.1 | - | - | - | |
paging(*) | 2025년 7월 2일 | 3.3.6 | - | - | 3.4.0-alpha01 | |
room | 2025년 6월 18일 | 2.7.2 | - | - | - | 문서 |
savedstate | 2025년 7월 2일 | 1.3.1 | - | - | - | |
sqlite | 2025년 6월 18일 | 2.5.2 | - | - | - | 문서 |
참조 문서
이러한 라이브러리의 참조 문서에서는 일반 코드, Android, 네이티브의 가용성을 기준으로 API (예: DataStoreFactory
)를 표시합니다. 각 페이지 상단에서 플랫폼별로 선언을 필터링할 수도 있습니다.
지원되는 플랫폼
공식적으로 지원되는 플랫폼인 Android 및 iOS용 Jetpack 라이브러리 출시에서는 동일한 품질 및 호환성 요구사항을 유지합니다. 하지만 Jetpack의 Kotlin 멀티플랫폼 지원을 다른 플랫폼으로 확장하기 위해 노력하고 있으므로 도구 및 인프라 지원은 아직 개발 중일 수 있습니다.
각 플랫폼의 현재 지원 수준은 다음과 같이 등급으로 요약할 수 있습니다.
Tier 1:
- CI에서 완전히 테스트됨(호스트 측 테스트와 기기 내 테스트 모두 포함)
- 시맨틱 버전 관리 정책에 따른 소스 및 바이너리 호환성 추적
Tier 2:
- CI에서 부분적으로 테스트됨, 호스트 측 테스트로 제한됨
- 소스 또는 바이너리 호환성 추적 없음
Tier 3:
- CI에서 테스트되지 않음
- 소스 또는 바이너리 호환성 추적 없음
플랫폼 | 지원 수준 |
---|---|
Android | Tier 1 |
JVM | Tier 1 |
iOS | Tier 1 |
macOS | 등급 2 |
Linux | 등급 2 |
watchOS | Tier 3 |
tvOS | Tier 3 |
Windows | Tier 3 |
JavaScript | Tier 3 |
WASM | Tier 3 |
도구 지원
Android 스튜디오에서 멀티플랫폼 프로젝트를 열고, 수정하고, 실행할 수 있습니다. 단, 이들 프로젝트에서는 아직 일부 IDE 기능을 사용할 수 없습니다. 새 프로젝트를 만들려면 JetBrains의 Kotlin 멀티플랫폼 마법사를 사용하거나 Kotlin 멀티플랫폼 Android 스튜디오 플러그인을 사용하면 됩니다.
Google에서는 Android Gradle 플러그인이 Kotlin 멀티플랫폼과 호환되도록 새 버전의 핵심 시나리오를 테스트하고 있습니다.
추가 리소스
kotlin-multiplatform-samples - KMP 프로젝트에서 Jetpack 라이브러리의 일부 기능을 보여줍니다.
KMP Codelab 시작하기 - 프로젝트에 KMP를 추가하는 방법을 안내하는 온보딩입니다.
Room을 Room KMP로 이전 Codelab - Android 전용 Room을 KMP로 안내에 따라 이전합니다.
의견
이러한 라이브러리에 관한 의견이 있으면 Issue Tracker를 통해 공유해 주세요.