Hallo und willkommen. In dieser Lektion lernen Sie die Grundlagen kennen der asynchronen Programmierung. Sie erfahren, was der Begriff eigentlich bedeutet und warum es im Rahmen der Benutzeroberfläche so wichtig ist von Android. Das ist der Grund, warum wir asynchrone Programmierung haben liegt da an bestimmten funktionen in der programmierung dauert lange, bis es ausgeführt wird, wie der Anruf, wie Networking, wie eine HTTP-Anfrage, das Laden von Mediendateien, Aufrufen eines Servers, Aufrufen einer API, oder eine schwere Berechnung aufrufen. All diese Funktionen brauchen eine Weile. Also entwickelten Programmierer ein Konzept der asynchronen Programmierung, wodurch Sie nicht alle Ihre Funktionen ausführen müssen sequentiell oder synchron. Stattdessen können Sie es asynchron ausführen um parallel zu arbeiten oder Funktionen und Parallelität auszuführen. Also all diese Situationen, in denen Sie einen langen Anruf haben zu einer Funktion, ist es wichtig, dass Sie vermeiden möchten all die schlechte Leistung, die Ihre App verursachen kann nicht reagieren oder langsam sein, oder sogar zum Absturz. Wir haben also diese Methode namens asynchrone Programmierung wo wir Ihre Logik in eine alternative Verzweigung schicken können oder einen alternativen Thread, während der Hauptthread weiterläuft mit der schweren Last. So können Sie asynchrone Funktionen erstellen zwei verschiedene Dinge oder mehrere Dinge zu tun. Und wenn es eine Sache erfolgreich macht, dann kannst du im hauptthread bleiben. Aber wenn etwas schief geht, Sie können zu einem anderen Thread verzweigen. Sie programmieren also einfach asynchron wenn Sie eine eingerichtete Funktion aufrufen auf asynchrone Weise, so dass, wenn das Programm beginnt einen Thread, es könnte nur eine Weile dort sitzen und warten, bis Sie einen Wert zurückgeben. Als würde ich darauf klicken und es wartet hier auf diesen Wert zurückzusenden, aber dieser Wert wird möglicherweise nicht sofort zurückgegeben. Aber irgendwann in der Zukunft wird es zurückgegeben werden, und das wird asynchron gehandhabt. Und wenn Sie eine Netzwerkanfrage ausführen oder Sie fragen eine Datenbank ab, Es wird mit ziemlicher Sicherheit eine Verzögerung geben in Ihrer Funktionalität. Und wenn es Verzögerungen gibt und du etwas versuchst synchron, dann wirst du große probleme bekommen. Daher ist es sehr wichtig, Ihren Code auf eine bestimmte Weise zu schreiben die die Verzögerung oder die Sperre antizipiert, und du schneidest es so, dass deine Logik funktioniert in einer blockierenden Weise, so dass es die Verzögerung blockiert und wählt eine andere Route oder einen anderen Faden. Also, wenn der Haupt-Thread auf eine Antwort wartet aus einer Netzwerkanfrage, in asynchroner Programmierung, es würde blockiert werden, bis es in der Lage ist, sich darum zu kümmern dieser Verantwortlichkeiten. Und in der Zwischenzeit kann das Programm weitermachen, um etwas anderes zu tun je nachdem, ob es Erfolg oder Misserfolg gibt. Und das asynchron. Es gibt also mehrere Möglichkeiten, mit asynchroner Programmierung umzugehen. Eine der älteren Möglichkeiten ist die Verwendung eines Callback-Musters, wobei die Funktion unseren Aufrufen einen bestimmten Wert zurückgibt. Eine andere Art, wie Kotlin es tut, ist die Verwendung von Coroutinen, die von Kotlin erstellt wurde asynchrone Programmierung sehr effizient handhaben, Coroutinen genannt. Und wir nutzen diese, damit der Ablauf Ihres Kotlin-Programms kann sich effizient durch die drei Einheiten bewegen eines Programmablaufs. Und dieser Programmablauf hat immer etwas das wird Daten produzieren. Und dann gibt es noch etwas, das die Daten verändert. Und dann gibt es etwas, das die Daten verwendet, und das wird normalerweise als Datenkonsument bezeichnet. Also werde ich Daten produzieren, indem ich diesen Klick mache, und dann gibt es eine änderung. Und dann verbrauchen wir die Daten, die hier sind. Und das tun wir durch Benutzerinteraktion. Also machen wir asynchrone Programmierung, und besonders in Kotlin, wir machen Coroutinen aus zwei Gründen. Einer ist irgendwann Wir werden eine lang andauernde Aufgabe haben das tut schwere Berechnungen und es blockiert den Hauptthread. Also müssen wir es asynchron umgehen. Und dann ist der andere Grund aus Sicherheitsgründen wo wir eine Funktion aussetzen müssen bis wir es erfolgreich machen können. Nun, jedes Kotlin-Programm beginnt mit einem Haupt-Thread oder einer Hauptaktivität. Und es wird in diesem Hauptthread bleiben durch alle Ihre UI-Aufgabe, bis Sie etwas anderes codieren. Also muss man sich koordinieren deine Aufgabe mit der Benutzerinteraktion. Und Sie könnten das durch asynchrone Programmierung tun und durch Coroutinen koordinieren. All dies geht also an die Benutzererfahrung und Verbesserung der Benutzererfahrung, und Verbesserung der Benutzerinteraktion, weil die asynchrone Programmierung dem Benutzer ermöglicht um Dinge in der Anwendung zu tun, wie das Klicken auf eine Schaltfläche während ein anderer Prozess im Hintergrund läuft und ein anderes Ergebnis zu erzielen. Und all dies verbessert die Benutzererfahrung. Damit ist unsere Lektion über die Grundlagen abgeschlossen der asynchronen Programmierung. Danke fürs zuschauen. Seien Sie gespannt auf die nächste Lektion. So lass uns gehen.