SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Xamarin +
MvvmCross
Patrick Finken
paddy@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 Xamarin
Dé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 Xamarin
Xamarin 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, INotifiedCollectionChanged
Interface qui définit un événement qui est déclenché chaque fois que les données
sous-jacent sont changées
• ICommand
Fournir 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 ViewModel
Le 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érience
Avantage
• Framework mature
• Grosse communauté
• Beaucoup de tuto
• Utilisation des SDK tierces
Inconvénient
• Complexité supplémentaire
• Évolue et change (comme Xamarin)
Questions?
Patrick finken
paddy@ask-pam.com
@paddyfink

Weitere ähnliche Inhalte

Was ist angesagt?

[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1Cellenza
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec XamarinCellenza
 
La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsMicrosoft
 
[XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise [XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise Cellenza
 
[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016Cellenza
 
[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet Xamarin[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet XamarinCellenza
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaJulien Chable
 
Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Microsoft
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobileEutech SSII
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatSOAT
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...SOAT
 
Introduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealIntroduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealVincent Biret
 
Les nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterLes nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterHamida Rebai Trabelsi
 
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin ![XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !Cellenza
 
Wygday2010 - silverlight 4 & wpf 4
Wygday2010 -  silverlight 4 & wpf 4Wygday2010 -  silverlight 4 & wpf 4
Wygday2010 - silverlight 4 & wpf 4Wygwam
 
DreamFace Bluemix Girls Night
DreamFace Bluemix Girls NightDreamFace Bluemix Girls Night
DreamFace Bluemix Girls NightIBM France Lab
 

Was ist angesagt? (20)

[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1[XamarinDay] Deep dive des produits Xamarin part 1
[XamarinDay] Deep dive des produits Xamarin part 1
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin
 
La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
 
[XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise [XamarinDay] Xamarin pour votre entreprise
[XamarinDay] Xamarin pour votre entreprise
 
[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016
 
Native script
Native scriptNative script
Native script
 
[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet Xamarin[XamarinDay] Pipeline DevOps sur un projet Xamarin
[XamarinDay] Pipeline DevOps sur un projet Xamarin
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@Noumea
 
Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8Introduction au développement Windows 8 et Windows Phone 8
Introduction au développement Windows 8 et Windows Phone 8
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobile
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
 
Introduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealIntroduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint Montreal
 
Les nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterLes nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App Center
 
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin ![XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
[XamarinDay] Cellenza - Votre partenaire Mobilité et Xamarin !
 
Symfony à la télé
Symfony à la téléSymfony à la télé
Symfony à la télé
 
Wygday2010 - silverlight 4 & wpf 4
Wygday2010 -  silverlight 4 & wpf 4Wygday2010 -  silverlight 4 & wpf 4
Wygday2010 - silverlight 4 & wpf 4
 
DreamFace Bluemix Girls Night
DreamFace Bluemix Girls NightDreamFace Bluemix Girls Night
DreamFace Bluemix Girls Night
 
Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7
 

Ähnlich wie Xamarin + mvvm cross

Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureSamir Arezki ☁
 
Microsoft dynamics crm online, intégration avec windows azure
Microsoft dynamics crm online, intégration avec windows azureMicrosoft dynamics crm online, intégration avec windows azure
Microsoft dynamics crm online, intégration avec windows azureMicrosoft Décideurs IT
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 
Robert meunier- Maestro-SAAS
Robert meunier- Maestro-SAASRobert meunier- Maestro-SAAS
Robert meunier- Maestro-SAASAQT-presentations
 
Architectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeArchitectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeMicrosoft
 
les style d'architecture
les style d'architecture les style d'architecture
les style d'architecture Mouna Maazoun
 
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...Microsoft
 
Applications en ligne 2012
Applications en ligne 2012Applications en ligne 2012
Applications en ligne 2012URFIST de Paris
 
Cellenza microservices - tour d'horizon - v0.1
Cellenza   microservices - tour d'horizon - v0.1Cellenza   microservices - tour d'horizon - v0.1
Cellenza microservices - tour d'horizon - v0.1Radoine Douhou
 
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...DEFO KUATE Landry
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012Sellami Ahmed
 
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...Microsoft Technet France
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesLes Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesTristan Nitot
 

Ähnlich wie Xamarin + mvvm cross (20)

Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec Azure
 
Microsoft dynamics crm online, intégration avec windows azure
Microsoft dynamics crm online, intégration avec windows azureMicrosoft dynamics crm online, intégration avec windows azure
Microsoft dynamics crm online, intégration avec windows azure
 
Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.Réutilisation de code entre Windows 8 et Windows Phone 8.
Réutilisation de code entre Windows 8 et Windows Phone 8.
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 
Robert meunier- Maestro-SAAS
Robert meunier- Maestro-SAASRobert meunier- Maestro-SAAS
Robert meunier- Maestro-SAAS
 
Architectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythmeArchitectures et application hybrides selon vos termes et à votre propre rythme
Architectures et application hybrides selon vos termes et à votre propre rythme
 
Robert Meunier - Saas
Robert Meunier - SaasRobert Meunier - Saas
Robert Meunier - Saas
 
les style d'architecture
les style d'architecture les style d'architecture
les style d'architecture
 
WPF MVVM
WPF MVVMWPF MVVM
WPF MVVM
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
 
Applications en ligne 2012
Applications en ligne 2012Applications en ligne 2012
Applications en ligne 2012
 
Cellenza microservices - tour d'horizon - v0.1
Cellenza   microservices - tour d'horizon - v0.1Cellenza   microservices - tour d'horizon - v0.1
Cellenza microservices - tour d'horizon - v0.1
 
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
 
Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012
 
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesLes Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
 

Xamarin + mvvm cross

Hinweis der Redaktion

  1. Application natives Performances optimales Écriture de l’application 3 fois Délai de mise sur le marché important Coût élevé (maintenance, formation, recrutement) Xamarin Performances optimales Partage du code commun Mise sur le marché rapide Réduction des couts (moins de code, équipes rapidement opérationnelles) Chaque méthode d’un SDK (Android, iOS, Windows Phone) est encapsulée à l’identique en C# Sur chaque plateforme toutes les fonctionnalités sont conservées. Un développeur expérimenté en Android ou iOS s’y retrouve très rapidement car il écrit les mêmes noms de fonctions et utilise les mêmes classes.
  2. Xamarin apporte la compatibilité du code C# et de la platforme .Net sous Android et iOS Base du code : Logique métier, les appels de services, le stockage… Projet plateforme : L’UI, les navigations, les composants propres a chaque SDK Xamarin.Form, l’UI devient portable avec le même code. write once, run everywhere. Pour l’instant le procédé est jeune, les composants utilisables restent peu nombreux et il n’existe pas de designer visuel, tout se fait par code C# ou XAML.
  3. Créer par Microsoft, et adapté à la réalisation d’applications utilisant le XAML ( windows phone, wpf, silverlight)  Il permet d’architecturer efficacement une application afin d’en faciliter la maintenabilité et la testabilité Model, en français « le modèle », correspond aux données View, en français « la vue », correspond à tout ce qui sera affiché, comme la page, les boutons, etc.  View Model, en francais « modèle de vue », c’est la colle entre le modèle et la vue. Il s’agit d’une classe qui fournit une abstraction de la vue. il s’appuie sur la puissance du binding pour mettre à disposition de la vue les données du modèle. Il s’occupe également de gérer les commandes que nous verrons un peu plus loin. Le but de MVVM est de faire en sorte que la vue n’effectue aucun traitement, elle ne doit faire qu’afficher les données présentées par le view-model. C’est le view-model qui a en charge de faire les traitements et d’accéder au modèle.
  4. MVVMCross est une framework MVVM conçu pour le développement d’application cross-plateforme avec MVVMCross vous écrivez une seule fois le code de vos Modèles et ViewModels et vous n’avez plus qu’à créer les Views pour chaque plateforme.