Panoramica di Kotlin/Native: target, toolchain e compilazione
Comprenda i target disponibili di Kotlin/Native e compili un semplice binario CLI.
Panoramica di Kotlin/Native: target, toolchain e compilazione è una lezione Kotlin Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kotlin Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kotlin Academy include 4 lezioni in totale.
Che cos'è Kotlin/Native?
Kotlin/Native compila direttamente il codice sorgente Kotlin in codice macchina nativo tramite LLVM, senza un runtime JVM o Dalvik. Il risultato è un binario autonomo: sulla macchina di destinazione non è necessaria alcuna installazione della JVM.
Target supportati
Kotlin/Native supporta un'ampia gamma di target:
- macOS / iOS:
macosX64,macosArm64,iosX64,iosArm64,iosSimulatorArm64 - Linux:
linuxX64,linuxArm64 - Windows:
mingwX64 - Embedded / watchOS / tvOS: vari target
La pipeline di compilazione
La pipeline di compilazione di Kotlin/Native è: sorgente Kotlin → Kotlin IR (rappresentazione intermedia) → LLVM IR → binario nativo. Il compilatore konanc gestisce questo processo, ma nella pratica si utilizza sempre il plugin Kotlin Multiplatform per Gradle.
Configurare un target Native in Gradle
In un progetto Kotlin Multiplatform, dichiari i target Native in build.gradle.kts:
kotlin {
macosArm64("macos") {
binaries {
executable { entryPoint = "main" }
}
}
linuxX64("linux") {
binaries { executable { entryPoint = "main" } }
}
}Source set per i target Native
I target Native condividono commonMain/commonTest con le altre piattaforme. Il codice specifico del target risiede in source set come macosMain o linuxX64Main. Utilizzi expect/actual per le API specifiche della piattaforma.
Tipi di binari di output
Kotlin/Native può produrre diversi tipi di binari:
executable— programma autonomo da riga di comandostaticLib— libreria statica da collegare a progetti C/C++sharedLib— libreria dinamica (.dylib / .so / .dll)framework— framework Apple per l'integrazione con iOS/macOS
Eseguire i test Native
Esegua i test Native con ./gradlew macosArm64Test oppure con il task del target pertinente. I test vengono compilati in un binario nativo ed eseguiti sulla macchina host: non viene utilizzata alcuna JVM.
Limiti della cross-compilazione
La cross-compilazione di Kotlin/Native è limitata: è possibile compilare per i target Apple solo su macOS (è richiesto Xcode). I target Linux e Windows possono essere compilati su qualsiasi host supportato. Le pipeline CI utilizzano in genere agent macOS per i target Apple.
Il formato klib
Le librerie Kotlin/Native vengono distribuite come file .klib, il formato di libreria indipendente dalla piattaforma di Kotlin. Le dipendenze vengono risolte come .klib e collegate al binario finale in fase di compilazione.
Kotlin/Native in un'app iOS KMP
In un progetto standard Kotlin Multiplatform Mobile (KMM), il codice condiviso viene compilato in un framework Apple che Xcode collega all'app iOS. Il codice Swift/Objective-C accede alle API Kotlin tramite gli header generati.
Caratteristiche delle prestazioni
I binari nativi si avviano istantaneamente (senza l'avvio della JVM), hanno un footprint di memoria ridotto e sono adatti per strumenti da riga di comando, applicazioni server-side Linux e logica condivisa iOS/macOS. Le applicazioni JVM a esecuzione prolungata possono superare Native grazie alle ottimizzazioni JIT, ma i vantaggi in termini di avvio e memoria rendono Native preferibile in molti casi d'uso.
Verifica rapida
Quale tipo di binario Gradle produce un framework Apple da Kotlin/Native da utilizzare in un progetto iOS Xcode?
Riepilogo: panoramica di Kotlin/Native
Punti chiave:
- Kotlin/Native compila in codice macchina nativo tramite LLVM: non è necessaria alcuna JVM
- Supporta target macOS, iOS, Linux, Windows, watchOS e tvOS
- Configura i target e i tipi di binario nel plugin Gradle KMP
- I target Apple richiedono macOS + Xcode; la cross-compilazione presenta limitazioni legate alla piattaforma
- Le librerie vengono distribuite come
.klib; l'integrazione iOS avviene tramite il binarioframework
Impara Kotlin con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 51
- Lezioni
- 203
Domande Frequenti
La lezione «Panoramica di Kotlin/Native: target, toolchain e compilazione» è gratuita?
Sì — il testo completo di «Panoramica di Kotlin/Native: target, toolchain e compilazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kotlin Academy, passa a CoddyKit PRO. Il corso Kotlin Academy include 4 lezioni in totale.
Cosa imparerò in «Panoramica di Kotlin/Native: target, toolchain e compilazione»?
Comprenda i target disponibili di Kotlin/Native e compili un semplice binario CLI. Eserciti Kotlin Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Kotlin Academy?
Non è richiesta alcuna esperienza precedente. Kotlin Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Panoramica di Kotlin/Native: target, toolchain e compilazione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Kotlin Academy?
Sì. Ogni lezione Kotlin Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Panoramica di Kotlin/Native: target, toolchain e compilazione
- Gestione della memoria in Kotlin/Native: il nuovo MM
- Interop con C tramite cinterop e file .def
- Kotlin/WASM: compilazione in WebAssembly per il browser