0Pricing
Kotlin Academy · Pelajaran

Gambaran Umum Kotlin/Native: Target, Rantai Alat, dan Kompilasi

Pahami target Kotlin/Native yang tersedia dan kompilasikan biner CLI sederhana.

Gambaran Umum Kotlin/Native: Target, Rantai Alat, dan Kompilasi adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.

Apa Itu Kotlin/Native?

Kotlin/Native mengompilasi kode sumber Kotlin langsung menjadi kode mesin native melalui LLVM, tanpa JVM atau runtime Dalvik. Hasilnya adalah biner mandiri—tidak diperlukan instalasi JVM pada mesin target.

Target yang Didukung

Kotlin/Native mendukung berbagai target:

  • macOS / iOS: macosX64, macosArm64, iosX64, iosArm64, iosSimulatorArm64
  • Linux: linuxX64, linuxArm64
  • Windows: mingwX64
  • Perangkat tertanam / watchOS / tvOS: berbagai target

Alur Kompilasi

Alur kompilasi Kotlin/Native: sumber Kotlin → Kotlin IR (representasi perantara) → LLVM IR → biner native. Kompiler konanc menjalankan proses ini, tetapi dalam praktiknya Anda selalu menggunakan plugin Gradle Kotlin Multiplatform.

Menyiapkan Target Native di Gradle

Dalam proyek Kotlin Multiplatform, deklarasikan target native di build.gradle.kts:

kotlin {
    macosArm64("macos") {
        binaries {
            executable { entryPoint = "main" }
        }
    }
    linuxX64("linux") {
        binaries { executable { entryPoint = "main" } }
    }
}

Set Sumber untuk Target Native

Target native berbagi commonMain/commonTest dengan platform lain. Kode khusus target berada dalam set sumber seperti macosMain atau linuxX64Main. Gunakan expect/actual untuk API khusus platform.

Jenis Biner Keluaran

Kotlin/Native dapat menghasilkan beberapa jenis biner:

  • executable — program baris perintah mandiri
  • staticLib — pustaka statis untuk ditautkan ke proyek C/C++
  • sharedLib — pustaka dinamis (.dylib / .so / .dll)
  • framework — kerangka kerja Apple untuk integrasi iOS/macOS

Menjalankan Pengujian Native

Jalankan pengujian native dengan ./gradlew macosArm64Test (atau tugas untuk target yang sesuai). Pengujian dikompilasi menjadi biner native dan dijalankan pada mesin host—tidak ada JVM yang terlibat.

Keterbatasan Kompilasi Silang

Kompilasi silang Kotlin/Native memiliki keterbatasan: Anda hanya dapat mengompilasi untuk target Apple di macOS (Xcode diperlukan). Target Linux dan Windows dapat dikompilasi pada host yang didukung mana pun. Alur integrasi berkelanjutan biasanya menggunakan agen macOS untuk target Apple.

Format klib

Pustaka Kotlin/Native didistribusikan sebagai berkas .klib—format pustaka Kotlin yang tidak bergantung pada platform. Dependensi diselesaikan sebagai berkas .klib dan ditautkan ke biner akhir saat kompilasi.

Kotlin/Native dalam Aplikasi iOS KMP

Dalam proyek Kotlin Multiplatform Mobile (KMM) standar, kode bersama dikompilasi menjadi kerangka kerja Apple yang ditautkan Xcode ke aplikasi iOS. Kode Swift/Objective-C memanggil API Kotlin melalui headers yang dihasilkan.

Karakteristik Kinerja

Biner native mulai seketika (tanpa waktu mulai JVM), memiliki jejak memori yang lebih kecil, dan cocok untuk alat baris perintah, aplikasi Linux sisi server, serta logika bersama iOS/macOS. Aplikasi JVM yang berjalan lama mungkin berkinerja lebih baik daripada Native berkat pengoptimalan JIT, tetapi keunggulan waktu mulai dan memori membuat Native lebih sesuai untuk banyak penggunaan.

Pemeriksaan Singkat

Jenis biner Gradle manakah yang menghasilkan kerangka kerja Apple dari Kotlin/Native untuk digunakan dalam proyek iOS Xcode?

Rangkuman: Ikhtisar Kotlin/Native

Inti pembelajaran:

  • Kotlin/Native mengompilasi kode menjadi kode mesin native melalui LLVM—tidak memerlukan JVM
  • Mendukung target macOS, iOS, Linux, Windows, watchOS, dan tvOS
  • Konfigurasikan target dan jenis biner dalam plugin Gradle KMP
  • Target Apple memerlukan macOS + Xcode; kompilasi silang memiliki batasan platform
  • Pustaka didistribusikan sebagai .klib; integrasi iOS dilakukan melalui biner framework

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Gambaran Umum Kotlin/Native: Target, Rantai Alat, dan Kompilasi” gratis?

Ya — teks lengkap “Gambaran Umum Kotlin/Native: Target, Rantai Alat, dan Kompilasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Gambaran Umum Kotlin/Native: Target, Rantai Alat, dan Kompilasi”?

Pahami target Kotlin/Native yang tersedia dan kompilasikan biner CLI sederhana. Kamu berlatih Kotlin Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Kotlin Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Gambaran Umum Kotlin/Native: Target, Rantai Alat, dan Kompilasi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Academy ini?

Ya. Setiap pelajaran Kotlin Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Gambaran Umum Kotlin/Native: Target, Rantai Alat, dan Kompilasi
  2. Manajemen Memori di Kotlin/Native: MM Baru
  3. Interoperabilitas C dengan cinterop dan File .def
  4. Kotlin/WASM: Mengompilasi ke WebAssembly untuk Peramban
← Kembali ke Kotlin Academy