Amper adalah konfigurasi proyek dan alat pembangunan. Tujuannya adalah untuk memberikan pengalaman pengguna yang luar biasa dan lancar serta dukungan IDE. Kami yakin hal ini dapat dicapai dengan:
menyediakan DSL konfigurasi deklaratif yang ramah pengembang dan IDE - untuk menyederhanakan tidak hanya pengaturan awal tetapi juga meningkatkan kemudahan pemeliharaan dan membiarkan IDE membantu konfigurasi otomatis dengan andal;
menggabungkan serangkaian toolchain dan ekstensi kompatibel yang dikurasi - untuk mendukung sebagian besar skenario tanpa perlu mencari plugin yang kompatibel;
memilih titik ekstensibilitas dengan hati-hati - untuk menjaga keseluruhan model mental dan UX konfigurasi tetap konsisten dan untuk menghindari eksekusi kode pihak ketiga yang tidak terduga.
Intinya, kami bertujuan untuk mencapai pengalaman yang dipikirkan dengan matang dan teruji seperti halnya dengan IDE JetBrains.
Saat ini kami sedang mempertimbangkan berbagai aspek, termasuk konfigurasi proyek untuk pembangunan, pengemasan, penerbitan, dan banyak lagi. Namun, pada tahap saat ini, fokus utamanya adalah pada konfigurasi proyek untuk bangunan. Meskipun kasus penggunaan saat ini adalah Kotlin dan Kotlin Multiplatform, Amper juga mendukung Java dan Swift (sebagai persyaratan untuk multiplatform). Namun, pendekatan konfigurasi yang sama dapat diterapkan pada bahasa dan tumpukan teknologi lain di masa mendatang.
Amper hadir sebagai alat pembangunan mandiri serta plugin Gradle untuk proyek berbasis Gradle yang sudah ada. Kedua versi menawarkan format konfigurasi deklaratif yang terpadu, mudah digunakan.
Fitur yang didukung:
Membuat dan menjalankan aplikasi JVM, Android, iOS, Linux, dan macOS.
Membuat perpustakaan Multiplatform Kotlin.
Menjalankan tes.
Mencampur kode Kotlin, Java, dan Swift.
Bantuan kode untuk file modul di IntelliJ IDEA dan Fleet.
Proyek multi-modul.
Menggunakan Tulis Multiplatform.
Menggunakan sumber daya multiplatform Compose*.
Interop Gradle, termasuk menggabungkan modul Amper dan Gradle dalam satu proyek*.
Integrasi dengan katalog versi Gradle*.
Tata letak proyek yang kompatibel dengan Gradle untuk kelancaran migrasi proyek Gradle yang ada*.
* hanya di proyek berbasis Gradle
Arah masa depan:
Dukungan untuk lebih banyak skenario dan konfigurasi Kotlin dan Kotlin Multiplatform.
Lebih banyak jenis dan platform produk, seperti watchOS, Windows, dll.
Jenis pengujian khusus platform, termasuk pengujian berinstrumen Android.
Dukungan dependensi asli, seperti CocoaPods, Swift Package Manager.
Pengemasan dan publikasi.
Dukungan varian build.
Kemungkinan diperpanjang.
Untuk memulai dengan cepat:
Petunjuk pengaturan dan penggunaan
tutorial
Dokumentasi
Contoh proyek
Panduan migrasi Gradle
Amper menggunakan YouTrack untuk pelacakan masalah, membuat masalah baru di sana untuk melaporkan masalah atau mengirimkan ide.
Sebelum melaporkan masalah, silakan periksa FAQ.
Anda juga dapat bergabung dengan saluran Slack untuk berdiskusi, atau membagikan masukan Anda menggunakan formulir masukan.
Ada beberapa cara untuk mencoba Amper:
Dalam IntelliJ IDEA EAP terbaru, untuk proyek JVM dan Android (instruksi).
Di JetBrains Fleet terbaru, untuk proyek JVM, Android, dan Multiplatform (instruksi).
Menggunakan Amper mandiri dari baris perintah.
Menggunakan Amper Berbasis Gradle dari baris perintah untuk membangun proyek Amper berbasis Gradle.
Ini adalah JVM yang sangat mendasar "Halo, Dunia!" proyek:
File main.kt
dan MyTest.kt
hanyalah file Kotlin biasa tanpa ada yang istimewa di dalamnya. Yang menarik adalah module.yaml
yang merupakan file konfigurasi modul Amper. Untuk struktur proyek di atas, sederhananya adalah:
# Menghasilkan produk aplikasi JVM: jvm/app
Itu saja. Toolchain Kotlin dan Java, kerangka pengujian, dan fungsi lain yang diperlukan telah dikonfigurasi dan langsung tersedia. Anda dapat membangunnya, menjalankannya, menulis dan menjalankan pengujian, dan banyak lagi. Untuk informasi lebih detail, lihat contoh lengkapnya.
Sekarang, mari kita lihat proyek Compose Multiplatform dengan aplikasi JVM Android, iOS, dan desktop, dengan struktur proyek berikut di Fleet:
Perhatikan bagaimana folder src/
berisi kode Kotlin dan Swift secara bersamaan. Tentu saja bisa juga Kotlin dan Java. Aspek lain yang perlu disorot adalah modul bersama dengan kode umum di folder src
dan folder kode khusus platform src@ios
dan src@android
(pelajari lebih lanjut tentang tata letak proyek).
Berikut tampilan file ios-app/module.yaml
:
# Menghasilkan produk aplikasi iOS: ios/app# Tergantung pada modul perpustakaan bersama: dependensi: - ../sharedsettings: # Aktifkan penulisan kerangka Multiplatform Compose: diaktifkan
Ini cukup mudah: Ini mendefinisikan aplikasi iOS dengan ketergantungan pada modul bersama dan mengaktifkan kerangka Compose Multiplatform. Contoh yang lebih menarik adalah shared/module.yaml
:
# Membuat pustaka bersama untuk platform JVM, Android, dan iOS:produk: ketik: lib platform: [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# Dependensi Compose Bersama:dependensi: - $compose.foundation: diekspor - $compose.material3: diekspor# Dependensi khusus Android dependencies@android: # Integrasi khusus Android dengan Compose - androidx.activity:activity-compose:1.7.2: diekspor - androidx.appcompat:appcompat:1.6.1: diekspor# dependensi khusus iOS dengan ketergantungan pada CocoaPod (belum diimplementasikan)dependencies@ios: - pod: 'Alamofire' versi: '~> 2.0.1'pengaturan: # Aktifkan serialisasi Kotlin kotlin: serialisasi: json # Aktifkan penulisan kerangka Multiplatform Compose: diaktifkan
Ada beberapa hal yang patut disebutkan. Pertama, perhatikan dependensi khusus platform: bagian dengan kualifikasi @<platform>
. Kualifikasi platform dapat digunakan baik dalam manifes maupun dalam tata letak file. Kualifikasi mengatur kode, dependensi, dan pengaturan untuk platform tertentu. Kedua, bagian dependensi: tidak hanya mengizinkan dependensi Kotlin dan Maven, tetapi juga pengelola paket khusus platform, seperti CocoaPods, Swift Package Manager, dan lainnya.
Tentu saja, contoh-contoh ini hanya menunjukkan serangkaian fitur Amper yang terbatas. Untuk mendapatkan lebih banyak wawasan tentang desain dan fungsionalitas, lihat dokumentasi, tutorial, dan contoh proyek.
Periksa contoh proyek kami berikut ini:
JVM "Halo, Dunia!" (mandiri, berbasis Gradle)
Compose Multiplatform (mandiri, berbasis Gradle)
Menulis di iOS (mandiri, berbasis Gradle), Android (mandiri, berbasis Gradle), dan desktop (mandiri, berbasis Gradle)
Templat aplikasi Kotlin Multiplatform dengan UI Compose bersama dan dengan UI asli Android dan iOS
Interop Gradle di Amper berbasis Gradle
Dan contoh mandiri dan berbasis Gradle lainnya