Let's Go dans l'univers mobile multiplateforme avec Xamarin

Post on 13-Apr-2017

273 views 2 download

Transcript of Let's Go dans l'univers mobile multiplateforme avec Xamarin

Let's Go dans l'univers mobile multiplateforme avec XamarinChristian Hissibini@histechup

Christian HissibiniTech Enthousiast…

@histechupHisTech SolutionsXamarin Student AmbassadorMicrosoft MVP Windows Platform Dev

Les Plateformes Mobiles

Approches de DéveloppementMobile

Approche en Silo

Création de plusieurs applications

Approche en Silo

Création de plusieurs applications

Approche en Silo

Création de plusieurs applications

Approche en Silo

Création de plusieurs applications

Approche Silo

Création de plusieurs applications• Plusieurs Équipes• Multiple bases de code• Differents outils

L’approche Write Once, Run Anywhere

• Lowest common denominator• Fragmentation du navigateur• Un seul développement et design

pour toutes les plateformes

Approche Xamarin

• Interface Utilisateur Native• Performances Natives• Code partagé à travers les

plateformes• Frameworks C# & .NET• Couverture complete des

APIs

Avec Xamarin.Forms: Plus large partage de code, contrôles

natifs

Approche Xamarin Traditionnelle

Shared UI Code

Approche Xamarin.Forms

Comment fonctionne Xamarin

APIs Windows

Microsoft.Phone Microsoft.Networking

Windows.Storage

Windows.Foundation

Microsoft.Devices

System.Data System.Windows

System.Numerics System.Core System.ServiceMod

el

System.Net System System.IO System.Linq System.Xml

iOS – 100% APIs Couvertes

MapKit UIKit iBeacon CoreGraphics CoreMotion

System.Data System.Windows

System.Numerics System.Core System.ServiceMod

el

System.Net System System.IO System.Linq System.Xml

Android – 100% APIs Couvertes

Text-to-speech ActionBar Printing Framework Renderscript NFC

System.Data System.Windows

System.Numerics System.Core System.ServiceMod

el

System.Net System System.IO System.Linq System.Xml

Performance Native

Xamarin.iOS effectue une compilation complète en avance de temps (Ahead Of Time (AOT) compilation) pour produire un binaire ARM destiné au Apple’s App Store.

Xamarin.Android bénéficie de la compilation à la volée (Just In Time (JIT) compilation) sur l’appareil Android.

Tout ce qui est faisable en Objective-C, Swift, ou Javapeut être fait en C# avec Visual Studio et Xamarin.

Environnements de Développement

Xamarin StudioPC or Mac

Visual Studio Plugin

VS 2010 and +

Environnements de Développement

Démo

Stratégies de partage de code

Partage de Code - StratégiesShared ProjectsMettre le code partagé dans un “Shared Project”Reférencer le projet partagé à partir de Android, iOS, Windows, WebEt le code source du projet partagé est inclus.Super flexible, peut utilizer les classes partielles, très simple, full accès aux APIs

Portable Class LibrariesLorsque vous designez un code destiné à être consommé par d’autres.Consommation facile par des tiers.Accès Limité aux APIs

Composants Existants et NuGetsLes Bibliothèques sont supportées

Statistiques de Partage de CodeMac

iOS

Android

Windows Phone

iCircuit

Touch Draw

86%

14%

72%

28%

70%

30%

61%

39%

88%

12%

76%

24%

90%

10%

Abstractions Puissantes

SpeechSynthesizerTextToSpeechAVSpeechSynthesizer

TextToSpeech.Speak(“Hello World”);

Plugins pour Xamarin

Common Mobile API

xamarin.com/plugins

Speech Camera Settings Connectivity

SMS Location

Platform Native APIs

Xamarin.Forms

Windows-specific C#Android-specific C#iOS-specific C#

Shared C# Logic

Shared Xamarin.Forms UI

Bibliothèque Graphique 2DSkiaLe moteur graphique 2D dans Google Chrome et Android.Multiplatforme : Android, iOS, Mac, Windows. Bientôt sur: UWP, tvOS.

CouvertureChargement et sauvegarde d’Image Immediate composited rendering modeAccélération GPU accelerated (lorsque disponible/activé)Custom effects et shaders

Développement ActifCollaboration entre Skia et SkiaSharp dans le développement actif

Shapes Bézier Curves

Translations & Rotations

Text rendering

Discrete Path Effects

