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

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

  • 1.
    XAMARIN Programmation C# multi-plateformepour 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 ● Master2 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 desplateformes 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-platformnative 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 Sourcede 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/
  • 9.
  • 10.
  • 11.
    Éditeur des Interfacesd’utilisateur iOS Designer Android Designer
  • 12.
  • 13.
    Problématique Si nous écrivonsun 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 ! lasolution ● 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)
  • 15.
  • 16.
  • 17.
  • 18.
    Comment ça fonctionne?! ButtonRenderer permet d’accéder à tous les attributs / méthodes (APIs) natifs.
  • 19.
    Le rêve devientréalité ! SAME code SAME User Interface
  • 20.
    Existe-il un Xamarin.FormsDesigner ? 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.