WEBVTT

00:00.200 --> 00:01.970
Hallo, meine Freunde, und willkommen zurück.

00:01.970 --> 00:07.100
In diesem Video werde ich über ein sehr wichtiges Konzept in Android sprechen, ein sehr,

00:07.100 --> 00:11.510
sehr wichtiges Konzept in Android und die Architekturmodellansicht.

00:11.510 --> 00:17.510
ViewModel, ich möchte von Ihnen, um vollständig mit mir zu konzentrieren, weil ich dieses Architekturmuster in den nächsten

00:17.510 --> 00:18.940
Projekten zu verwenden.

00:18.950 --> 00:26.210
Stellen Sie sich vor, Sie haben einen coolen ferngesteuerten Roboter und möchten ihn dazu bringen, verschiedene Aufgaben wie

00:26.210 --> 00:28.640
Gehen, Tanzen und Winken zu erledigen.

00:28.670 --> 00:35.710
Dazu müssen wir dem Roboter sagen, was er tun soll, und seine Aktionen auf dem Bildschirm anzeigen.

00:35.720 --> 00:39.080
So funktioniert der Mvvm mit unserem Roboter.

00:39.110 --> 00:40.250
Das Modell.

00:40.280 --> 00:43.040
Das Modell ist wie das Gehirn des Roboters.

00:43.040 --> 00:49.570
Es weiß, wie alle Aufgaben zu erledigen sind, aber es macht nichts von selbst.

00:49.580 --> 00:52.460
Es wartet nur auf Anweisungen.

00:52.460 --> 01:00.600
In unserem Fall ist das Modell wie eine Liste von Aufgaben, die der Roboter ausführen kann, z. B. gehen, tanzen und winken.

01:00.630 --> 01:03.240
Der zweite Teil ist die Aussicht.

01:03.270 --> 01:08.160
Die Ansicht ist wie eine Fernbedienung, mit der Sie mit dem Roboter interagieren können.

01:08.160 --> 01:12.510
Es hat Tasten für Gehen, Tanzen und Winken.

01:12.510 --> 01:18.780
Wenn du eine Taste drückst, z. B. die Wellentaste, sagt sie dem Roboter, was er tun soll, und in diesem

01:18.780 --> 01:20.510
Fall wird er winken.

01:20.520 --> 01:26.340
In unserem Beispiel ist die Ansicht wie die Tasten auf Ihrer Fernbedienung.

01:26.340 --> 01:28.980
Der dritte Teil ist das Ansichtsmodell.

01:28.980 --> 01:35.400
Das Ansichtsmodell ist wie ein Übersetzer zwischen dem Gehirn des Roboters und der Fernsteuerung.

01:35.400 --> 01:45.750
Es versteht die Aufgaben, die der Roboter anhand des Modells erledigen kann, und weiß, wie man mit der Fernbedienung kommuniziert.

01:45.750 --> 01:53.640
Wenn Sie eine Taste auf der Fernbedienung drücken, übersetzt das Modell Ihre Aktion in einen Befehl,

01:53.640 --> 01:57.750
den das Gehirn des Roboters versteht.

01:57.780 --> 02:06.390
Wenn Sie z. B. die Wellentaste auf der Fernbedienung drücken, weist das Ansichtsmodell das Robotergehirn

02:06.390 --> 02:07.830
an, zu winken.

02:07.830 --> 02:10.380
Schauen wir mal, wie es funktioniert.

02:10.380 --> 02:14.850
Drücken Sie Schritt für Schritt die Wellentaste auf der Fernbedienung.

02:14.850 --> 02:22.620
Die Fernbedienung oder die Ansicht sendet eine Nachricht an das Ansichtsmodell, in der es heißt: "Hey, ich möchte,

02:22.620 --> 02:30.600
dass der Roboter winkt". Der Übersetzer empfängt die Nachricht und sieht sich die Liste des Aufgabenmodells an,

02:30.630 --> 02:34.470
um herauszufinden, wie der Roboter winken kann.

02:34.500 --> 02:42.480
Das Ansichtsmodell weist das Gehirn des Roboters, das das Modell ist, an, mit dem Winken zu beginnen, und das Gehirn des Roboters,

02:42.480 --> 02:49.380
das das Modell ist, beginnt zu winken, und Sie sehen den winkenden Roboter auf dem Bildschirm.

02:49.380 --> 02:58.980
Einfach ausgedrückt, hilft uns Mvvm bei der Steuerung unseres Roboters oder unserer Anwendung, indem es das Gehirnmodell, die Fernsteuerung,

02:59.010 --> 03:05.030
die die Ansicht ist, und den Übersetzer, der das Ansichtsmodell ist, voneinander trennt.

03:05.030 --> 03:13.790
Diese Trennung erleichtert die Verwaltung und Kontrolle der Aktivitäten unseres Roboters oder unserer Anwendung, so wie man eine Fernbedienung

03:13.790 --> 03:18.530
verwendet, um unseren Roboter verschiedene Aufgaben ausführen zu lassen.

03:18.530 --> 03:21.980
Schauen wir uns Mvvm in der Android-Modellansicht an.

03:21.980 --> 03:31.280
ViewModel Mvvm ist eine Vorlage für eine Client-Anwendungsarchitektur, die von John Guzman als Alternative zu MVC- und MVP-Mustern