Composed Path Effects

Sum Path Effects

Shaders

Moteur de Rendu Graphique 3DUrhoMoteur de rendu graphique 3D

Multiplatforme: Android, iOS, Mac, Windows. Bientôt sur: UWP, tvOS.

CouvertureScènes 3DComposant système de RenduAccélération GPUCustom effects et shaders

Développement ActifCollaboration entre Urho et UrhoSharp dans le développement actif

Inspector et Workbooks

InspectorPrise en charge de l’inspection en live des application par l’EDIMonitore votre application en liveExecute du code C# sur une application en marcheEffectue des modifications, explore votre application

Powered by Roslyn’s C#

MultiPlatformeSupporte Android, iOS, Mac et Windows

WorkbooksPropulse Interactive C# à un autre niveau

Apprendre par l’experimentation

Workbooks sont des documents liveIls contiennent du texte MarkdownAvec du code C# embarquéLe code s’execute à la demandeEt ré-execute tout code après que vous ayiez effectué des modifications

Démo

Testing

Réalisation des testsUnit testingUI Testing

Test Recorder

Sur Mobile, la Qualité n’est pas évidente

72020356

OS versionsDevicesLanguagesLocalesScreen sizes

1024K+395727156

OS versionsDistinct devicesLanguagesLocalesScreen sizesManufacturersScreen configurations

Challenges

Fragmentation des AppareilsComplexité de l’ApplicationCycles Rapides des ReleasesSessions CourtesAttentes Élevées des Utilisateurs

Android Diversification

iOS diversification3D Touch iPhone 6s series only

Apple penciliPad Pro only

Multi TaskingOnly select iPads

iPads

iPod touchiPhones

Form factors iOS 9 features

Thousands of iOS and Android APIs

Public web APIs

Backend integrations

Third party libraries

Memory, CPU and network constraints

Complexité de l’Application

Tap Scroll Swipe Pinch Multi Finger

Text Entry

Rotation GPS

Xamarin Test Cloud: tests automatisés sur des milliers d’appareils

Xamarin Test Cloud

Intégration avec la Plateforme

UITest Test Recorder

Démo

Monitoring et Télémétrie

Xamarin Insights – Monitoring en Temps Réel

Supporte

✓ Xamarin.iOS✓ Xamarin.Android✓ Xamarin.Mac✓ Windows Phone✓ Windows Store✓ Windows Desktop

Xamarin Insights – Rapport

Signale automatiquement toute exception native ou non prise en charge.

Rapporte vos propres exceptions grâce à une simple API multiplateforme.

Xamarin Insights – Suivi

Effectue le Suivi de tout événement qui survient dans votre application.

Fait aussi le suivi des performance et le temps que prend une operation.

Xamarin Insights – Identification

Combine le suivi d’événement à l’identification d’utilisateur pour résoudre rapidement les problemes.

Simple Intégration dans des services populaires pour l’acheminement des notifications critiques.

Xamarin Insights – Intégration

Insertion de Xamarin Insights//Crash ReportInsights.Report(exception);

//Feature UsageInsights.Track(“Splash Page”);

//Timed EventsInsights.TrackTime(“TimeToSync”);

//User SessionsInsights.Identify(“Steve”, user_traits);

Demo

✓Toujours À Jour

Support le même jour :• iOS 5• iOS 6• iOS 7• iOS 7.1• iOS 8• iOS 9Support complet pour :• Apple Watch• Google Glass• Android Wear• Amazon Fire TV• and much more

Par où commencer ?

Télécharger les Environnements de Développement

www.visualstudio.com

www.xamarin.com

Xamarin StudioPC or Mac

Visual Studio

Logithèque DreamSparkwww.dreamspark.com

Pour se former

Microsoft Virtual Academymva.microsoft.com

Xamarin Universityxamarin.com/university

Pour vos questions…

Communautés Online

forums.xamarin.com

social.msdn.microsoft.com/forums

stackoverflow.com

Pour rester à jour…

Blogs

Xamarin Blogblog.xamarin.com

Xamarin Community Blogsplanet.xamarin.com

Canadian Developer Connectionaka.ms/cdndevs

Channel 9channel9.msdn.com

Conférence //build/ build.microsoft.com/

evolve.xamarin.com

April 24–28, 2016

Montreal Mobile .NET Developerswww.meetup.com/MontrealMobileDevelopers

Questions ?

Merci