KMP vs CMP
2025. 1. 25. 19:56ㆍ개발/개념 및 기법
728x90
반응형
🌟 들어가기 전
지난 번에는 Android와 iOS 모두 개발 가능한 KMP를 알아보았다.
그런데 이건 UI를 각각 네이티브에 맞춰 따로 개발해야 하는 이슈 !!!
그럼 내가 SwiftUI를 다시 배워야 하냐구우~?!?!?!?!!!
그래서 그럴 필요가 없는 CMP를 체크 ✅
🔍 세부 내용
KMP (Kotlin Multiplatform)
정의: Kotlin을 사용하여 여러 플랫폼(Android, iOS, JVM, JS 등)에서 동작하는 코드를 작성할 수 있도록 하는 기술.
주요 특징:
- 공유 코드: 비즈니스 로직, 네트워크, 데이터 레이어 등을 공통 모듈에서 구현 가능.
- 각 플랫폼별 구현 가능: expect/actual 키워드를 사용해 플랫폼별 코드 작성 가능.
- UI 분리: 각각의 플랫폼에 맞춰 UI 제작
CMP (Compose Multiplatform)
정의: Jetpack Compose를 여러 플랫폼(Android, iOS, 데스크탑, 웹)에서 사용하도록 만든 멀티플랫폼 UI 프레임워크.
주요 특징:
- UI 공유 가능: Kotlin 코드로 Android, iOS, 데스크탑 등에서 동일한 Compose UI 사용 가능.
- Compose 기반: 기존 Android Compose와 유사한 방식으로 UI 개발 가능.
- KMP와 함께 사용 가능: KMP의 로직과 CMP의 UI를 결합하여 멀티플랫폼 앱 개발 가능.
KMP vs CMP 차이점 요약
KMP | CMP | |
역할 | 비즈니스 로직 공유 (네트워크, DB 등) | UI 공유 (Compose 기반) |
지원 플랫폼 | Android, iOS, JVM, JS 등 | Android, iOS, 데스크탑, 웹 |
UI 공유 여부 | ❌ (Compose 미지원) | ✅ (Compose 기반 UI 공유 가능) |
사용 예시 | 네트워크 API, 데이터 저장소, 비즈니스 로직 공유 | Android/iOS/데스크탑용 Compose UI 개발 |
- 비즈니스 로직을 공유하려면 KMP
- UI까지 공유하려면 CMP (KMP와 함께 사용 가능)
728x90
반응형
'개발 > 개념 및 기법' 카테고리의 다른 글
오버헤드(overhead)와 스택 오버플로우(Stack Overflow), 왜 발생하고 어떻게 해결할까? (0) | 2025.03.04 |
---|---|
네트워크 API 통신할 때 suspend 함수 vs Flow (0) | 2025.02.19 |
Kotlin Multiplatform (KMP) (0) | 2025.01.24 |
JVM이란? (1) | 2025.01.23 |
Java에서 try~catch문, 남용하면 문제 없을까? (0) | 2024.07.30 |