Moin Zusammen,
ich denke einige werden von euch schon vom MVVM Model gehört haben - Model, View, ViewModel. Daneben gibt es natürlich noch viele andere, MVC, Viiper etc.. Über Für und Wider der einzelnen Modelle möchte ich eigentlich garnicht sprechen, sondern eher über die Frage - "Wie binde ich zb. MVVM in mein Projekt ein?".. Ich habe schon das ein oder andere Projekt angefangen, einige beendet, aber nie so wirklich mit einem Entwicklungsstruktur wie MVVM gearbeitet, daher wollte ich das in mein neues Projekt gerne einbinden.
Ich habe das so verstanden..
Model - ist die Implementierung von meinem Datenmodellen... Wir haben also zB. eine "User class", die unser Nutzer Objekt modelliert.
View - ist das wo die "Magie" passiert... Also unsere ContentView und LoginView etc. die der Nutzer sieht und mit der, der Nutzer interagieren kann.
ViewModel - da kneifts mir im Hinterkopf. Laut einigen Seiten habe ich hier die Logik die zwischen Model und View steckt.. Also Netzwerkzugriffe, Datenverarbeitung und Listener, sobald sich Daten auf der View ändern. Das scheint für mich aber irgendwie unnötig komplex.
Ein kleines Beispiel.
Als Model habe ich zb. UserModel.swift, welches mir alle Daten zum Nutzer speichert.
Die View wäre dann, zum Beispiel, die LoginView.swift, die mir die Eingabe des Nutzers einfängt (und hier würde ich rein logisch auch die Abfrage machen) ...
Und das ViewModel wäre dann (in diesem Fall) ja, das abgreifen der eingegebenen Userdaten auf der LoginView.swift und das anschließende Vergleichen ob der Nutzer sich anmelden kann - oder?
Gehen wir jetzt davon aus, ich habe eine App die recht viel mit einer Datenbank kommuniziert. Nach dem Modell würde ich dann ja an jeder Ecke wo ich einen DB Zugriff habe, ein eigenes ViewModel implementieren, dass diesen Datenbankzugriff macht.. Richtig?
Sagen wir, wir haben später irgend eine Stelle in der App wo wir die Daten abgreifen würden, dann hätte ich neben meinem LoginViewModel noch das.. XyzDatenAbgreifenViewModel, wo wir ebenso einen Datenbankabgriff implementiert haben...?
Für mich fühlt sich das erst einmal recht unübersichtlich an, denn dann habe ich ja an jeder Ecke und Kante einen Datenbank zugriff, je nachdem in welcher View ich welche Daten benötige. Ich würde das, gefühlsmäßig, irgendwo zentralisieren, dass ich meine Datenbankzugriffe in einer .swift File habe...
Wenn man MVVM aber leben / implementieren möchte, würde man das doch so machen oder wie seht ihr das? Wie implementiert ihr denn solche Entwurfsmuster, bzw. macht ihr das überhaupt?
Lg!
ich denke einige werden von euch schon vom MVVM Model gehört haben - Model, View, ViewModel. Daneben gibt es natürlich noch viele andere, MVC, Viiper etc.. Über Für und Wider der einzelnen Modelle möchte ich eigentlich garnicht sprechen, sondern eher über die Frage - "Wie binde ich zb. MVVM in mein Projekt ein?".. Ich habe schon das ein oder andere Projekt angefangen, einige beendet, aber nie so wirklich mit einem Entwicklungsstruktur wie MVVM gearbeitet, daher wollte ich das in mein neues Projekt gerne einbinden.
Ich habe das so verstanden..
Model - ist die Implementierung von meinem Datenmodellen... Wir haben also zB. eine "User class", die unser Nutzer Objekt modelliert.
View - ist das wo die "Magie" passiert... Also unsere ContentView und LoginView etc. die der Nutzer sieht und mit der, der Nutzer interagieren kann.
ViewModel - da kneifts mir im Hinterkopf. Laut einigen Seiten habe ich hier die Logik die zwischen Model und View steckt.. Also Netzwerkzugriffe, Datenverarbeitung und Listener, sobald sich Daten auf der View ändern. Das scheint für mich aber irgendwie unnötig komplex.
Ein kleines Beispiel.
Als Model habe ich zb. UserModel.swift, welches mir alle Daten zum Nutzer speichert.
Die View wäre dann, zum Beispiel, die LoginView.swift, die mir die Eingabe des Nutzers einfängt (und hier würde ich rein logisch auch die Abfrage machen) ...
Und das ViewModel wäre dann (in diesem Fall) ja, das abgreifen der eingegebenen Userdaten auf der LoginView.swift und das anschließende Vergleichen ob der Nutzer sich anmelden kann - oder?
Gehen wir jetzt davon aus, ich habe eine App die recht viel mit einer Datenbank kommuniziert. Nach dem Modell würde ich dann ja an jeder Ecke wo ich einen DB Zugriff habe, ein eigenes ViewModel implementieren, dass diesen Datenbankzugriff macht.. Richtig?
Sagen wir, wir haben später irgend eine Stelle in der App wo wir die Daten abgreifen würden, dann hätte ich neben meinem LoginViewModel noch das.. XyzDatenAbgreifenViewModel, wo wir ebenso einen Datenbankabgriff implementiert haben...?
Für mich fühlt sich das erst einmal recht unübersichtlich an, denn dann habe ich ja an jeder Ecke und Kante einen Datenbank zugriff, je nachdem in welcher View ich welche Daten benötige. Ich würde das, gefühlsmäßig, irgendwo zentralisieren, dass ich meine Datenbankzugriffe in einer .swift File habe...
Wenn man MVVM aber leben / implementieren möchte, würde man das doch so machen oder wie seht ihr das? Wie implementiert ihr denn solche Entwurfsmuster, bzw. macht ihr das überhaupt?
Lg!