Το MVXANDROIDVIEWPRESENTER και το MVXFORMSDROIDPAGEPRESENTER χρησιμοποιούνται και οι δύο στο MVVMCROSS για εφαρμογές Android, αλλά εξυπηρετούν διαφορετικούς σκοπούς και έχουν σχεδιαστεί για να χειρίζονται διαφορετικούς τύπους προβολών.
mvxandroidviewpresenter
- Σκοπός: Αυτός ο παρουσιαστής είναι μέρος του πλαισίου MVVMCross και έχει σχεδιαστεί ειδικά για να χειρίζεται τις εγγενείς απόψεις Android. Υποστηρίζει διάφορα πρότυπα πλοήγησης, όπως δραστηριότητες, θραύσματα, ένθετα θραύσματα, θραύσματα διαλόγου και πιο σύνθετες διατάξεις όπως η NavigationDrawer και η BottomNavigationBar [3] [6].
- Λειτουργικότητα: Λειτουργεί ως γέφυρα μεταξύ των προβολών και των εγγενών προβολών Android, επιτρέποντας την προσαρμογή των χαρακτηριστικών παρουσίασης. Οι προγραμματιστές μπορούν να επεκτείνουν αυτόν τον παρουσιαστή για την εφαρμογή προσαρμοσμένων στρατηγικών πλοήγησης, επικαλύπτοντας τις μεθόδους του ή προσθέτοντας νέα χαρακτηριστικά παρουσίασης [3] [6].
- Χρήση: Συνήθως χρησιμοποιείται σε καθαρές εφαρμογές Android MVVMCROSS όπου προτιμώνται οι εγγενείς απόψεις σε σχέση με τις σελίδες Xamarin.Forms.
mvxformsdroidPagePresenter
- Σκοπός: Αυτός ο παρουσιαστής χρησιμοποιείται σε εφαρμογές MVVMCross που ενσωματώνουν σελίδες Xamarin.Forms. Έχει σχεδιαστεί για να χειρίζεται την παρουσίαση των σελίδων Xamarin.Forms μέσα σε μια εφαρμογή Android [5] [8].
- Λειτουργικότητα: Λειτουργεί με τη μετατροπή των σελίδων Xamarin.Forms σε εγγενείς απόψεις Android και διαχειρίζοντας τον κύκλο ζωής τους. Είναι λιγότερο ευέλικτο από το MVXandroidViewPresenter όσον αφορά τα φυσικά πρότυπα πλοήγησης Android, αλλά είναι απαραίτητη για την ενσωμάτωση του Xamarin.forms σε MVVMCROSS Android Projects [5] [8].
- Χρήση: Χρησιμοποιείται σε υβριδικές εφαρμογές όπου συνυπάρχουν και οι δύο φυσικές προβολές Android και οι σελίδες Xamarin.Forms. Απαιτεί την εφαρμογή προσαρμοσμένης λογικής για να χειριστεί τη πλοήγηση μεταξύ των σελίδων Xamarin.Forms και των εγγενών προβολών, καθώς δεν υποστηρίζει άμεσα όλες τις εγγενείς λειτουργίες πλοήγησης Android [5] [8].
Συνοπτικά, το MVXANDROIDVIEWPRESENTER είναι ιδανικό για εφαρμογές που χρησιμοποιούν φυσικές προβολές Android, προσφέροντας εκτεταμένη προσαρμογή και υποστήριξη για διάφορα πρότυπα πλοήγησης ειδικών για το Android. Αντίθετα, το MVXFormsDroidPagePresenter χρησιμοποιείται κατά την ενσωμάτωση των σελίδων Xamarin.Forms σε μια εφαρμογή MVVMCROSS Android, παρέχοντας έναν τρόπο εμφάνισης σελίδων φόρμας ως φυσικές προβολές αλλά με περιορισμένες δυνατότητες φυσικής πλοήγησης.
Αναφορές:[1] https://michaelridland.com/category/xamarin/page/3/
[2] https://stackoverflow.com/questions/35912706/mvvmcross-hybrid-xamarin-forms-and-android-activity-application
[3] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter
[4] https://ridland2.rssing.com/chan-57660607/all_p1.html
[5] https://michaelridland.com/xamarin/mixing-xamarin-forms-mvvmcross-nativeviews/
[6] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[7] https://jessejiang.wordpress.com
[8] https://stackoverflow.com/questions/38181508/login-page-with-xamarin-mvvmcross-forms-preventing-back-naviging