HomeSeminareKotlinKOTLINCORO

Asynchrone Programmierung in Kotlin mit Coroutines und Flows

Coroutines sind ein lang bewährtes Konzept der Informatik, das schon seit Jahrzehnten in verschiedenen Programmiersprachen eingesetzt wird, um nebenläufige und asynchrone Abläufe strukturiert und ressourcenschonend zu gestalten. Auch Kotlin verfügt über eine moderne und besonders elegante Implementierung von Coroutines, die tief in die Sprache integriert ist und eine klare, leicht lesbare Syntax bietet. Ergänzt werden sie durch Flows, ein Konzept für reaktive Datenströme, das sich ideal für Eventverarbeitung, Datenvalidierung und kontinuierliche Datenlieferung eignet. In dieser Schulung lernen die Teilnehmer die asynchrone Programmierung in Kotlin praxisnah und fundiert kennen. Die Codebeispiele werden überwiegend als Konsolenprogramme mit IntelliJ entwickelt, ergänzt durch Betrachtungen typischer Einsatzszenarien in Android und im Backend. Zunächst werden die Grundelemente von Coroutines vermittelt, vom einfachen Start über den gezielten Einsatz verschiedener Dispatcher bis hin zu Structured Concurrency und Debugging. Anschließend wird die Arbeit mit Flows vertieft: Erzeugung, Operatoren, StateFlow, SharedFlow sowie der Einsatz in MVVM- und MVI-Architekturen. Ergänzend werden Low-Level-Bausteine wie Channels vorgestellt und der produktive Einsatz in komplexeren Anwendungen geübt.
[LOGO]
[decoration]

Inhalte des Seminars

Einleitung

  • Lange Zeit Spezialthema: Nebenläufige Programmierung (concurrent programming)
  • Coroutine vs Thread vs Process
  • Entwicklungsgeschichte der Coroutinen allgemein und in Kotlin
  • Moderne Einsatzgebiete in Android und Serverframeworks
  • Demo: Wieviele Threads/Coroutinen sind “gleichzeitig” möglich?

Coroutinen

  • Suspending: Eine neue Art von Funktionen
  • Umbau durch den Compiler, Continuation
  • CoroutineBuilder: runBlocking, launch, async
  • Typen CoroutineScope und CoroutineContext
  • Bestandteile (Name, Job, Dispatcher …) und spezielle Syntax mit +
  • Die verschiedenen CoroutineScopes, Beispiele aus Android und GUI
  • Verwendung der Dispatcher Default, IO, Main, Main.immediate
  • Spezielle Anwendungsfälle mit limitedParallelism für Default und IO
  • Ergebnistyp Deferred, Vergleich zu Future in Java
  • withContext für Umschalten während der Ausführung
  • Varianten für Timer
  • Verhalten bei Abbruch
  • Structured Concurrency: Hierarchien
  • Einsatzmöglichkeiten für SupervisorJob
  • Hilfsmittel in IntelliJ, Debugging

Flows

  • Unterschiede zwischen Sequences und Flows in Bezug auf asynchrone Verarbeitung
  • Erzeugung von Flows
  • Begrifflichkeit upstream - downstream
  • Vielfältige mittlere Operatoren
  • Einsatz für Filtern, Timing
  • Verwendung von Puffern
  • Terminale Operatoren z. B. Kollektoren
  • Hot vs. cold flows
  • SharedFlow mit potenziell mehreren Subscribern
  • Konfigurationsmöglichkeiten
  • StateFlow als spezieller SharedFlow mit definiertem Wert
  • Threadsicheres Update, Einsatz von immutables
  • Verwendung in ViewModel Schicht (MVVM oder MVI Architektur)
  • Einsatzmöglichkeiten: Validierung und weitere Szenarien
  • callbackFlow erlaubt, Callback-APIs als Flow zu gestalten (z. B. Android Location)
  • Testen von Flows: TestDispatcher, Steuerung virtueller Zeit
  • Erleichterung durch das Framework Turbine

Channels

  • Channels als Low-level Konstrukt
  • Schließen
  • Iterieren
  • Einsatzfall One-Time-Event in Android
  • Fan-in, fan-out
  • Elegante Syntax mit produce
  • Puffer in channels
  • channelFlow

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: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
  • Zielgruppe: Wer im Kotlin-Umfeld Coroutinen und Flows detailliert kennenlernen will. Dies dürfte für fast alle möglichen Kotlin Szenarien relevant sein, egal ob Android, Backend oder GUI.
  • Schulungsunterlagen: Umfassende Seminarunterlagen und Referenzdokumentation

Alle Kategorien

Was Teilnehmer sagen