Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Πώς το MVVMCROSS υποστηρίζει τον κωδικό για την πλατφόρμα


Πώς το MVVMCROSS υποστηρίζει τον κωδικό για την πλατφόρμα


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

1. Διαχωρισμός ανησυχιών **

Οι εφαρμογές MVVMCROSS είναι συνήθως δομημένες σε δύο κύρια μέρη: ένα βασικό έργο και ένα συγκεκριμένο έργο UI. Το βασικό έργο, που συχνά εφαρμόζεται ως φορητή βιβλιοθήκη κλάσης (PCL) ή .NET Standard Library, περιέχει την επιχειρησιακή λογική, τα μοντέλα, τα μοντέλα προβολής και τις διεπαφές για υπηρεσίες ειδικών για την πλατφόρμα. Αυτός ο διαχωρισμός επιτρέπει τη μέγιστη επαναχρησιμοποίηση κώδικα σε όλες τις πλατφόρμες, διατηρώντας παράλληλα τον ειδικό κωδικό πλατφόρμας που απομονώνεται στα έργα UI [2] [7].

2. Αναστροφή ελέγχου (IOC) και έγχυση εξάρτησης **

Το MVVMCROSS χρησιμοποιεί ένα δοχείο ΔΟΕ για τη διαχείριση εξαρτήσεων. Αυτό επιτρέπει στους προγραμματιστές να καταγράφουν υπηρεσίες συγκεκριμένης πλατφόρμας στα έργα που αφορούν συγκεκριμένες πλατφόρμας και να τα έγκαψαν στα μοντέλα προβολής του βασικού έργου. Για παράδειγμα, εάν μια εφαρμογή πρέπει να έχει πρόσβαση στην κάμερα, το βασικό έργο μπορεί να καθορίσει μια διεπαφή για πρόσβαση σε κάμερα και κάθε ειδικό έργο της πλατφόρμας μπορεί να παρέχει τη δική του εφαρμογή αυτής της διεπαφής. Το δοχείο της ΔΟΕ στη συνέχεια επιλύει αυτές τις εξαρτήσεις κατά το χρόνο εκτέλεσης, εξασφαλίζοντας ότι χρησιμοποιείται η σωστή υπηρεσία για την πλατφόρμα [2] [8] [11].

3. Υπηρεσίες συγκεκριμένης πλατφόρμας **

Οι υπηρεσίες που σχετίζονται με την πλατφόρμα εφαρμόζονται στα εγγενή έργα UI. Αυτές οι υπηρεσίες είναι εγγεγραμμένες στην κλάση εγκατάστασης κάθε έργου πλατφόρμας. Η κλάση εγκατάστασης είναι υπεύθυνη για την εκκίνηση MVVMCROSS και την εγγραφή υπηρεσιών ειδικής πλατφόρμας με το δοχείο της ΔΟΕ. Αυτό επιτρέπει στα μοντέλα προβολής στο βασικό έργο για τη χρήση της λειτουργικότητας που σχετίζονται με την πλατφόρμα χωρίς να αναφέρονται άμεσα τα ειδικά API της πλατφόρμας [2] [7].

4. Πλαίσιο plugin **

Το MVVMCross περιλαμβάνει ένα πλαίσιο plugin που επιτρέπει στους προγραμματιστές να ενσωματώνουν εύκολα τις λειτουργίες που σχετίζονται με την πλατφόρμα στις εφαρμογές τους. Τα plugins μπορούν να παρέχουν λειτουργίες όπως η τοποθεσία GPS, ο εντοπισμός, οι αισθητήρες και πολλά άλλα. Αυτά τα plugins είναι εγγεγραμμένα στο δοχείο της ΔΟΕ, επιτρέποντας σε μοντέλα προβολής για πρόσβαση σε χαρακτηριστικά ειδικών πλατφόρμας μέσω της έγχυσης εξάρτησης. Αυτό το πλαίσιο υποστηρίζει επίσης ψεύτικες εφαρμογές για σκοπούς δοκιμής [4] [11].

5. Προσαρμόσιμη μηχανή δέσμευσης **

Το MVVMCROSS παρέχει μια προσαρμόσιμη μηχανή δέσμευσης που επιτρέπει στους προγραμματιστές να δημιουργούν προσαρμοσμένες συνδέσεις για προβολές ειδικών για την πλατφόρμα. Αυτή η λειτουργία είναι ιδιαίτερα χρήσιμη όταν εργάζεστε με φυσικούς ελέγχους που δεν υποστηρίζουν τους τυπικούς μηχανισμούς δέσμευσης δεδομένων. Καθορίζοντας τις προσαρμοσμένες συνδέσεις, οι προγραμματιστές μπορούν να διασφαλίσουν ότι τα μοντέλα προβολής τους είναι σωστά συνδεδεμένα με προβολές ειδικών για την πλατφόρμα [4].

6 Παρουσιαστές πλατφόρμας **

Το MVVMCross χρησιμοποιεί ειδικούς για την πλατφόρμα παρουσιαστές (π.χ. `imvxiosviewpresenter ',` imvxandroidviewpresenter') για να διαχειριστεί τον τρόπο εμφάνισης των προβολών σε κάθε πλατφόρμα. Αυτοί οι παρουσιαστές επιτρέπουν την προσαρμογή της λογικής παρουσίασης, επιτρέποντας στους προγραμματιστές να προσαρμόσουν τη συμπεριφορά του UI στις απαιτήσεις της συγκεκριμένης πλατφόρμας [3].

Συνοπτικά, το MVVMCROSS υποστηρίζει τον ειδικό κώδικα πλατφόρμας παρέχοντας μια δομημένη προσέγγιση για τον διαχωρισμό της επιχειρησιακής λογικής από την υλοποίηση της πλατφόρμας, την αξιοποίηση της IOC και την έγχυση εξάρτησης για τη διαχείριση των υπηρεσιών και την προσφορά προσαρμόσιμων πλαισίων δέσμευσης και πρόσθεσης για την ενσωμάτωση των εγγενών χαρακτηριστικών. Αυτό επιτρέπει στους προγραμματιστές να μεγιστοποιούν την επαναχρησιμοποίηση κώδικα, ενώ παράλληλα παρέχουν εμπειρίες ειδικών για την πλατφόρμα.

Αναφορές:
[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-pplications-using-the-mvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://mentormate.com/blog/6-reasons-mvvmcross-peeds-xamarin-development-personalizes-ux/
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started
[10] https://leaware.com/creating-cross-platform-xamarin-pplications-using-the-mvvmcross-framework/
[11] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross