Xamarin + mvvm cross

Post on 13-Jan-2017

532 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

Transcript

Xamarin + MvvmCross

Patrick Finkenpaddy@ask-pam.com@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)

Questions?

Patrick finkenpaddy@ask-pam.com@paddyfink

top related