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