SlideShare ist ein Scribd-Unternehmen logo
1 von 23
XAMARIN
Programmation C# multi-plateforme pour iOS,
Android et Windows
Date : 24-03-2018
Lieu : Djezzy Academy - Bir mourad rais, Alger
Événement : GDG Tipaza - Mobile Study Jams 18
Nadjib KHELIFATI
● Master 2 Systèmes informatiques intelligents, Université de Bab-ezzouar
(promotion 2016)
● Co-fondateur & Développeur web / mobile chez DEVELOPATIC (agence
dédiée au développement des applications mobiles est sites web)
nadjib.khelifati@developatic.io
khelifati.nadjib@gmail.com
http://developatic.io
Les types des plateformes de développement
mobile
Source de la figure : Xamarin Apps vs. Native Apps vs. Hybrid Apps http://www.dotnettricks.com/learn/xamarin/xamarin-apps-vs-native-apps-vs-hybrid-apps
Pourquoi choisir Cross-platform native
Cross-platform native VS Native propre :
● Application sur plus d’un seul système d’exploitation == Couvrir plus
d’utilisateurs
● Gagner du temps du développement == Réduire le budget
● Utiliser un seul langage de programmation == Éviter la courbe
d’apprentissage d’autres langages
Cross-platform native VS Hybride :
● Les utilisateurs veulent une expérience utilisateur UX native => Offrir une
interface utilisateur UI native, donc UX native
Introduction à XAMARIN
● Société américaine fondée en 2011, partenariat avec Microsoft en 2013, puis
rachetée par cette dernière en 2016
● Langage utilisé : C#
● Devenu gratuit et open source en 2016
● Qui pourrait l’utiliser ? Programmeur C# qui veut écrire des applications en
utilisant la même base de code qui cible les 3 mobile OS les plus populaires :
iOS, Android et Windows (y compris Universal Windows Platform UWP et
Windows Phone WP)
Architecture de XAMARIN
Source de la figure : 7 Reasons Xamarin Can Be a Trouble http://www.nexgendesign.com/xamarin-troubles
L'environnement du développement
● Xamarin SDK (Xamarin.iOS / Xamarin.Android) + .Net
● L’IDE Visual Studio / Visual Studio for Mac (ex Xamarin Studio)
L'environnement du développement
Remarque : Sur Windows il est possible de créer un projet iOS mais pour compiler
l’application il faut utiliser un Mac (besoin de Xamarin.iOS SDK & xCode)
Source de la figure : Connecting to the Mac https://docs.microsoft.com/en-us/xamarin/ios/get-started/installation/windows/connecting-to-mac/
Architecture d’une application XAMARIN
Architecture d’une application XAMARIN
Éditeur des Interfaces d’utilisateur
iOS Designer
Android Designer
Spécifications dans le code partagé
Problématique
Si nous écrivons un code de l’interface d’utilisateur UI pour chaque plateforme à
part donc ça devient (presque) la même chose que le développement Native
propre ! Nous n’avons qu’une petite partie de code partagé.
Question
Est-ce qu’il est possible de partager le code de l’interface d’utilisateur UI
entre les différentes plateformes ?
Xamarin.Forms ! la solution
● Introduit dans Xamarin 3 en 2014
● Un seul code pour toutes les plateformes :
✓ iOS
✓ Android
✓ Universal Windows Platform UWP (Pour les applications qui marchent sur Windows 10
et Windows 10 Mobile)
● Le langage XAML (basé sur XML)
Architecture d’une application Xamarin.Forms
Architecture d’une application Xamarin.Forms
Exemple code XAML
Comment ça fonctionne ?!
ButtonRenderer permet d’accéder à tous les attributs / méthodes (APIs) natifs.
Le rêve devient réalité !
SAME code SAME User Interface
Existe-il un Xamarin.Forms Designer ?
Mais il existe XAML Previewer
Source de la figure : Documentation officielle https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/index#Overview
Avantages de XAMARIN
● Open source & gratuit
● Un IDE complet (Visual Studio)
● Facile à déboguer (à l’aide de l’IDE)
● Accès 100% aux APIs natives
● Toujours à jour
● Un bon support (Microsoft derrière)
Inconvénients de XAMARIN
● La taille de l’application est volumineuse (> 15 MB)
Mais dans le cas de la distribution (la version publiée sur les stores), le
compilateur va supprimer les bibliothèques non utilisées, donc package va
ressembler à ça :
● Difficile à personnaliser un composant, exemple ButtonRenderer, il faut à
chaque fois créer une classe dans le projet correspond à la plateforme
concerné (concepte POO de C#)
Source de la figure : Taille des packages d’applications https://docs.microsoft.com/fr-fr/xamarin/android/deploy-test/app-package-size
Merci pour votre attention

Weitere ähnliche Inhalte

Was ist angesagt?

Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
 
Nicolas Georgeault: Nouveaux Scenarios Hybrides et Office Planner
Nicolas Georgeault: Nouveaux Scenarios Hybrides et Office PlannerNicolas Georgeault: Nouveaux Scenarios Hybrides et Office Planner
Nicolas Georgeault: Nouveaux Scenarios Hybrides et Office PlannerMSDEVMTL
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobileMartin Arvisais
 
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKitConstruire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKituncatcrea
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobileEutech SSII
 
[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
 
RapportProjetLibre-CrossplateformeMobiledev (1)
RapportProjetLibre-CrossplateformeMobiledev (1)RapportProjetLibre-CrossplateformeMobiledev (1)
RapportProjetLibre-CrossplateformeMobiledev (1)Cyril Sabbagh
 
MUG Strasbourg - Back From Build
MUG Strasbourg - Back From BuildMUG Strasbourg - Back From Build
MUG Strasbourg - Back From Buildmugstrasbourg
 
Devoxx France 2015 - Introduction à Ionic framework
Devoxx France 2015 - Introduction à Ionic frameworkDevoxx France 2015 - Introduction à Ionic framework
Devoxx France 2015 - Introduction à Ionic frameworkStéphanie Moallic
 
eLearning - Strategies de développement multi-périphériques
eLearning - Strategies de développement multi-périphériqueseLearning - Strategies de développement multi-périphériques
eLearning - Strategies de développement multi-périphériquesGoogle
 

Was ist angesagt? (15)

Native script
Native scriptNative script
Native script
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidDébuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour android
 
Nicolas Georgeault: Nouveaux Scenarios Hybrides et Office Planner
Nicolas Georgeault: Nouveaux Scenarios Hybrides et Office PlannerNicolas Georgeault: Nouveaux Scenarios Hybrides et Office Planner
Nicolas Georgeault: Nouveaux Scenarios Hybrides et Office Planner
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobile
 
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKitConstruire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKit
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobile
 
Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 
[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 !
 
.NET Framework
.NET Framework.NET Framework
.NET Framework
 
RapportProjetLibre-CrossplateformeMobiledev (1)
RapportProjetLibre-CrossplateformeMobiledev (1)RapportProjetLibre-CrossplateformeMobiledev (1)
RapportProjetLibre-CrossplateformeMobiledev (1)
 
Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7
 
MUG Strasbourg - Back From Build
MUG Strasbourg - Back From BuildMUG Strasbourg - Back From Build
MUG Strasbourg - Back From Build
 
Devoxx France 2015 - Introduction à Ionic framework
Devoxx France 2015 - Introduction à Ionic frameworkDevoxx France 2015 - Introduction à Ionic framework
Devoxx France 2015 - Introduction à Ionic framework
 
eLearning - Strategies de développement multi-périphériques
eLearning - Strategies de développement multi-périphériqueseLearning - Strategies de développement multi-périphériques
eLearning - Strategies de développement multi-périphériques
 

Ähnlich wie Xamarin - Programmation C# multi-plateforme pour iOS, Android et Windows

Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin Christian Hissibini
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
 
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
 
Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0lionel nimong
 
Développement Windows 8 METRO App
Développement Windows 8 METRO AppDéveloppement Windows 8 METRO App
Développement Windows 8 METRO AppClément Hallet
 
Passage aux applications mobiles
Passage aux applications mobilesPassage aux applications mobiles
Passage aux applications mobilesneuros
 
RedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouvertureRedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouverturezaak
 
20131118 redfabriq-xamarinfrance-meetup-sessiondouverture
20131118 redfabriq-xamarinfrance-meetup-sessiondouverture20131118 redfabriq-xamarinfrance-meetup-sessiondouverture
20131118 redfabriq-xamarinfrance-meetup-sessiondouvertureRedFabriQ
 
Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
Développement mobile cross-plateform
Développement mobile cross-plateformDéveloppement mobile cross-plateform
Développement mobile cross-plateformStefan Cosquer
 
Le développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordovaLe développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordovaSébastien Ollivier
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksJean-Sébastien Dupuy
 
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
 
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
 
Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)SCALA
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013jeromevdl
 

Ähnlich wie Xamarin - Programmation C# multi-plateforme pour iOS, Android et Windows (20)

Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin
 
Les nouveautés de Xamarin 4
Les nouveautés de Xamarin 4Les nouveautés de Xamarin 4
Les nouveautés de Xamarin 4
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
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...
 
Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0
 
Xamarin notes- en français
Xamarin notes- en françaisXamarin notes- en français
Xamarin notes- en français
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Développement Windows 8 METRO App
Développement Windows 8 METRO AppDéveloppement Windows 8 METRO App
Développement Windows 8 METRO App
 
Passage aux applications mobiles
Passage aux applications mobilesPassage aux applications mobiles
Passage aux applications mobiles
 
RedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouvertureRedFabriQ - meetup Xamarin Paris - Session d'ouverture
RedFabriQ - meetup Xamarin Paris - Session d'ouverture
 
20131118 redfabriq-xamarinfrance-meetup-sessiondouverture
20131118 redfabriq-xamarinfrance-meetup-sessiondouverture20131118 redfabriq-xamarinfrance-meetup-sessiondouverture
20131118 redfabriq-xamarinfrance-meetup-sessiondouverture
 
Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
Développement mobile cross-plateform
Développement mobile cross-plateformDéveloppement mobile cross-plateform
Développement mobile cross-plateform
 
Le développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordovaLe développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordova
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
 
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
 
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
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
 

Xamarin - Programmation C# multi-plateforme pour iOS, Android et Windows

  • 1. XAMARIN Programmation C# multi-plateforme pour iOS, Android et Windows Date : 24-03-2018 Lieu : Djezzy Academy - Bir mourad rais, Alger Événement : GDG Tipaza - Mobile Study Jams 18
  • 2. Nadjib KHELIFATI ● Master 2 Systèmes informatiques intelligents, Université de Bab-ezzouar (promotion 2016) ● Co-fondateur & Développeur web / mobile chez DEVELOPATIC (agence dédiée au développement des applications mobiles est sites web) nadjib.khelifati@developatic.io khelifati.nadjib@gmail.com http://developatic.io
  • 3. Les types des plateformes de développement mobile Source de la figure : Xamarin Apps vs. Native Apps vs. Hybrid Apps http://www.dotnettricks.com/learn/xamarin/xamarin-apps-vs-native-apps-vs-hybrid-apps
  • 4. Pourquoi choisir Cross-platform native Cross-platform native VS Native propre : ● Application sur plus d’un seul système d’exploitation == Couvrir plus d’utilisateurs ● Gagner du temps du développement == Réduire le budget ● Utiliser un seul langage de programmation == Éviter la courbe d’apprentissage d’autres langages Cross-platform native VS Hybride : ● Les utilisateurs veulent une expérience utilisateur UX native => Offrir une interface utilisateur UI native, donc UX native
  • 5. Introduction à XAMARIN ● Société américaine fondée en 2011, partenariat avec Microsoft en 2013, puis rachetée par cette dernière en 2016 ● Langage utilisé : C# ● Devenu gratuit et open source en 2016 ● Qui pourrait l’utiliser ? Programmeur C# qui veut écrire des applications en utilisant la même base de code qui cible les 3 mobile OS les plus populaires : iOS, Android et Windows (y compris Universal Windows Platform UWP et Windows Phone WP)
  • 6. Architecture de XAMARIN Source de la figure : 7 Reasons Xamarin Can Be a Trouble http://www.nexgendesign.com/xamarin-troubles
  • 7. L'environnement du développement ● Xamarin SDK (Xamarin.iOS / Xamarin.Android) + .Net ● L’IDE Visual Studio / Visual Studio for Mac (ex Xamarin Studio)
  • 8. L'environnement du développement Remarque : Sur Windows il est possible de créer un projet iOS mais pour compiler l’application il faut utiliser un Mac (besoin de Xamarin.iOS SDK & xCode) Source de la figure : Connecting to the Mac https://docs.microsoft.com/en-us/xamarin/ios/get-started/installation/windows/connecting-to-mac/
  • 11. Éditeur des Interfaces d’utilisateur iOS Designer Android Designer
  • 12. Spécifications dans le code partagé
  • 13. Problématique Si nous écrivons un code de l’interface d’utilisateur UI pour chaque plateforme à part donc ça devient (presque) la même chose que le développement Native propre ! Nous n’avons qu’une petite partie de code partagé. Question Est-ce qu’il est possible de partager le code de l’interface d’utilisateur UI entre les différentes plateformes ?
  • 14. Xamarin.Forms ! la solution ● Introduit dans Xamarin 3 en 2014 ● Un seul code pour toutes les plateformes : ✓ iOS ✓ Android ✓ Universal Windows Platform UWP (Pour les applications qui marchent sur Windows 10 et Windows 10 Mobile) ● Le langage XAML (basé sur XML)
  • 18. Comment ça fonctionne ?! ButtonRenderer permet d’accéder à tous les attributs / méthodes (APIs) natifs.
  • 19. Le rêve devient réalité ! SAME code SAME User Interface
  • 20. Existe-il un Xamarin.Forms Designer ? Mais il existe XAML Previewer Source de la figure : Documentation officielle https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/index#Overview
  • 21. Avantages de XAMARIN ● Open source & gratuit ● Un IDE complet (Visual Studio) ● Facile à déboguer (à l’aide de l’IDE) ● Accès 100% aux APIs natives ● Toujours à jour ● Un bon support (Microsoft derrière)
  • 22. Inconvénients de XAMARIN ● La taille de l’application est volumineuse (> 15 MB) Mais dans le cas de la distribution (la version publiée sur les stores), le compilateur va supprimer les bibliothèques non utilisées, donc package va ressembler à ça : ● Difficile à personnaliser un composant, exemple ButtonRenderer, il faut à chaque fois créer une classe dans le projet correspond à la plateforme concerné (concepte POO de C#) Source de la figure : Taille des packages d’applications https://docs.microsoft.com/fr-fr/xamarin/android/deploy-test/app-package-size
  • 23. Merci pour votre attention