Upload
patrick-finken
View
540
Download
2
Embed Size (px)
Citation preview
Xamarin + MvvmCross
Patrick [email protected]@paddyfink
Ask PAM On-demand Concierge Service in your pocket
On recrute
- Développeur full stack .Net
- Développeur Xamarin
Programme• Rapide Introduction à Xamarin• Xamarin.Forms vs Xamarin Spécifique plateforme• Méthodologie MVVM• MvvmCross• Retour d’expérience• Question• Demo de l’app Ask PAM
Introduction Xamarin
Développement Mobile vs XamarinDéveloppement d’application natives en silos, Code non réutilisable, langage spécifique à la plateforme
Partage du code commun entre les apps, Développement en C#
Approche XamarinXamarin traditionnelle Xamarin Forms :
Pros : Rapide et facile, Plus de partages de code, contrôles natifs
Cons : N’a pas accès a tous les contrôles UI
Xamarin : Lequel choisir?
MVVM
MVVM, qu’est ce que c’est?
« Patron de conception (design pattern) logicielle qui permet, tel le modèle MVC (modèle-vue-contrôleur), de séparer la vue de la logique et de l'accès aux données en accentuant les principes de binding et d’événement."
Principes du MVVM• Databinding
Indique un mapping entre une propriété du contrôle UI et une propriété du View model
• INotifiedPropertyChanged, INotifiedCollectionChangedInterface qui définit un événement qui est déclenché chaque fois que les données sous-jacent sont changées
• ICommandFournir un moyen d'informer le ViewModel que quelque chose s’est passé sur l’UI
et MvvmCross?
MVVMCross Plateforme
Project-UI par platform:- Views- Android, iOS,
Windows Phone
Code partagé:- Model- ViewModel- Connection aux webservices- Logique applicative (Navigation…)
Avantage de MvvmCross- MVVM- UI Native- Portabilité- Plus de partage de code- Testabilité- Two way data binding- Architecture Unifiée- Navigation- IOC- Messenging- Plugins- …
MvvmCross : Databinding
MvvmCross : Inversion de contrôle- Framework IoC intégré
- Service Locator pattern et injection de dépendance
- Permet a du code spécifique a une plateforme d’être injecté
- Mapping Interface/implementation
- Remplaçable par d’autre Framework d’IoC
MvvmCross : Convention over Configuration
MvvmCross : Navigation- Logique implementé dans le core
- Navigation de ViewModel a ViewModelLe framework se charge des transitions de pages
- Customation possible par le presenter(Tab navigation, Hambuger Menu….)
MvvmCross : Plugins- Fonctionnalités supplémentaires disponible via les plugins
Demo
Retour d’expérience
Retour d’expérienceAvantage
• Framework mature• Grosse communauté• Beaucoup de tuto• Utilisation des SDK tierces
Inconvénient
• Complexité supplémentaire• Évolue et change (comme
Xamarin)