Kotlin Multiplatform (KMP)
2025. 1. 24. 16:21ㆍ개발/개념 및 기법
728x90
반응형
🌟 들어가기 전
하이브리드 앱 하면 흔히들 떠올리는 게 RN과 플러터일까?
하지만 안드로이드에는 KMP가 있다 ~!!
심지어 KMP로는 android, ios 뿐만 아니라 서버까지 가능하다구!!!!!!
그러면 대체 KMP는 무엇이란 말인가.
🔍 세부 내용
Kotlin Multiplatform (KMP)
Kotlin Multiplatform (KMP)는 JetBrains가 개발한 Kotlin 언어를 기반으로
여러 플랫폼(Android, iOS, 웹, 데스크톱 등)에서 공통 코드를 작성하고 재사용 할 수 있도록 지원하는 기능이다.
이를 통해 중복된 코드를 줄이고 생산성을 높이면서도 각 플랫폼의 고유한 기능을 활용할 수 있다.
- 코드 공유: 비즈니스 로직, 데이터 처리, API 호출 등 플랫폼 간 중복된 코드를 통합.
- 플랫폼별 특화 코드 지원: 네이티브 플랫폼(Android, iOS 등)에 특화된 기능을 별도로 구현 가능.
- 효율적 개발: 생산성을 높이고 유지보수를 간소화.
Kotlin Multiplatform이 지원하는 플랫폼
- Android
- iOS
- JVM (Java Virtual Machine): 데스크톱, 서버 애플리케이션.
- JavaScript: 웹 클라이언트 애플리케이션.
- Native: macOS, Windows, Linux 등 네이티브 애플리케이션.
KMP vs Flutter
항목 | Flutter 🦋 | Kotlin Multiplatform (KMP) 🛠️ |
개발 언어 | Dart | Kotlin |
UI 개발 방식 | 자체 UI 엔진(Skia) 사용 | 네이티브 UI 방식 유지 (Jetpack Compose, SwiftUI 등) |
성능 | 네이티브 코드로 컴파일됨 (빠름) | 네이티브 코드로 실행 (최적화 가능) |
플랫폼 지원 | Android, iOS, Web, 데스크톱 | Android, iOS, Web, 데스크톱 |
네이티브 연동 | Method Channel 사용 필요 | 기존 네이티브 코드와 쉽게 연동 가능 |
개발 속도 | 핫 리로드(Hot Reload) 지원 (빠름) | 네이티브 UI는 따로 개발해야 해서 상대적으로 느릴 수 있음 |
생태계 | 풍부한 패키지(Pub.dev) | Kotlin 및 JetBrains 지원 (Jetpack Compose Multiplatform 확장 중) |
코드 공유 범위 | UI + 로직 공유 (완전한 크로스플랫폼) | 주로 비즈니스 로직 공유 (UI는 플랫폼별로 개발) |
기존 네이티브 앱 통합 | 기존 네이티브 앱과 통합이 어려울 수 있음 | 네이티브 앱과 자연스럽게 통합 가능 |
Web 지원 | 지원 (Flutter Web) | 가능하지만 상대적으로 덜 성숙 |
팀 적응 용이성 | Dart 학습 필요 | Android 개발자는 Kotlin 익숙함 |
주요 사용 사례 | 완전한 크로스플랫폼 앱, 빠른 MVP 개발 | 기존 네이티브 앱과 공유 로직 개발 |
- 빠른 개발 + 일관된 UI + Web 지원까지 원한다면? → Flutter
- 네이티브 UI 유지 + 기존 앱과 쉽게 통합하고 싶다면? → KMP
👉 Flutter는 UI까지 완전히 공유하는 풀 크로스플랫폼 프레임워크
👉 KMP는 비즈니스 로직을 공유하면서도 네이티브 UI를 유지 가능
728x90
반응형
'개발 > 개념 및 기법' 카테고리의 다른 글
네트워크 API 통신할 때 suspend 함수 vs Flow (0) | 2025.02.19 |
---|---|
KMP vs CMP (1) | 2025.01.25 |
JVM이란? (1) | 2025.01.23 |
Java에서 try~catch문, 남용하면 문제 없을까? (0) | 2024.07.30 |
[개발 기본 개념]비트 연산자 (0) | 2023.05.26 |