Présentation de la plateforme XAMARIN, la différence entre cross-platforms native les autres types de plateformes, expliquer comment ça fonctionne, expliquer la structure du projet et de l'application, avantage et inconvénients.
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/
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)
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