Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ποιες είναι οι κύριες διαφορές μεταξύ της χρήσης MVVMCROSS και XAMARIN.FORMS


Ποιες είναι οι κύριες διαφορές μεταξύ της χρήσης MVVMCROSS και XAMARIN.FORMS


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

Επισκόπηση του xamarin.forms

Το Xamarin.Forms είναι ένα πλαίσιο που αναπτύχθηκε από τη Microsoft που επιτρέπει στους προγραμματιστές να δημιουργούν εφαρμογές cross-platform χρησιμοποιώντας κοινόχρηστο C# Codebase και XAML για τη διεπαφή χρήστη. Επιτρέπει στους προγραμματιστές να γράφουν μία φορά και να τρέχουν σε πολλές πλατφόρμες, συμπεριλαμβανομένων των iOS, Android και UWP. Το Xamarin.Forms είναι ιδανικό για έργα όπου επιθυμείται ένα συνεπές UI σε όλες τις πλατφόρμες και απλοποιεί τη διαδικασία ανάπτυξης παρέχοντας ένα ενοποιημένο API για στοιχεία UI. Ωστόσο, αυτή η συνέπεια προέρχεται από το κόστος ευελιξίας, καθώς το UI περιορίζεται σε ένα υποσύνολο κοινών στοιχείων από κάθε πλατφόρμα, γεγονός που μπορεί να οδηγήσει σε περιορισμούς στην επίτευξη εγγενών εμφάνισης και αίσθησης ή προχωρημένη προσαρμογή του UI [4] [7].

Επισκόπηση του mvvmcross

Το MVVMCROSS είναι ένα πλαίσιο cross-platform MVVM (μοντέλο-View-ViewModel) που υποστηρίζει το Xamarin.ios, Xamarin.android, Xamarin.forms και άλλες πλατφόρμες. Επικεντρώνεται στον διαχωρισμό της επιχειρησιακής λογικής από το UI, επιτρέποντας στους προγραμματιστές να μοιράζονται ένα σημαντικό μέρος του κώδικα τους σε διαφορετικές πλατφόρμες. Το MVVMCROSS παρέχει χαρακτηριστικά όπως η δέσμευση δεδομένων, η πλοήγηση, η αναστροφή του ελέγχου και η έγχυση εξάρτησης, η οποία διευκολύνει την ανάπτυξη σύνθετων εφαρμογών. Σε αντίθεση με το xamarin.forms, το MVVMCross δεν επιβάλλει ένα συγκεκριμένο πλαίσιο UI. Αντ 'αυτού, επιτρέπει στους προγραμματιστές να επιλέξουν πώς θέλουν να εφαρμόσουν το UI για κάθε πλατφόρμα, προσφέροντας μεγαλύτερη ευελιξία στην επίτευξη εγγενών εμπειριών UI [7] [10].

βασικές διαφορές

1. Εφαρμογή UI:
- xamarin.forms: Χρησιμοποιεί ένα κοινό στρώμα UI σε πλατφόρμες, το οποίο απλοποιεί την ανάπτυξη, αλλά μπορεί να περιορίσει την προσαρμογή και την εγγενή εμφάνιση και την αίσθηση.
- MVVMCROSS: Επιτρέπει την υλοποίηση της εγγενούς UI σε κάθε πλατφόρμα ή στο κοινό UI με το Xamarin.Forms, παρέχοντας μεγαλύτερη ευελιξία στην επίτευξη σχεδίων UI ειδικά για την πλατφόρμα.

2. Κοινή χρήση κώδικα:
- Και τα δύο πλαίσια επιτρέπουν την κοινή χρήση κώδικα, αλλά το MVVMCROSS επικεντρώνεται στην ανταλλαγή της επιχειρησιακής λογικής (ViewModels), επιτρέποντας παράλληλα διαφορετικές εφαρμογές UI. Το Xamarin.Forms μοιράζεται τόσο τη λογική UI όσο και την επιχειρηματική λογική.

3. Πλοήγηση και δέσμευση δεδομένων:
- Το MVVMCROSS παρέχει ένα ισχυρό σύστημα πλοήγησης και δυνατότητες δέσμευσης δεδομένων που λειτουργούν σε διαφορετικά πλαίσια UI, συμπεριλαμβανομένων των μορφών xamarin.forms. Το Xamarin.Forms βασίζεται στη δική του πλοήγηση και μηχανισμούς δέσμευσης δεδομένων.

4. Πολυπλοκότητα έργου:
- Για σύνθετα έργα που απαιτούν προηγμένη προσαρμογή UI ή χαρακτηριστικά για την πλατφόρμα, το MVVMCross μπορεί να είναι πιο κατάλληλο λόγω της ευελιξίας του. Για απλούστερα έργα όπου ένα συνεπές UI είναι επαρκές, το xamarin.forms μπορεί να είναι πιο απλό για την εφαρμογή.

5. Προσέγγιση ανάπτυξης:
- Το Xamarin.Forms προτιμάται συχνά από τους προγραμματιστές που είναι εξοικειωμένοι με το XAML και το .NET, καθώς παρέχει μια ενοποιημένη αναπτυξιακή εμπειρία. Το MVVMCross είναι επωφελές για έργα όπου η επιχειρησιακή λογική πρέπει να αποσυνδεθεί από το UI, επιτρέποντας περισσότερο έλεγχο της εφαρμογής του UI σε κάθε πλατφόρμα.

Συνοπτικά, ενώ και τα δύο πλαίσια υποστηρίζουν την ανάπτυξη μεταξύ των πλατφορμών, το Xamarin.Forms επικεντρώνεται στην ανταλλαγή του στρώματος UI σε όλες τις πλατφόρμες, ενώ το MVVMCross υπογραμμίζει την ανταλλαγή της επιχειρησιακής λογικής και επιτρέπει πιο ευέλικτες επιλογές εφαρμογής UI. Η επιλογή μεταξύ τους εξαρτάται από τις απαιτήσεις του έργου σχετικά με την προσαρμογή του UI, την πολυπλοκότητα και τη στρατηγική κοινής χρήσης κώδικα.

Αναφορές:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[5] https://leaware.com/creating-cross-platform-xamarin-pplications-using-the-mvmcross-framework/
[6] https://canbilgin.wordpress.com/tag/mvvmcross/
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[10] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/