Home › Seminare › Kotlin › KOTLINCORO
25 Jahre Erfahrung FreeCall 0800 tutegos
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.
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
CoroutineScopeundCoroutineContext - 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
DefaultundIO - Ergebnistyp
Deferred, Vergleich zuFuturein Java withContextfü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
SharedFlowmit potenziell mehreren Subscribern- Konfigurationsmöglichkeiten
StateFlowals speziellerSharedFlowmit definiertem Wert- Threadsicheres Update, Einsatz von immutables
- Verwendung in ViewModel Schicht (MVVM oder MVI Architektur)
- Einsatzmöglichkeiten: Validierung und weitere Szenarien
callbackFlowerlaubt, 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
- .NET
- AutoCAD
- Big Data
- C und C++
- Datenbanktechnologien
- Digitale Kompetenz
- HTML und CSS
- Informationssicherheit und Recht
- iWork
- Java
- JavaScript und Framework
- KI, ML, AI
- Kotlin
- Linux
- MATLAB
- Mobile Geräteentwicklung
- Netzwerke
- Office
- Oracle
- Programmiersprachen
- Python
- SAP
- Server-Administration und Systemverwaltung
- Software-Architektur
- Web-Backend
- XML