Để tạo mô-đun Kotlin Multiplatform (KMP) trong dự án Android, hãy sử dụng mẫu Kotlin Multiplatform Shared Module (Mô-đun dùng chung Kotlin Multiplatform) có trong Android Studio Meerkat và Trình bổ trợ Android cho Gradle 8.8.0 trở lên.
Mẫu mô-đun tự động tạo một mô-đun mới với cấu hình tối thiểu nhắm đến nền tảng Android và iOS. KMP cũng hỗ trợ các mục tiêu khác, chẳng hạn như máy tính và web, mà bạn có thể thêm vào mô-đun sau này. Để xem danh sách đầy đủ, hãy xem phần Tính ổn định của các nền tảng được hỗ trợ. Để khai báo một mục tiêu, hãy xem phần Mục tiêu trong tài liệu tham khảo về DSL của Gradle đa nền tảng.
Thiết lập mô-đun KMP dùng chung
Để tạo một mô-đun KMP dùng chung, hãy làm theo các bước sau:
- Chọn File > New > New Module (Tệp > Mới > Mô-đun mới)
- Chọn mẫu Kotlin Multiplatform Shared Module (Mô-đun dùng chung Kotlin Multiplatform) trong bảng điều khiển Templates (Mẫu):
Trong mẫu có các trường như sau:
- Tên mô-đun – xác định tên mô-đun Gradle, cũng như tên khung iOS (có thể thay đổi sau)
- Package name (Tên gói) – xác định tên gói cho các tệp trong mô-đun này
- Nhấp vào Finish (Hoàn tất) và cho phép Gradle đồng bộ hoá với dự án. Bạn cũng có thể được nhắc thêm các tệp mô-đun mới tạo vào chế độ kiểm soát nguồn.
Sau khi hoàn tất, Chế độ xem dự án của Android Studio sẽ hiển thị mô-đun dùng chung mới cùng với một nhóm tài nguyên cho từng nền tảng.
Liên kết mô-đun dùng chung với ứng dụng Android
Trình hướng dẫn mô-đun không thêm mô-đun mới tạo làm phần phụ thuộc vào bất kỳ mô-đun hiện có nào. Bước tiếp theo, bạn cần liên kết mô-đun dùng chung với một trong các mô-đun Gradle hiện có, tương tự như các phần phụ thuộc Android khác:
dependencies {
...
implementation(project(":shared"))
}
Sau khi bật, bạn có thể truy cập vào mã truy cập như bình thường. Trong ứng dụng Android, bạn có thể truy cập vào mã có trong androidMain hoặc commonMain.
Để biết thêm thông tin về cấu trúc dự án Kotlin Multiplatform, hãy xem kiến thức cơ bản về cấu trúc dự án Kotlin Multiplatform
Thiết lập mô-đun dùng chung cho ứng dụng iOS
Swift không thể sử dụng trực tiếp mô-đun Kotlin và yêu cầu tạo một khung nhị phân đã biên dịch.
Mẫu mô-đun mới trong Android Studio định cấu hình mô-đun dùng chung để tạo khung cho từng cấu trúc iOS. Bạn có thể tìm thấy mã sau đây trong tệp build.gradle.kts của mô-đun dùng chung:
val xcfName = "sharedKit"
iosX64 {
binaries.framework {
baseName = xcfName
}
}
iosArm64 {
binaries.framework {
baseName = xcfName
}
}
iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}
Xem phần Cấu trúc dự án phân cấp để biết thông tin về cách xác định các loại cấu trúc khác.
Liên kết thư viện dùng chung trong dự án iOS
Để cho phép truy cập vào mã dùng chung từ dự án iOS, hãy thêm một giai đoạn tập lệnh để tạo khung Kotlin trước khi biên dịch các nguồn Swift:
- Nhấp chuột phải vào tệp đó trong Android Studio rồi chọn Open In (Mở trong) và Open in Associated Application (Mở trong ứng dụng liên kết). Thao tác này sẽ mở ứng dụng iOS trong Xcode.
- Mở phần cài đặt dự án bằng cách nhấp đúp vào tên dự án trong trình điều hướng dự án
- Thay đổi tên Run Script (Chạy tập lệnh) mặc định thành Compile Kotlin Framework (Biên dịch khung Kotlin) để dễ xác định chức năng của giai đoạn này. Nhấp đúp vào tiêu đề Run Script (Chạy tập lệnh) để chỉnh sửa.
- Mở rộng giai đoạn tạo và trong trường văn bản Shell (Màn hình shell), hãy nhập mã tập lệnh sau:
Kéo giai đoạn Run Script (Chạy tập lệnh) trước giai đoạn Compile Sources (Biên dịch nguồn).
Hình 6. Chạy giai đoạn tạo tập lệnh trước khi biên dịch nguồn Tạo dự án trong Xcode bằng cách nhấp vào tổ hợp phím ⌘B hoặc chuyển đến trình đơn Product (Sản phẩm) rồi chọn Build (Tạo).
Khi tạo bản dựng thành công, bạn sẽ thấy biểu tượng sau.
Truy cập vào mã dùng chung trong ứng dụng iOS
Để xác minh rằng ứng dụng iOS có thể truy cập thành công vào mã từ mô-đun dùng chung, hãy làm như sau:
- Trong dự án iOS, hãy mở tệp
ContentView.swifttại:Sources/View/ContentView.swift - Thêm lệnh nhập
sharedKitở đầu tệp. - Sửa đổi khung hiển thị Text (Văn bản) để đưa thông tin
Platform_iosKt.platform()vào chuỗi được hiển thị như sau:
Quá trình cập nhật này kiểm tra xem ứng dụng có thể gọi hàm platform() từ mô-đun dùng chung hay không. Hàm này sẽ trả về "iOS" khi chạy trên nền tảng iOS.
Tài nguyên khác
- Nếu bạn mới làm quen với việc phát triển KMP, hãy xem tài liệu chính thức về KMP để biết thêm hướng dẫn.
- Nếu bạn mới làm quen với việc phát triển ứng dụng iOS, hãy xem tài liệu về Kiến thức cơ bản về Swift.
- Để biết các vấn đề thường gặp khi thiết lập KMP, hãy xem phần Khắc phục sự cố trong hướng dẫn bắt đầu nhanh về KMP.
- Để xem các ứng dụng mẫu, hãy xem phần Mẫu Kotlin Multiplatform cho Android.