Τα plugins MVVMCross είναι ένα ισχυρό εργαλείο για την επέκταση της λειτουργικότητας των εφαρμογών cross-platform που κατασκευάστηκαν με το πλαίσιο MVVMCross. Αυτά τα plugins επιτρέπουν στους προγραμματιστές να ενσωματώνουν εύκολα διάφορα χαρακτηριστικά στις εφαρμογές τους, όπως λειτουργίες αρχείων, συνδεσιμότητα δικτύου, υπηρεσίες τοποθεσίας και πολλά άλλα. Ακολουθούν ορισμένα πρακτικά παραδείγματα χρήσης των plugins MVVMCross:
1. Plugin αρχείου **
Το plugin αρχείου παρέχει πρόσβαση σε μέθοδοι τύπου `system.io` για τον χειρισμό αρχείων. Αυτό το plugin είναι χρήσιμο για την ανάγνωση και τη σύνταξη αρχείων, τα οποία είναι απαραίτητα για την αποθήκευση και ανάκτηση δεδομένων σε πολλές εφαρμογές. Χρησιμοποιώντας αυτό το plugin, οι προγραμματιστές μπορούν να χειριστούν τις λειτουργίες αρχείων με τρόπο ανεξάρτητο από την πλατφόρμα.Για να χρησιμοποιήσετε το plugin του αρχείου, θα το προσθέσετε συνήθως στο έργο σας μέσω του NUGET, στη συνέχεια, καταχωρήστε το στο δοχείο της ΔΟΕ κατά τη διάρκεια της ρύθμισης της εφαρμογής. Στη συνέχεια, μπορείτε να εισάγετε την υπηρεσία αρχείων στα μοντέλα προβολής ή σε άλλες κατηγορίες για να εκτελέσετε λειτουργίες αρχείων.
2.
Το plugin χαμηλής ενέργειας Bluetooth επιτρέπει στις εφαρμογές να αλληλεπιδρούν με συσκευές Bluetooth. Αυτό το plugin καταγράφει το `ibluetoothle 'και το` iadapter` ως τεμπέλης αρχικοποιημένα singletons, καθιστώντας εύκολη την επίλυση και την έγχυση αυτών των υπηρεσιών στα μοντέλα προβολής ή άλλα εξαρτήματα.Για παράδειγμα, μπορείτε να χρησιμοποιήσετε αυτό το plugin για σάρωση για κοντινές συσκευές, να συνδεθείτε με αυτά και να ανταλλάξετε δεδομένα. Το plugin παρέχει επίσης συμβάντα για την παρακολούθηση των αλλαγών κατάστασης Bluetooth, επιτρέποντας στην εφαρμογή σας να αντιδράσει δυναμικά στις αλλαγές στην κατάσταση σύνδεσης Bluetooth.
3. Προσθήκη εντοπισμού **
Αν και δεν αναφέρεται ρητά στα αποτελέσματα αναζήτησης, ο εντοπισμός είναι μια κοινή απαίτηση για πολλές εφαρμογές. Το MVVMCROSS μπορεί να επεκταθεί με plugins για να χειριστεί τις εργασίες εντοπισμού, όπως η μετάφραση κειμένου ή ημερομηνιών μορφοποίησης και αριθμών σύμφωνα με την τοπική τοποθέτηση του χρήστη.4. Push Notifications Plugin **
Το plugin pushwoosh για το MVVMCross είναι ένα παράδειγμα ενός plugin που ενσωματώνει τις υπηρεσίες ειδοποίησης Push στην εφαρμογή σας. Αυτό σας επιτρέπει να στέλνετε στοχοθετημένες ειδοποιήσεις στους χρήστες, να βελτιώσετε την εμπλοκή των χρηστών και να παρέχετε έγκαιρες ενημερώσεις.Για να χρησιμοποιήσετε ένα τέτοιο plugin, θα το καταχωρήσετε συνήθως κατά τη διάρκεια της αρχικοποίησης της εφαρμογής και, στη συνέχεια, χρησιμοποιήστε το παρεχόμενο API για να χειριστείτε τις ειδοποιήσεις ώθησης στα μοντέλα ή τις υπηρεσίες σας.
5.
Το plugin ffimageLoading χρησιμοποιείται για αποτελεσματική φόρτωση εικόνας και προσωρινή αποθήκευση. Ενσωματώνει καλά τις δυνατότητες δέσμευσης δεδομένων της MVVMCROSS, επιτρέποντάς σας να εμφανίζετε εύκολα εικόνες στις απόψεις σας, αξιοποιώντας τη δέσμευση δεδομένων για δυναμικές ενημερώσεις.Αυτό το plugin είναι ιδιαίτερα χρήσιμο για εφαρμογές που πρέπει να χειριστούν μεγάλο αριθμό εικόνων, καθώς βοηθά στη βελτίωση της απόδοσης με την προσωρινή αποθήκευση εικόνων και τη φόρτωση τους ασύγχρονα.
Δημιουργία των δικών σας plugins
Το MVVMCROSS σας επιτρέπει επίσης να δημιουργήσετε προσαρμοσμένα plugins. Για να το κάνετε αυτό, δημιουργείτε μια βιβλιοθήκη που αναφέρει το κύριο πακέτο MVVMCross, προσθέστε έναν τύπο που κληρονομεί από το `imvxplugin` και το σχολιάζει με το` mvxpluginattribute '. Στη μέθοδο `load` του plugin σας, καταχωρίζετε τις απαραίτητες υπηρεσίες ή μαθήματα με το δοχείο της ΔΟΕ.Αυτή η ευελιξία σημαίνει ότι μπορείτε να ενσωματώσετε οποιαδήποτε προσαρμοσμένη λειτουργικότητα σε ένα επαναχρησιμοποιήσιμο plugin, καθιστώντας εύκολο να μοιραστείτε κώδικα σε πολλά έργα ή ακόμα και να το διανείμετε σε άλλους προγραμματιστές.
Συνολικά, τα plugins MVVMCross παρέχουν έναν ισχυρό τρόπο επεκτάσεως και προσαρμογής των εφαρμογών σας σε πλατφόρμα, καθιστώντας ευκολότερη την ενσωμάτωση ενός ευρέος φάσματος χαρακτηριστικών και λειτουργιών.
Αναφορές:[1] https://dev.to/christian1006/creating-cross-platform-xamarin-pplications-using-the-mvmcross-framework-2920
[2] https://www.mvvmcross.com/documentation/plugins/plugins-development
[3] https://www.mvvmcross.com/documentation/fundamentals/inversion-of-control-ioc
[4] https://github.com/mvvmcross/mvvmcross-samples
[5] https://www.mvvmcross.com/documentation/plugins/3rd-party-plugins
[6] https://stackoverflow.com/questions/23451315/mvvmcross-azure-mobile-services-example?rq=3
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://stackoverflow.com/questions/73128508/how-to-load-plugins-when-updating-to-mvvmcross-6-4-2-from-6-2
[9] https://www.nuget.org/packages/mvvmcross.plugin.ble/