0Pricing
Kotlin Academy · Lekcja

Kotlin/Native — omówienie: cele, toolchain i kompilacja

Poznaj dostępne cele Kotlin/Native i skompiluj prosty plik binarny CLI.

Kotlin/Native — omówienie: cele, toolchain i kompilacja to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Czym jest Kotlin/Native?

Kotlin/Native kompiluje kod źródłowy Kotlin bezpośrednio do natywnego kodu maszynowego za pośrednictwem LLVM, bez środowiska uruchomieniowego JVM ani Dalvik. Wynikiem jest samowystarczalny plik binarny — na komputerze docelowym nie trzeba instalować JVM.

Obsługiwane platformy docelowe

Kotlin/Native obsługuje szeroki zakres platform docelowych:

  • macOS / iOS: macosX64, macosArm64, iosX64, iosArm64, iosSimulatorArm64
  • Linux: linuxX64, linuxArm64
  • Windows: mingwX64
  • Embedded / watchOS / tvOS: różne platformy docelowe

Potok kompilacji

Potok kompilacji Kotlin/Native wygląda następująco: kod źródłowy Kotlin → Kotlin IR (reprezentacja pośrednia) → LLVM IR → natywny plik binarny. Kompilator konanc steruje tym procesem, ale w praktyce zawsze używa się wtyczki Kotlin Multiplatform do Gradle.

Konfigurowanie platformy natywnej w Gradle

W projekcie Kotlin Multiplatform zadeklaruj platformy natywne w pliku build.gradle.kts:

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

Zbiory źródeł dla platform natywnych

Platformy natywne współdzielą z innymi platformami zbiory commonMain/commonTest. Kod specyficzny dla platformy znajduje się w zbiorach źródeł takich jak macosMain lub linuxX64Main. Używaj expect/actual dla interfejsów API specyficznych dla platformy.

Typy wynikowych plików binarnych

Kotlin/Native może tworzyć kilka typów plików binarnych:

  • executable — samodzielny program wiersza poleceń
  • staticLib — biblioteka statyczna do łączenia z projektami C/C++
  • sharedLib — biblioteka dynamiczna (.dylib / .so / .dll)
  • framework — framework Apple do integracji z iOS/macOS

Uruchamianie testów natywnych

Uruchamiaj testy natywne za pomocą ./gradlew macosArm64Test (lub odpowiedniego zadania dla danej platformy). Testy są kompilowane do natywnego pliku binarnego i wykonywane na komputerze hosta — JVM nie bierze w tym udziału.

Ograniczenia kompilacji krzyżowej

Kompilacja krzyżowa w Kotlin/Native jest ograniczona: na platformy Apple można kompilować tylko w systemie macOS (wymagany jest Xcode). Na platformy Linux i Windows można kompilować z dowolnego obsługiwanego systemu hosta. Potoki CI zazwyczaj używają agentów macOS dla platform Apple.

Format klib

Biblioteki Kotlin/Native są dystrybuowane jako pliki .klib — niezależny od platformy format bibliotek Kotlinu. Zależności są rozwiązywane jako pliki .klib i łączone z końcowym plikiem binarnym w czasie kompilacji.

Kotlin/Native w aplikacji KMP na iOS

W standardowym projekcie Kotlin Multiplatform Mobile (KMM) współdzielony kod jest kompilowany do frameworka Apple, który Xcode dołącza do aplikacji na iOS. Kod Swift/Objective-C wywołuje interfejsy API Kotlinu za pośrednictwem wygenerowanych nagłówków.

Charakterystyka wydajności

Natywne pliki binarne uruchamiają się natychmiast (bez uruchamiania JVM), zajmują mniej pamięci i dobrze nadają się do narzędzi wiersza poleceń, aplikacji serwerowych na Linuxie oraz współdzielonej logiki iOS/macOS. Długotrwale działające aplikacje JVM mogą być wydajniejsze od Native dzięki optymalizacjom JIT, ale zalety Native w zakresie czasu uruchamiania i zużycia pamięci sprawiają, że w wielu zastosowaniach jest ono lepszym wyborem.

Szybkie sprawdzenie

Jaki typ pliku binarnego Gradle tworzy framework Apple z Kotlin/Native do użycia w projekcie iOS Xcode?

Podsumowanie: przegląd Kotlin/Native

Najważniejsze informacje:

  • Kotlin/Native kompiluje kod do natywnego kodu maszynowego za pośrednictwem LLVM — JVM nie jest wymagana
  • Obsługuje platformy macOS, iOS, Linux, Windows, watchOS i tvOS
  • Platformy docelowe i typy plików binarnych konfiguruje się we wtyczce KMP do Gradle
  • Platformy Apple wymagają macOS i Xcode; kompilacja krzyżowa ma ograniczenia zależne od platformy
  • Biblioteki są dystrybuowane jako pliki .klib; integracja z iOS odbywa się za pomocą pliku binarnego typu framework

Często zadawane pytania

Czy lekcja „Kotlin/Native — omówienie: cele, toolchain i kompilacja” jest bezpłatna?

Tak — pełny tekst „Kotlin/Native — omówienie: cele, toolchain i kompilacja” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Kotlin/Native — omówienie: cele, toolchain i kompilacja”?

Poznaj dostępne cele Kotlin/Native i skompiluj prosty plik binarny CLI. Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Kotlin/Native — omówienie: cele, toolchain i kompilacja”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Kotlin/Native — omówienie: cele, toolchain i kompilacja
  2. Zarządzanie pamięcią w Kotlin/Native: nowy menedżer pamięci
  3. Interoperacyjność z C za pomocą cinterop i plików .def
  4. Kotlin/WASM: kompilowanie do WebAssembly dla przeglądarki
← Powrót do Kotlin Academy