- vừa được xem lúc

Google chính thức hỗ trợ Kotlin Multiplatform

0 0 7

Người đăng: Tuyển Thủ Lon Nước Ngọt

Theo Viblo Asia

Mở đầu

Theo truyền thống, các nhà phát triển phải viết mã riêng cho từng nền tảng mà họ muốn nhắm mục tiêu hoặc thực hiện một số thỏa hiệp để sử dụng lại mã trên các nền tảng. Android đã tích cực hỗ trợ Kotlin kể từ năm 2017 và hôm nay, Google vui mừng thông báo rằng đang hỗ trợ Kotlin Multiplatform trên Android , cho phép chia sẻ mã trên các nền tảng di động, web, máy chủ và máy tính để bàn. Điều này giúp tăng năng suất cho các nhà phát triển và rất phù hợp với phương pháp ưu tiên Kotlin của Android , mang lại ứng dụng Android có chất lượng cao hơn. Trọng tâm của Google là hỗ trợ chia sẻ logic kinh doanh (những phần khó hiểu nhất đối với giao diện người dùng) vì Google nhận thấy các nhà phát triển Android nhận được nhiều giá trị nhất khi không phải duy trì các bản sao trùng lặp của mã này.

Tổng quan về KMM

Kotlin Multiplatform (KMP) là khoản đầu tư lâu dài của nhóm phát triển Google Workspace, mang lại sự linh hoạt và tốc độ trong việc mang lại những trải nghiệm có giá trị trên nhiều nền tảng. Nhóm Google Workspace rất hào hứng với tiềm năng của KMP trong vai trò định hướng đầu tư vào kiến trúc đa nền tảng, đồng thời tự tin vào khả năng đáp ứng kỳ vọng về hiệu suất cho nhiều khối lượng công việc khác nhau.

Bước đầu tiên trong hành trình này là triển khai ứng dụng Google Docs dành cho Android, iOS và Web, ứng dụng này tận dụng KMP cho logic kinh doanh chung, xác thực tính sẵn sàng của ứng dụng này để sử dụng sản xuất ở quy mô Google. Nhóm Google Workspace rất vui mừng được tiếp tục khám phá các khả năng của KMP trên bộ sản phẩm của mình nhằm mục đích nâng cao năng suất và mang lại trải nghiệm liền mạch cho người dùng trên mọi nền tảng.

Google thấy rất nhiều công ty đã tận dụng thành công Kotlin Multiplatform để phát triển ứng dụng của họ trên nhiều nền tảng, hãy tìm hiểu cách họ áp dụng các chiến lược chia sẻ mã khác nhau tại đây .

Kotlin Multiplatform, do JetBrains phát triển, cung cấp một cách tiếp cận mới để chia sẻ mã trên các nền tảng bằng cách biên dịch Kotlin thành các tệp nhị phân gốc của nền tảng. Kotlin có thể cung cấp ngôn ngữ được quản lý bộ nhớ, hiện đại, đầy đủ cho các nền tảng gốc, hỗ trợ khả năng tương tác gốc và áp dụng dần dần. Kotlin trên Android, kết hợp với Kotlin Multiplatform trên các nền tảng khác, mang đến một cách tuyệt vời để tăng năng suất và chất lượng mà không ảnh hưởng đến hiệu suất hoặc khả năng tương tác.

Kiến trúc đa nền tảng Kotlin

Tình trạng hỗ trợ hiện tại

Nhiều thư viện được sử dụng rộng rãi cung cấp tính năng hỗ trợ tích hợp cho Kotlin Multiplatform, giúp đơn giản hóa trải nghiệm phát triển đa nền tảng của bạn. Các thư viện này hoạt động liền mạch với nhau. Ví dụ: Ktor đơn giản hóa các tác vụ kết nối mạng bằng cách xử lý mức tiêu thụ dịch vụ REST, trong khi kotlinx.serialization chuyển đổi dữ liệu sang các định dạng như JSON và Okio quản lý I/O tệp thiết yếu. Ngoài ra, SKIE tạo điều kiện thuận lợi cho việc sử dụng các loại và coroutine hiện đại trên iOS, đồng thời việc tích hợp CocoaPods cho phép sử dụng các phần phụ thuộc dành riêng cho iOS.

