- Cài JDK 17+, Android Studio bản stable và plugin Kotlin Multiplatform
- Cài đúng Android SDK Platform 37.0 và 36, rồi chuẩn bị nơi chạy app: máy Android thật hoặc emulator, và iOS simulator nếu bạn có macOS
Android Studio, JDK và KMP plugin
JDK 17+, Android Studio stable, plugin Kotlin Multiplatform, Xcode nếu bạn dùng macOS, và kdoctor để kiểm tra máy.
Khóa này giúp bạn bắt đầu với Kotlin Multiplatform: bằng một codebase Kotlin duy nhất, một bộ giao diện Compose, app của bạn chạy được trên cả Android và iOS.
Ngày đầu tiên chỉ có một việc: làm cho máy tính của bạn build được project KMP.
Bạn Sẽ Chạy Được Trên Những Đâu
Build được app iOS thì bắt buộc phải có máy macOS.
| Máy của bạn | Android | iOS | Học được khóa này không |
|---|---|---|---|
| Windows | Có | Không | Có. Bỏ qua các bước iOS, mọi thứ khác y hệt |
| Linux | Có | Không | Có. Như trên |
| macOS (Intel) | Có | Có, simulator chậm | Có |
| macOS (Apple) | Có | Có, simulator chạy mượt | Có, trải nghiệm tốt nhất |
Nếu bạn dùng Windows hoặc Linux: đừng bỏ khóa này. Toàn bộ kiến trúc, code và bài tập đều nằm trong phần chia sẻ chung. Bạn chỉ mất phần bấm nút chạy trên iOS. Ngày nào có máy Mac, code của bạn chạy được ngay mà không cần sửa một dòng.
Yêu Cầu Máy Tính
| Thành phần | Tối thiểu | Khuyến nghị |
|---|---|---|
| RAM | 8GB | 16GB |
| Ổ cứng trống | 25GB | 40GB+ |
| OS | Windows 10/11, macOS 14+, Ubuntu 22.04+ | Bản mới nhất |
KMP nặng hơn Android thuần một chút vì phải build cho nhiều target. Nếu máy chỉ có 8GB RAM: bạn vẫn học được, chỉ cần ưu tiên chạy trên máy Android thật thay vì emulator.
Phần 1: JDK 17 Trở Lên
Gradle và Kotlin cần một JDK. Android Studio mang sẵn một bản JDK riêng.
Kiểm tra trước xem đã có chưa:
java -version
Thấy số phiên bản từ 17 trở lên là đủ. Nếu báo lệnh không tồn tại hoặc số nhỏ hơn 17, cài Temurin JDK 21, bản miễn phí, không cần đăng ký.
Vì sao 17 là sàn: Android Gradle Plugin 9 từ chối chạy trên JDK cũ hơn. Project bạn tạo mới bằng KMP wizard dùng AGP 9.1.1, còn TicTac, app của cả khóa, dùng 9.0.1.
Phần 2: Android Studio Và SDK Platform 37, 36
Tải từ trang chính thức: developer.android.com/studio. Chọn bản stable mới nhất. Không chọn Canary hay Beta, các bản đó dành cho người cần tính năng mới và chấp nhận bug.
Bản Studio quá cũ sẽ không mở nổi project dùng AGP 9.1.1 hay 9.0.1; nó báo thẳng là cần bản mới hơn.
Khi trình cài đặt hỏi, giữ nguyên mặc định:
- Android SDK: bắt buộc, đây là toolchain build app.
- Android Virtual Device: giữ, kể cả khi bạn định dùng máy thật.
Lần tải SDK đầu tiên mất 10-20 phút. Cứ để nó chạy trong khi bạn pha một ly cà phê.
Xong rồi thì mở Settings → Languages & Frameworks → Android SDK, tab SDK Platforms, tick Android SDK Platform 37.0 (Android 17) và Android SDK Platform 36 (Android 16) rồi Apply. Nếu tab chỉ hiện tên Android 17, Android 16, bật Show Package Details để thấy tên gói. Project tạo mới bằng KMP wizard biên dịch với compileSdk = 37, còn TicTac dùng compileSdk = 36. Mỗi project biên dịch bằng đúng bản SDK nó khai, nên cần cả hai.
Còn một con số nữa cần biết: minSdk = 24, tức Android 7.0, giống nhau ở cả hai project. Máy Android nào từ 7.0 trở lên đều cài được app bạn build. Máy cũ hơn thì không, và đó là lựa chọn có chủ đích, đổi lấy việc không phải viết code vá cho những bản Android gần như không còn ai dùng.
Phần 3: Plugin Kotlin Multiplatform
Bước này chỉ project KMP mới cần. Plugin này cho phép Android Studio chạy và debug phần iOS ngay trong IDE.
Settings → Plugins → Marketplace, gõ Kotlin Multiplatform, nhấn Install, rồi restart IDE.
Sau khi restart, bạn sẽ thấy thêm cấu hình chạy iosApp trong danh sách run configuration mỗi khi mở một project KMP.
Trên Windows và Linux: plugin vẫn cài được và vẫn hữu ích (nó hiểu cấu trúc source set của KMP), chỉ là mục
iosAppsẽ không chạy được.
Phần 4: Chuẩn Bị Nơi Chạy App
Bạn cần ít nhất một nơi để app hiện ra.
Android: máy thật (khuyến nghị)
- Mở Settings → About phone, nhấn 7 lần vào Build number cho đến khi thấy "You are now a developer".
- Vào Settings → System → Developer options, bật USB debugging.
- Cắm cáp USB. Khi điện thoại hỏi "Allow USB debugging?", chọn Allow.
Android: emulator
- Trong Android Studio, mở Device Manager (icon điện thoại ở thanh bên phải).
- Create Virtual Device → chọn Pixel 8 hoặc bất kỳ Pixel nào.
- Chọn system image mới nhất có nhãn Recommended, tải về nếu chưa có.
- Finish, rồi nhấn nút Play để khởi động.
Lần khởi động đầu tiên chậm. Lần sau nhanh hơn nhiều.
iOS: chỉ trên macOS
- Cài Xcode từ Mac App Store. Nó nặng khoảng 15-25GB.
- Mở Xcode một lần, chấp nhận license, để nó cài nốt các component phụ.
- Chạy lệnh này để trỏ command line tool vào đúng Xcode:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
- Mở một simulator để chắc chắn nó chạy được:
open -a Simulator
Phần 5: Kiểm Tra Bằng kdoctor (Windows, Linux không cần)
Đừng đoán xem máy đã sẵn sàng chưa. kdoctor trả lời chính xác câu đó.
Trên macOS:
brew install kdoctor
kdoctor
kdoctor in ra một danh sách, mỗi dòng một thành phần:
[✓] Operating System
[✓] Java
[✓] Android Studio
[✓] Xcode
[✓] CocoaPods
Dấu ✗ hoặc ! kèm theo mô tả và lệnh cần chạy để sửa. Làm theo đúng thứ tự từ trên xuống, chạy lại kdoctor sau mỗi lần sửa cho đến khi sạch.
Trên Windows và Linux chưa có kdoctor. Bạn kiểm tra tay bằng hai lệnh:
java -version # cần 17 trở lên
adb devices # cần liệt kê ít nhất một device
Kết quả adb devices mong đợi (thiết bị phải chạy Android 7.0 trở lên):
List of devices attached
RF8N30XXXXX device
Nếu danh sách trống:
- Máy thật: rút cáp cắm lại, kiểm tra đã Allow USB debugging chưa, thử cáp khác. Rất nhiều cáp chỉ sạc được chứ không truyền dữ liệu.
- Emulator: kiểm tra emulator đã boot xong chưa (thấy màn hình home của Android).
Nếu adb báo không tìm thấy lệnh, thêm thư mục platform-tools của Android SDK vào biến môi trường PATH. Đường dẫn mặc định:
| OS | Đường dẫn |
|---|---|
| macOS | ~/Library/Android/sdk/platform-tools |
| Linux | ~/Android/Sdk/platform-tools |
| Windows | %LOCALAPPDATA%\Android\Sdk\platform-tools |
Tick hết checkpoint bên phải nghĩa là phần khó nhất của ngày đầu đã qua. Máy của bạn giờ có đủ JDK, Android Studio, SDK Platform 37 và 36, và một nơi để app hiện ra: đúng những gì cần để bắt đầu build.