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
반응형