Aby utworzyć moduł Kotlin Multiplatform (KMP) w projekcie na Androida, użyj szablonu Kotlin Multiplatform Shared Module, który jest dostępny w Android Studio Meerkat i w wersji 8.8.0 lub nowszej wtyczki Androida do obsługi Gradle.
Szablon modułu automatyzuje tworzenie nowego modułu z minimalną konfiguracją kierowaną na platformy Android i iOS.
Konfigurowanie wspólnego modułu KMP
Aby utworzyć udostępniony moduł KMP:
- Kliknij Plik > Nowy > Nowy moduł.
- W panelu Szablony kliknij Moduł współdzielony Kotlin na wiele platform:
![Tworzenie nowego modułu KMP](https://developer.android.com/static/kotlin/images/kmp_new_module.png?hl=pl)
Pola w szablonie:
- Nazwa modułu – określa nazwę modułu Gradle, a także nazwę platformy iOS (można ją później zmienić).
- Nazwa pakietu – określa nazwę pakietu dla plików w tym module.
- Kliknij Zakończ i pozwól Gradle na synchronizację z projektem. Może też wyświetlić się prośba o dodanie nowo utworzonych plików modułów do kontroli źródła.
Po zakończeniu procesu w widoku projektu w Android Studio pojawi się nowy udostępniony moduł wraz z zestawem źródłowym dla każdej platformy.
![Widok projektu z nowymi współdzielonymi modułami](https://developer.android.com/static/kotlin/images/kmp_project_structure.png?hl=pl)
Połącz udostępniony moduł z aplikacją na Androida
Kreator modułów nie dodaje nowo utworzonego modułu jako zależności do żadnego istniejącego modułu. W następnym kroku musisz połączyć udostępniony moduł z jednym z dotychczasowych modułów Gradle w sposób podobny do innych zależności Androida.
dependencies {
...
implementation(project(":shared"))
}
Gdy funkcja zostanie włączona, będzie można korzystać z kodu dostępu w zwykły sposób. Z aplikacji na Androida możesz uzyskać dostęp do kodu, który jest dostępny w funkcji androidMain lub commonMain.
Więcej informacji o strukturze projektu Kotlin Multiplatform znajdziesz w omówieniu struktury projektu Kotlin Multiplatform.
Konfigurowanie udostępnionego modułu w aplikacji na iOS
Swift nie może używać modułów Kotlin bezpośrednio i wymaga wygenerowania skompilowanego binarnego frameworka.
Nowy szablon modułu w Android Studio konfiguruje udostępniany moduł w celu wygenerowania frameworku dla każdej architektury iOS. Ten kod znajdziesz w pliku build.gradle.kts
w ramach udostępnionego modułu:
val xcfName = "sharedKit"
iosX64 {
binaries.framework {
baseName = xcfName
}
}
iosArm64 {
binaries.framework {
baseName = xcfName
}
}
iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}
Informacje o definiowaniu innych typów architektury znajdziesz w artykule Hierarchiczna struktura projektu.
Połącz bibliotekę wspólną z projektem na iOS
Aby umożliwić dostęp do kodu udostępnionego z projektu na iOS, przed skompilowaniem źródeł Swifta dodaj fazę skryptu, która wygeneruje interfejs Kotlina:
- Kliknij plik prawym przyciskiem myszy w Android Studio i wybierz Otwórz w i Otwórz w powiązanej aplikacji. Spowoduje to otwarcie aplikacji na iOS w Xcode.
![Otwórz w powiązanej aplikacji](https://developer.android.com/static/kotlin/images/kmp_open_in.png?hl=pl)
- Otwórz ustawienia projektu, klikając dwukrotnie jego nazwę w nawigatorze projektów.
![Okno ustawień projektu Xcode](https://developer.android.com/static/kotlin/images/kmp_xcode_1.png?hl=pl)
- Zmień domyślną nazwę Uruchom skrypt na Kompiluj Kotlin Framework, aby lepiej określić, co robi ta faza. Kliknij dwukrotnie tytuł Uruchom skrypt, aby go edytować.
- Rozwiń fazę kompilacji i w polu tekstowym Powłoka wpisz ten kod skryptu:
![Dodawanie nowego etapu kompilacji skryptu](https://developer.android.com/static/kotlin/images/kmp_xcode_runscript.png?hl=pl)
Przeciągnij fazę Uruchom skrypt przed fazą Zkompiluj źródła.
Rysunek 6. Przeprowadź fazę kompilacji skryptu przed skompilowaniem źródeł Zbuduj projekt w Xcode, klikając ⌘B lub otwierając menu Produkt i klikając Zbuduj.
Gdy kompilacja się powiedzie, zobaczysz tę ikonę.
![Wyświetlana w Xcode informacja o udanej kompilacji](https://developer.android.com/static/kotlin/images/kmp_xcode_success.png?hl=pl)
Dostęp do udostępnionego kodu w aplikacji na iOS
Aby sprawdzić, czy aplikacja na iOS może uzyskać dostęp do kodu z udostępnionego modułu, wykonaj te czynności:
- W projekcie na iOS otwórz plik
ContentView.swift
pod adresem:Sources/View/ContentView.swift
- U góry pliku dodaj import
sharedKit
. - Zmień widok Tekst, aby uwzględnić informacje
Platform_iosKt.platform()
w wyświetlanym ciągu w ten sposób:
Ta aktualizacja sprawdza, czy aplikacja Fruitties może wywołać funkcję platform()
z modułu współdzielonego, która powinna zwracać „iOS” podczas uruchamiania na platformie iOS.
![Symulator Xcode uruchamiający aplikację na iOS](https://developer.android.com/static/kotlin/images/kmp_xcode_sim.png?hl=pl)
Dodatkowe materiały
Jeśli dopiero zaczynasz korzystać z KMP, zapoznaj się z oficjalną dokumentacją KMP, aby uzyskać więcej informacji. Jeśli dopiero zaczynasz tworzyć aplikacje na iOS, zapoznaj się z dokumentacją Swift Basics.