그 외의 개발 공부
CMP
posite
2026. 3. 15. 15:01
CMP(Compose Multiplatform)란?
- Jetpack Compose의 UI 선언형 방식을 Android 외 플랫폼(iOS, Desktop, Web)으로 확장한 기술
- Jetbrains가 개발한 Kotlin 기반의 멀티플랫폼 UI 프레임워크
주요 특징
- 선언형 UI (Declarative UI) : Jetpack Compose와 동일한 @Composable 함수 기반 UI 작성 방식을 사용 Android 개발자라면 거의 그대로 코드를 옮길 수 있음
- UI 코드 공유 : UI 레이어를 공유함 commonMain 소스셋에서 공통 @Composable을 작성하면 모든 플랫폼에서 동일하게 렌더링됨
- Skia 기반 자체 렌더링 : iOS, Desktop, Web에서는 플랫폼 네이티브 UI 위젯을 사용하지 않고, Skia 그래픽 엔진으로 직접 그려 모든 플랫폼에서 픽셀 단위로 동일한 UI를 보장
- expect/actual 메커니즘 : 플랫폼별로 다르게 구현해야 하는 코드는 expect/actual 키워드로 처리
- Material 3 및 기존 Compose 생태계 호환 : material3, navigation-compose, coil, ktor, sqldelight 등 주요 멀티플랫폼 라이브러리들이 CMP를 지원
- iOS UI 렌더링 차이 : iOS에 새로운 디자인 언어를 도입할 경우, 자동으로 반영하지 못해 수동 구현 필요함