Skip to Content
Kotlin Multiplatform👋 Giới thiệu KMP

Kotlin Multiplatform (KMP)

KMP là gì?

Kotlin Multiplatform (KMP) là công nghệ cho phép bạn viết code một lần và chạy trên nhiều nền tảng:

  • 📱 Android
  • 🍎 iOS
  • 🖥️ Desktop (Windows, macOS, Linux)
  • 🌐 Web
  • ⚙️ Backend

Điểm khác biệt với các giải pháp cross-platform khác

KMPFlutterReact Native
UINative hoặc Compose MultiplatformCustom (Skia)Native bridge
PerformanceNativeNear-nativeBridge overhead
Logic sharing✅ Business logicUI + LogicUI + Logic
Native integrationDễ dàngCần channelCần bridge
LanguageKotlinDartJavaScript
ByJetBrainsGoogleMeta

KMP vs Compose Multiplatform

  • KMP: Chia sẻ business logic (networking, database, domain…)
  • Compose Multiplatform: Chia sẻ cả UI bằng Jetpack Compose
┌─────────────────────────────────────────┐ │ Compose Multiplatform │ │ (UI chung cho Android, iOS, ...) │ ├─────────────────────────────────────────┤ │ Kotlin Multiplatform (KMP) │ │ (Business logic, data, domain) │ ├─────────────────────────────────────────┤ │ Platform Code │ │ (Android SDK, iOS SDK, JS, JVM) │ └─────────────────────────────────────────┘

Tại sao nên học KMP?

1. Giảm thời gian phát triển

  • Viết business logic một lần
  • Cập nhật bug fix một chỗ
  • Testing tập trung

2. Sử dụng Kotlin - ngôn ngữ hiện đại

  • Nếu bạn đã biết Kotlin (từ Android), chuyển sang KMP rất nhanh
  • Null safety, coroutines, extension functions…

3. Được Google và JetBrains hỗ trợ

  • Google dùng KMP trong các app: Google Docs, Drive, Sheets
  • JetBrains phát triển tích cực với Android Studio hỗ trợ tốt

4. Native Performance

  • Code Kotlin được compile thành native code cho từng platform
  • Không có overhead như các giải pháp bridge

5. Dễ tích hợp vào dự án hiện có

  • Có thể thêm KMP vào app Android/iOS đang có
  • Không cần viết lại từ đầu

Các use cases phù hợp

✅ Phù hợp

  • Chia sẻ business logic giữa Android và iOS
  • Backend cùng dùng Kotlin
  • App có logic phức tạp cần consistency
  • Team đã biết Kotlin

⚠️ Cần cân nhắc

  • App đơn giản chỉ cần một platform
  • Team không biết Kotlin
  • Cần native UI phức tạp đặc thù từng platform

Bắt đầu từ đâu?

Prerequisites (Kiến thức cần có)

Lộ trình học

Xem Lộ trình học KMP để có hướng dẫn chi tiết.


📚 Tài liệu tham khảo

Last updated on