introduction à xamarin

13
Introduction à Xamarin Construire un application mobile multiplateformes et native en C#.

Upload: patrice-cote

Post on 24-Jun-2015

1.300 views

Category:

Documents


0 download

DESCRIPTION

Une introduction au framework de développement mobile Xamarin. Développer de véritables apps natives dans le langage C# en utilisant les objets de Microsoft .NET, presqu'un jeu d'enfant avec Xamarin

TRANSCRIPT

Page 1: Introduction à Xamarin

Introduction à XamarinConstruire un application mobile

multiplateformes et native en C#.

Page 2: Introduction à Xamarin

Historique de XamarinEn 2001, la compagnie Ximian de Miguel De Icaza lance

le projet mono, une implémentation des normes de langage ECMA C#. Le but est de pouvoir créer des applications en .NET pour les plateformes UNIX / Linux.

En 2004, rachat de Ximian par Novell2011, Attachmate acquiert Novell et se débarrasse de

MonoMiguel De Icaza et une partie de son équipe fondent

alors Xamarin pour poursuivre le travail et faire évoluer Mono

Décembre 2012 : Xamarin pour MacFévrier 2013, Xamarin 2.0 : Xamarin Studio, Xamarin

iOS, Xamarin Android

Page 3: Introduction à Xamarin

Pourquoi utiliser Xamarin ?D’ici 2016, 70% des travailleurs mobiles

auront un téléphone intelligent et 90% des entreprises auront au moins 2 plateformes à supporter – Gartner Research

Les utilisateurs veulent du natif, ne serait-ce que pour les performances.

Créer des composants partagés entre plusieurs plateformes, pour éviter de devoir réécrire 4 apps différentes.

Éviter la courbe d’apprentissage de langages comme Objective-C par exemple.

Page 4: Introduction à Xamarin

Qu’est-ce qu’une app « native » ?Les applications natives sont construites avec

des interfaces utilisateurs se conformant parfaitement aux principes de design spécifiques à chaque plateforme.

Elles offrent des performances optimales en utilisant l’accélération matérielle des diverses plateformes.

Elles peuvent aussi accéder à toutes les fonctionnalités de la plateforme. Par exemple, elles peuvent accéder aux nouveaux API de reconnaissance d’empreintes digitales d’Apple.

Page 5: Introduction à Xamarin

Architecture

Page 6: Introduction à Xamarin

Les composantsXamarin.iOS (ex MonoTouch)

Sur iOS, le compilateur AOT (Ahead Of Time) génère directement du code natif assembleur ARM

Génère un fichier .appXamarin.Android (ex Mono for Android)

Ici, le compilateur génère d’abord en IL (Intermediate Language) qui sera compilé en natif au lancement de l’application grâce au compilateur JIT (Just In Time)

Génère un fichier .apk

Page 7: Introduction à Xamarin

Le partage de code selon XamarinSelon leur documentation, une moyenne de

75% du code d’une application peut être partagé.

Page 8: Introduction à Xamarin

Option File LinkingFaçon la plus répandue de partager du code,

on créé une répertoire distinct sur le disque et on le partage entre les différents projets

Beaucoup de manipulations manuelles sont nécessaires cependant. Pas de façon simple de le faire dans Visual Studio entre autres. Par exemple, si on ajoute un fichier, il faut le faire dans tous les projets qui partage le code parce pas d’option de link de dossiers.

Page 9: Introduction à Xamarin

File Linking

Page 10: Introduction à Xamarin

Autres méthodes de partage de codeFichiers de projets clonés (fonctionne mieux

dans Xamarin Studio mais demande d’être vigilant, car il y a de la gestion manuelle)

Microsoft Project Linker (fonctionne seulement avec Visual Studio et n’est pas supporté officiellement)

Page 11: Introduction à Xamarin

IDEOutre l’intégration avec Visual Studio, ils ont

leur propre IDE, Xamarin Studio. Tourne sous Windows ou Mac OSX

Page 12: Introduction à Xamarin

Xamarin en chiffresPlus de 425 000 développeurs au moment

d’écrire ces lignes17 000 consommateurs payants

Page 13: Introduction à Xamarin

Quelques bémols75% du code partagé ? Vraiment ? OK, le

Model, la BL, certains appels à des API externes, etc. Mais malgré tout, le code commun comportera son lot de « if »

Vous devrez tout de même apprendre les paradigmes de chaque plateforme pour pouvoir développer. Une « vue » est un concept totalement différent sur iOS et sur Android.

Le fichier généré tend à être plus lourd vu les références à des librairies externes comme LINQ par exemple.