Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ποιες αλλαγές εισήχθησαν στο MVVMCROSS V3 σχετικά με την κατασκευή ViewModel


Ποιες αλλαγές εισήχθησαν στο MVVMCROSS V3 σχετικά με την κατασκευή ViewModel


Στο MVVMCROSS V3, εισήχθησαν αρκετές σημαντικές αλλαγές σχετικά με την κατασκευή ViewModel, η οποία αποσκοπούσε στην ενίσχυση της διαγωνητικότητας και της χρηστικότητας για τους προγραμματιστές. Εδώ είναι οι βασικές αλλαγές:

1. Εξάρτηση εξάρτησης από κατασκευαστή: Μία από τις σημαντικότερες αλλαγές ήταν η εισαγωγή της έγχυσης εξάρτησης που βασίζεται στον κατασκευαστή. Αυτό επέτρεψε στους προγραμματιστές να εισάγουν εξαρτήσεις απευθείας στον κατασκευαστή του ViewModel, καθιστώντας ευκολότερη τη διαχείριση των εξαρτήσεων και τη βελτίωση της δοκιμασιμότητας. Πριν από αυτό, οι εξαρτήσεις συχνά διαχειρίζονται με άλλα μέσα, τα οποία θα μπορούσαν να είναι λιγότερο απλά.

2. Πλοήγηση με τη χρήση δακτυλογραφημένων κατηγοριών πλοήγησης: Το MVVMCROSS V3 εισήγαγε ένα νέο σύστημα πλοήγησης που χρησιμοποίησε δακτυλογραφημένες κατηγορίες πλοήγησης. Αυτό σήμαινε ότι αντί να περιηγηθείτε απευθείας στις απόψεις, οι προγραμματιστές θα μπορούσαν να πλοηγηθούν μεταξύ των προβολών που χρησιμοποιούν κατηγορίες έντονα τύπου. Αυτή η προσέγγιση απλοποίησε την πλοήγηση μεταξύ των πλατφορμών, αφαιρώντας τις λεπτομέρειες της πλατφόρμας.

3. Εξοικονόμηση και επαναφόρτωση της κατάστασης ViewModel for Tombstoning: Ένα άλλο σημαντικό χαρακτηριστικό που εισήχθη στο V3 ήταν η δυνατότητα αποθήκευσης και φόρτωσης της κατάστασης ViewModel. Αυτό ήταν ιδιαίτερα χρήσιμο για το χειρισμό σεναρίων "Tombstoning", όπου μια εφαρμογή μπορεί να τερματιστεί από το λειτουργικό σύστημα λόγω περιορισμών μνήμης και στη συνέχεια να αποκατασταθεί όταν ο χρήστης επιστρέφει σε αυτό. Με την αποθήκευση της πολιτείας ViewModel, οι αιτήσεις θα μπορούσαν να διατηρήσουν την τρέχουσα κατάσταση τους ακόμη και μετά την τερματισμό και την επανεκκίνηση.

4. Οι παράμετροι πλοήγησης μεταδόθηκαν στο `init ()` Μέθοδος: Σε παλαιότερες εκδόσεις του MVVMCross, οι παράμετροι πλοήγησης μεταβιβάστηκαν απευθείας στον κατασκευαστή του ViewModel. Ωστόσο, ξεκινώντας από το V3, αυτές οι παράμετροι μεταβιβάστηκαν στη μέθοδο `init ()`. Αυτή η αλλαγή επέτρεψε στον κατασκευαστή να χρησιμοποιείται αποκλειστικά για ένεση εξάρτησης, καθιστώντας το καθαριστικό κώδικα και πιο διατηρήσιμο. Η μέθοδος `init ()` έγινε ο τόπος όπου επεξεργάστηκαν οι παράμετροι πλοήγησης, επιτρέποντας πιο ευέλικτη λογική αρχικοποίησης.

Συνολικά, αυτές οι αλλαγές στο MVVMCROSS V3 παρείχαν έναν πιο δομημένο και διατηρήσιμο τρόπο κατασκευής και διαχείρισης των προβολών, ενισχύοντας τη συνολική αναπτυξιακή εμπειρία για εφαρμογές cross-platform.

Αναφορές:
[1] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[2] https://github.com/mvvmcross/mvvmcross/releases
[3] https://www.reddit.com/r/csharp/comments/12akrcw/mvvm_question_how_do_you_manage_the_interaction/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.mvvmcross.com/blog/
[6] https://softwareengineering.stackexchange.com/questions/389086/do-we-need-models-if-we-are-using-viewmodels
[7] https://stackoverflow.com/questions/16723078/mvvmcross-does-showviewmodel-arways-construct-new-Instances
[8] https://stackoverflow.com/questions/39587974/changes-in-mvvmcross-bindings
[9] https://www.mvvmcross.com/documentation/fundamentals/navigation
[10] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[11] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md