Google đã làm việc với JetBrains và cộng đồng nhà phát triển Kotlin để bổ sung tính năng hỗ trợ Đa nền tảng Kotlin cho một số thư viện Jetpack và trong một số trường hợp cung cấp các mục tiêu nền tảng iOS, trong khi ở các trường hợp khác, JetBrains và cộng đồng cung cấp các bản phân phối đa nền tảng.

Ngày nay, các thư viện Annotations, Collections và DataStore đều hỗ trợ Kotlin Multiplatform ở các phiên bản ổn định. Google cũng đang bổ sung hỗ trợ để xác thực khả năng tương thích nhị phân cho các mục tiêu nền tảng iOS, đưa chúng ngang bằng với các tiêu chuẩn chất lượng dành cho Android. Ngoài các thư viện ở trên, Google cũng đã bắt đầu nghiên cứu tính năng hỗ trợ Đa nền tảng Kotlin cho Room , Lifecycle và ViewModels với các phiên bản alpha hiện đã có sẵn. Để hiểu rõ hơn những lớp và hàm nào có sẵn ở đâu, tài liệu tham khảo thư viện hiện cho biết hỗ trợ nền tảng và "chung".

Chỉ định hỗ trợ Common, Native và Android trong tài liệu

Các kỹ sư Android đã cộng tác với JetBrains trên trình biên dịch Kotlin để cải thiện hiệu suất thời gian chạy trong Kotlin/Native (dành cho iOS và hệ điều hành gốc dành cho máy tính để bàn), cho thấy mức cải thiện hiệu suất thời gian chạy trong điểm chuẩn của trình biên dịch là 18%. Ngoài ra, nhóm Android còn góp phần xây dựng các cải tiến về hiệu suất thời gian cho Trình biên dịch gốc Kotlin với tốc độ tăng lên gấp 2 lần.

Plugin Android cho Gradle hiện đã hỗ trợ chính thức cho Kotlin Multiplatform, cho phép định nghĩa bản dựng ngắn gọn để thiết lập Android làm mục tiêu nền tảng cho mã chia sẻ như minh họa bên dưới:

plugin { id ( "org.jetbrains.kotlin.multiplatform" ) id ( "com.android.library" ) } kotlin { androidTarget { phần tổng hợp . tất cả { kotlinOptions { jvmTarget = "11" } } } listOf ( iosX64 (), iosArm64 (), iosSimulatorArm64 () ). forEach { iosTarget -> iosTarget . nhị phân . framework { baseName = "Shared" isStatic = true } } sourceSets { commonMain . phụ thuộc { // đặt các phụ thuộc Đa nền tảng của bạn vào đây } } } 
Hỗ trợ KMP trong DSL Plugin Android cho Gradle

Vì Android Studio dựa trên Nền tảng IntelliJ của JetBrains nên nó kế thừa khả năng hỗ trợ chỉnh sửa mã Đa nền tảng Kotlin và nhiều tính năng phát triển khác. Các công cụ phát triển Android khác như Android Lint và Kotlin Symbol Treatment (KSP) cũng đang bắt đầu bổ sung thêm hỗ trợ cho Kotlin Multiplatform.

Google Chrome hiện có hỗ trợ chính thức cho WasmGC được sử dụng bởi mục tiêu nền tảng WebAssembly của Kotlin Multiplatform để cho phép chia sẻ mã với trình duyệt một cách hiệu quả và hiệu quả.

Thông tin chi tiết mới nhất về các dự án này có trên trang Đa nền tảng Android Kotlin đã cập nhật : https://developer.android.com/kotlin/multiplatform

Lĩnh vực công việc trong tương lai

Google đã nhận được thông tin từ nhiều nhà phát triển Android và nhóm kỹ thuật của Google rằng họ muốn được hỗ trợ mở rộng cho Kotlin Multiplatform để họ có thể chia sẻ mã với các nền tảng khác dễ dàng hơn. Android có kế hoạch tiếp tục cộng tác với JetBrains, nhóm kỹ thuật của Google và cộng đồng trong nhiều dự án khác nhau, bao gồm:

  • Mở rộng và ổn định thư viện Jetpack với sự hỗ trợ đa nền tảng của Kotlin
  • Hỗ trợ mục tiêu nền tảng Wasm trong thư viện Jetpack
  • Hiệu suất xây dựng Kotlin/Gốc
  • Kotlin/Gỡ lỗi gốc
  • Mở rộng hỗ trợ đa nền tảng Kotlin trong Android Studio

Tìm hiểu thêm và dùng thử

Việc chia sẻ mã bằng Kotlin Multiplatform giữa Android và các nền tảng khác giúp nhà phát triển đạt năng suất và chất lượng cao hơn, vì vậy chúng tôi hy vọng bạn sẽ dùng thử! Bạn có thể sử dụng trình hướng dẫn Đa nền tảng Kotlin để tạo dự án KMP mới. Tìm hiểu thêm trong tài liệu .

Ngoài ra, hãy khám phá một trong những dự án mẫu này hướng dẫn cách sử dụng một số thư viện Jetpack với Kotlin Multiplatform:

DiceRoller - DataStore trên Android và iOS

Fruitties - Room, Datastore trên Android và iOS

Nếu có thêm lĩnh vực nào bạn muốn Android phát triển, hãy cho chúng tôi biết và đồng thời trở thành một phần của cộng đồng Nhà phát triển Android sôi động của chúng tôi trên LinkedIn , Medium , YouTube và X.

Kết

Công nghệ đa nền tảng Kotlin được thiết kế để đơn giản hóa việc phát triển các dự án đa nền tảng. Nó giúp giảm thời gian viết và duy trì cùng một mã cho các nền tảng khác nhau trong khi vẫn giữ được tính linh hoạt và lợi ích của lập trình gốc. Hãy thử ngay bây giờ để khám phá nhé.

Tài liệu:

kotlin lang: https://kotlinlang.org/docs/multiplatform.html

android blog: https://android-developers.googleblog.com/

KMM: https://developer.android.com/kotlin/multiplatform

Bình luận

Bài viết tương tự

- vừa được xem lúc

Lợi ích templates .gitignore trong dự án

Mở đầu. Gitignore là một file trong các dự án Git, nó chứa danh sách các tệp và thư mục mà bạn muốn Git bỏ qua (không theo dõi) khi bạn thực hiện các thao tác như git add hoặc git commit.

0 0 11

- vừa được xem lúc

Deploy ELK Stack với Docker

Hello các bạn lại là mình đây Chúc các bạn có kì nghỉ 30/4-1/5 vui vẻ và an toàn . Tiếp tục series học Docker và CICD của mình, hôm nay ta sẽ cùng nhau làm một bài "tàu nhanh" setup ELK Stack bao gồm

0 0 7

- vừa được xem lúc

Transaction trong Rails: Đảm bảo tính toàn vẹn và nhất quán dữ liệu

1. Lời mở đầu.

0 0 9

- vừa được xem lúc

Giới thiệu về Zabbix

1. Lời mở đầu.

0 0 8

- vừa được xem lúc

Ronin Engineer Tích Hợp với VNPay Như Thế Nào?

Hello mọi người, mình là một Ronin Engineer. Hôm nay mình sẽ trình bày website roninhub.com bên mình tích hợp với VNPay như nào thế. 1.

0 0 8

- vừa được xem lúc

Phần 1: Khám phá golang - Bước đầu tiên

Giới thiệu. Sự ra đời.

0 0 6