03:31.280 --> 03:37.490
bei der Verwendung von Datenbindungstechnologie vorgeschlagen wurde.

03:37.520 --> 03:46.520
Mvvm ist ein architektonisches Muster, das häufig in der Softwareentwicklung verwendet wird, insbesondere bei der Erstellung von Benutzeroberflächen.

03:46.560 --> 03:54.920
Mvvm wurde entwickelt, um eine Anwendung in drei verschiedene Komponenten aufzuteilen, jede mit ihren spezifischen Verantwortlichkeiten,

03:54.920 --> 04:03.030
Modell, Ansicht und Ansichtsmodell, um die Datenpräsentationslogik von der Geschäftslogik zu trennen, indem sie in eine bestimmte

04:03.030 --> 04:08.880
Klasse verschoben wird, um eine klare Unterscheidung zu ermöglichen.

04:08.880 --> 04:14.550
Tauchen wir ein in diese Komponenten des mvvm und sehen wir uns die Schichten an.

04:14.550 --> 04:20.820
Die separaten Codeschichten von Mvvm sind Model View und ViewModel Model.

04:20.820 --> 04:28.290
Diese Schicht ist für die Abstraktion der Datenquellen, des Modells und des Ansichtsmodells verantwortlich.

04:28.290 --> 04:31.350
Arbeiten Sie gemeinsam an der Erfassung und Speicherung der Daten.

04:31.380 --> 04:36.630
Das Modell stellt die Daten und die Geschäftslogik der Anwendung dar.

04:36.630 --> 04:43.890
Es kapselt die Daten, mit denen Sie arbeiten müssen, wie z. B. Benutzerinformationen, Datenbankdatensätze oder von

04:43.890 --> 04:46.230
einem Webdienst abgerufene Daten.

04:46.230 --> 04:54.810
Es enthält keinen Code, der sich auf die Benutzeroberfläche oder die Darstellung der Daten in Android bezieht. Modelle

04:54.810 --> 04:59.790
werden oft als Datenklassen oder Entitäten dargestellt.

04:59.850 --> 05:02.760
ist, dass die Struktur der Daten definiert wird.

05:02.780 --> 05:04.680
Die zweite Ebene ist die Ansicht.

05:04.700 --> 05:10.280
Der Zweck dieser Schicht ist es, das Ansichtsmodell über die Aktion des Benutzers zu informieren.

05:10.310 --> 05:18.890
Diese Schicht beobachtet das Ansichtsmodell und enthält keine Anwendungslogik.

05:18.920 --> 05:27.970
Die Ansicht ist für die Darstellung und Präsentation der Daten für den Benutzer und die Erfassung der Benutzerinteraktionen verantwortlich.

05:27.980 --> 05:37.730
Es entspricht dem, was der Benutzer sieht und mit der Anwendung im Kontext der mobilen Anwendung und der mobilen App-Entwicklung

05:37.730 --> 05:39.980
interagiert.

05:40.010 --> 05:47.720
Die Ansicht kann als die Komponenten der Benutzeroberfläche wie Schaltflächen, Textfelder, Bilder und Layoutstrukturen

05:47.720 --> 05:48.980
betrachtet werden.

05:49.010 --> 05:57.420
Ansichten werden in der Regel mit XML-Layout in Android oder XML, HTML, CSS in der Webentwicklung entworfen.

05:57.440 --> 06:00.030
Die dritte Schicht ist das Ansichtsmodell.

06:00.030 --> 06:04.710
Sie gibt die Datenströme frei, die für die Ansicht relevant sind.

06:04.740 --> 06:09.810
Außerdem dient sie als Bindeglied zwischen dem Modell und der Ansicht.

06:09.840 --> 06:15.540
Das Ansichtsmodell dient als Brücke zwischen dem Modell und der Ansicht.

06:15.570 --> 06:23.520
Sie enthält die Präsentationslogik, verwaltet die Daten für die Anzeige und stellt die Daten der Ansicht in einem Format zur Verfügung,

06:23.520 --> 06:25.940
das leicht gerendert werden kann.

06:25.950 --> 06:33.750
Das Ansichtsmodell ist für die Umwandlung und Formatierung von Daten aus dem Modell in ein Formular verantwortlich, das in der Ansicht

06:33.750 --> 06:35.490
angezeigt werden kann.

06:35.520 --> 06:44.370
Außerdem verwaltet es die Benutzerinteraktionen und bereitet die Daten vor, die bei Aktualisierungen an das Modell zurückgesendet werden.

06:44.400 --> 06:48.980
Das Ansichtsmodell hat keine direkte Kenntnis von der Ansicht.

06:48.990 --> 06:55.380
Stattdessen stellt sie Daten und Methoden bereit, an die sich die Ansicht binden kann.

06:55.410 --> 07:03.450
In Android wird das Ansichtsmodell oft als Klasse implementiert, die das Ansichtsmodell aus den Komponenten der Android-Architektur

07:03.450 --> 07:11.760
erweitert. Es dient Konfigurationsänderungen wie Bildschirmdrehungen und hilft bei der Verwaltung der UI-bezogenen Daten.

07:11.760 --> 07:15.140
In den vorangegangenen Abschnitten haben wir bereits über das View-Modell gesprochen.

07:15.150 --> 07:23.190
Lassen Sie uns nun in Android Studio einsteigen und etwas über diese Schichten und die Mvvm-Architektur lernen.
