HomeSeminareKotlinKMP

Kotlin Multiplatform App-Entwicklung mit Compose Multiplatform

›Kotlin Multiplatform‹ (KMP) ermöglicht es, die Geschäftslogik einer Anwendung in einer einzigen Codebasis zu entwickeln und auf verschiedenen Plattformen wie Android, iOS, Desktop und Web wiederzuverwenden. Mit ›Compose Multiplatform‹(CMP) wird auch die UI-Entwicklung plattformübergreifend möglich, sodass selbst komplexe Anwendungen weitgehend aus einem gemeinsamen Codebestand gepflegt werden können. Dies reduziert Entwicklungsaufwand, erhöht die Konsistenz und verkürzt die Time-to-Market. In dieser Schulung lernen die Teilnehmer, plattformübergreifende Apps mit Kotlin Multiplatform zu entwickeln und bei Bedarf mit Compose Multiplatform auch die UI zu teilen. Sie erstellen Projekte für Android, iOS, Desktop und Web, setzen Plattform-spezifische Oberflächen mit Jetpack Compose und SwiftUI um und nutzen CMP für einheitliche UI-Komponenten. Zusätzlich werden Themen wie Dependency Injection mit Koin, persistente Datenhaltung mit Room, Netzwerkkommunikation mit Ktor und JSON-Serialisierung behandelt. Ziel ist es, produktiv plattformübergreifende Lösungen mit modernsten Kotlin-Technologien zu realisieren.
[LOGO]
[decoration]

Inhalte des Seminars

Einleitung

  • Überblick Lösungen für Multiplatform App Entwicklung
  • Stand Kotlin Multiplatform (KMP) und Compose Multiplatform (CMP)
  • Projektstruktur in Android Studio
  • Moderne Gradle Variante (Kotlin statt Groovy)
  • Version Catalog, das Toml-Format, Umgang mit Libraries und Plugins
  • Beispielprojekte von Jetbrains

Oberfläche mit Jetpack Compose

  • Reaktive UI, Datenfluss in nur einer Richtung
  • Hot Reload in Android Studio
  • Compose State und remember
  • State hoisting, Stateless und Stateful Komponenten
  • Layoutcontainer, Lazy Varianten
  • Vorstellung Komponenten für Text, Bilder, Selektion uvm
  • Aufbau komplexer eigener Komponenten, Packagestruktur, Preview
  • Coil für Laden von Bildern
  • Organisation komplexer Seiten durch Scaffold
  • Navigations- und Dialogelemente
  • Animationen
  • Einsatzmöglichkeiten LaunchedEffect und andere Effekte
  • Jetpack Compose Navigation als offizielle Navigationslösung
  • Alternativen zu Material3 für eigene Komponenten wie z. B. Compose Unstyled

ViewModel

  • Reaktive Programmierung
  • State oder Flow im ViewModel
  • Architekturmodelle MVVM und MVI
  • Ausführlich: StateFlow als Standarddatentyp
  • Überblick: Flowoperationen

SwiftUI als GUI Technik bei iOS

  • Funktionsweise in Xcode, Previews
  • Basis-Container VStack, HStack, ZStack
  • Komponenten für Text, Bilder, Auswahl etc.
  • Kurzer Background zu Swift Syntax (ähnlich Kotlin)
  • View Modifier
  • Aufbau eigener komplexer Komponenten
  • Datenhaltung, das Observation Framework
  • Navigationselemente
  • Kleine iOS Apps in Xcode

App-Projekt für Android und iOS mit KMP, ohne CMP

  • Einrichten in Android Studio
  • Separate Screens für Android (Jetpack Compose) und iOS (SwiftUI)
  • Separate Navigation
  • Einrichten von Persistenz (kleine Datenmengen) über DataStore

Dependency Injection mit Koin

  • Grundidee von DI
  • Service Locator
  • Einrichtung
  • Bereitstellung von Objekten
  • Neue Variante: Annotationen und code generation
  • Handling von ViewModels

Lokale Datenbank mit Room

  • Bestandteile, Einrichtung
  • Der Room Compiler
  • Unterschiedliche Erzeugung der DB je nach Platform
  • Dao und übliche Funktionen
  • Ansprechen über Repository

Ktor als Netzwerkclient

  • Kurzvorstellung Einsatzmöglichkeiten Ktor Server und Client
  • Einbinden von Ktor
  • Konfiguration
  • Ktor Client, eigene Utilities für knappen Aufruf
  • Einbinden von kotlinx.serialization für Parsen von JSON
  • Anpassungsmöglichkeiten an Real-Life-JSON
  • Verwendung der Result-Klasse für API-Aufrufe

App Projekt mit KMP und CMP

  • Featurepackages mit domain, data, gui Unterpackages
  • Mehrere Screens, modale Elemente
  • Ktor Client und kotlinx.serialization für das Ansprechen eines Restful Service (JSON)
  • Lokale Datenbank mit Room
  • Strategie für Offline-first
  • Handeln von Bildern mit Coil
  • Mobile Apps für Android und iOS
  • Desktop-Variante und optional Web über WebAssembly

Termine / Kontakt

Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.

Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.

Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).

Die Fakten

  • Empfohlene Schulungsdauer: 5 Tage, insgesamt 40 Unterrichtsstunden à 45 Minuten
  • Zielgruppe: Wer mit Kotlin-Erfahrung einen kompakten Einstieg in Multiplatform Entwicklung mit KMP und optional CMP erhalten will
  • Schulungsunterlagen: Umfassende Seminarunterlagen und Referenzdokumentation

Alle Kategorien

Was Teilnehmer sagen