Kotlin Multiplatform (KMP) adalah hobi baru bagi JetBrains dan bertujuan untuk melampaui kerangka kerja yang sudah ada seperti Flutter atau React Native. Keputusan Google untuk menjadikan Kotlin sebagai bahasa pemrograman resmi untuk pengembangan Android memberikan kondisi terbaik untuk hal ini. Pengembang Android yang sudah bekerja dengan Kotlin dapat menggunakan keahlian mereka untuk mencakup platform lain. Selain platform Android, iOS, dan desktop, KMP juga memungkinkan Anda mengembangkan web.
iklan
KMP menawarkan banyak fleksibilitas di banyak bidang. Hal ini juga berlaku pada keputusan untuk berbagi kode front-end dengan Compose Multiplatform di antara semua platform target atau mengembangkan masing-masing front-end secara lokal.
Di web, pendekatan Flutter dalam berbagi semua kode menunjukkan kelemahan besar. Situs web sering kali terlihat tidak biasa, dan terkadang tidak berfungsi sebagaimana mestinya, misalnya saat di-scroll. Selain itu, visibilitas dan kemudahan menemukan situs terpengaruh secara signifikan. Bahkan Flutter menanyakan hal ini Dokumen Anda Ini tidak tersedia sebagai situs web yang dibuat dengan Flutter, tetapi sebagai halaman HTML.
Sebaliknya, KMP memberi lebih banyak kebebasan kepada pengembang. Ujung depan dapat dikembangkan secara terpisah jika perlu. Kemampuan beradaptasi ini membantu mengatasi tantangan UI terpadu—seperti pengalaman pengguna yang kurang dipersonalisasi—sambil mempertahankan manfaat pengembangan lintas platform, seperti penghematan biaya.
Struktur Proyek KMP: Beberapa unit, satu bangunan
Lingkungan pengembangan IntelliJ IDEA dan Android Studio JetBrains menyediakan banyak opsi untuk membuat proyek KMP menggunakan wizard. Pengalaman menunjukkan bahwa pengembang sering kali harus mengonfigurasi proyek sendiri. Misalnya, ada tiga modul yang diperlukan untuk platform target Android dan Web (Gambar 1): common
, webApp
Dan androidApp
. Skrip build Gradle menyatukan ketiga modul. Artikel ini akan beralih ke arsitektur modul nanti, namun untuk saat ini fokusnya adalah pada skrip Gradle.
Total empat skrip diperlukan untuk membangun Gradle untuk dua platform target.
File build.gradle.kts yang digabungkan dengan file settings.gradle.kts bertanggung jawab atas proses pembangunan proyek. Keduanya berisi definisi perpustakaan global, dependensi, dan plugin yang digunakan dalam proyek. Selain itu, manajemen versi – seperti versi Kotlin – juga dilakukan di sini. File settings.gradle.kts mencantumkan semua modul yang harus diperhitungkan dalam proses pembangunan. Selain itu, modul bersama dan modul lintas platform berisi skrip Gradle.
Skrip Gradle dalam modul lintas berfokus pada aspek aplikasi lintas platform. Ia mengelola perpustakaan dan dependensi yang digunakan di seluruh proyek – terlepas dari platform spesifiknya. Skrip ini memastikan bahwa fungsionalitas dan logika inti tetap independen terhadap platform.
Setiap modul platform, seperti modul Android, memiliki skrip build.gradle.kts sendiri. Ini bertanggung jawab untuk menyiapkan build khusus platform dan berisi konfigurasi yang secara eksklusif relevan dengan platform yang dimaksud. Di sini Anda dapat menemukan definisi untuk tugas, dependensi, dan plugin khusus platform. Modul Android memiliki pengaturan khusus untuk plugin Android Gradle dan versi SDK.
Untuk membuat koneksi antara modul platform dan modul bersama, ketergantungan ditentukan dalam skrip Gradle modul platform: Implementation(project(„:common“))
.
Menambahkan baris ini memungkinkan akses ke kode modul bersama dalam modul platform.
Risiko ketika membangun sebuah proyek khususnya adalah versi yang tidak kompatibel dan plugin yang saling mempengaruhi dengan cara yang tidak diinginkan. Karena setiap program Gradle melakukan tugas yang terkadang ambigu, terutama jika menyangkut plugin. Hal ini dapat menyebabkan build gagal dan memulai pemecahan masalah. Pemecahan masalah bisa jadi rumit, terutama jika pengembang tidak memahami skrip Gradle dengan benar. Pendekatan salin dan tempel pada awalnya mungkin tampak menarik bagi pemula Gradle, namun akan lebih rumit dalam jangka panjang.
More Stories
Intel dilaporkan ingin menghadapi Strix Halo AMD dengan GPU raksasanya sendiri di prosesornya
Pembaruan BIOS: Penyerang dapat menonaktifkan Boot Aman pada laptop Alienware
Hari khusus perempuan di Oberhausen