SlideShare une entreprise Scribd logo
1  sur  63
Xamarin et le développement
natif d’applications Android,
iOS et Windows en C#
07/03/2014

1
Cyril CATHALA
Expert .NET – Soat
MVP C#

@CyrilCathala
http://cyril.cathala.org

Wallbase

Quoties

1 Indice 1 Mot

Showrizo

Movie Battle
Agenda
Les enjeux de la mobilité
Hybride vs natif
Xamarin
Sous le capot
Design & UX
Multiplateforme
MvvmCross
07/03/2014

3
LES ENJEUX DE LA MOBILITÉ

#mstechdays

07/03/2014

4
Marché du mobile

07/03/2014

5
Fragmentation

07/03/2014

6
Fragmentation

07/03/2014

7
Fragmentation

07/03/2014

8
“By 2016, 70% of the mobile workforce
will have a smartphone, and 90% of
enterprises will have two or more
platforms to support”
Gartner Research

07/03/2014

9
HYBRIDE VS NATIF

#mstechdays

07/03/2014

10
Web mobile
• Plus
– Standard multiplateformes
– Version du site déclinée format
mobile
– Faibles coûts
– Référencement via moteur de
recherche

• Moins
– Expérience limitée au navigateur
– En ligne uniquement

Natif
• Plus
–
–
–
–

Meilleures performances
Référencement via Store
Respect de l’expérience utilisateur
Support du hors ligne

• Moins
– Spécifique à la plateforme
– Coûteux
– Maintenance
07/03/2014

11
Type

Description

Exemples

Cible

Langage

Web app

• Site web responsive
• Aide au développement
avec composants
réutilisables

jQuery Mobile, Sencha
Touch, Zepto JS, ImpactJS,
LimeJS, iUI, Wink…

Développeurs
web

Javascript

Hybride web

• Wrapper d’app HTML/JS
• Single-page app
• Web app avec
fonctionnalités natives

Adobe PhoneGap Build,
Uxebu, Sencha Touch v2,
MoSync…

Développeurs
web

HTML/CSS/Javascript

Cross-compilation

• 1 langage compilé dans le
langage natif cible

Xamarin, Titanium…

Développeurs
logiciel

Langage supporté (C#,
Javascript, Java…)

Runtime

• Machine virtuelle qui fait
tourner du code
intermédiaire

Adobe Air

Développeurs
logiciel

Langage supporté
(ActionScript, JS…)

Bas niveau

• Composants graphiques bas Unity, MonoGame,
niveau
DeltaEngine, Corona …
• Utilisé pour les jeux

Développeurs
jeux

Langage supporté
(C++, OpenGL…)

07/03/2014

12
Les utilisateurs veulent du natif pour :
- l’experience
- le look & feel
- les performances
- les fonctionnalités
XAMARIN

#mstechdays
Historique
Projet Mono (2001)
– Mené par Miguel de Icaza

MonoTouch / MonoDroid (2011)
Xamarin pour Mac (fin 2012)
Xamarin 2.0 (février 2013)
Partenariat Xamarin / Microsoft (novembre 2013)
07/03/2014

15
Xamarin c’est quoi ?

07/03/2014

16
Approche en silos

Android

iOS

Windows

Java
Eclipse

Objective-C
XCode

C#
Visual Studio

07/03/2014

17
Xamarin pour des applications natives
Développement en C#
1 Outil pour les compiler tous

07/03/2014

18
Rêve du développeur .NET
C# 5.0 / .NET 4.5
–
–
–
–

LINQ
async/await
.NET framework
Garbage collection

C# Libraries
– SQLite, JSON.NET, SharpZipLib…
07/03/2014

19
Outils
Visual Studio

– Add-in
– Connexion à un Mac

Xamarin Studio

– Basé sur MonoDevelop

Android designer
iOS designer (alpha)
– Mac uniquement

07/03/2014

20
Environnement de développement
OS

IDE
iOS
Android
Windows
Phone
(1) License business minimum
(2) Mac requis

Mac OS X
Xamarin
Studio
✓
✓
-

Windows
Xamarin
Visual Studio
Studio
(1)(2)
✓
(1)
✓
✓
-

✓

(1)

07/03/2014

21
Partage de code
Android

iOS

Windows

UI
Spécificités

UI
Spécificités

UI
Spécificités

Code commun
(business)

07/03/2014

22
API native
100% des APIs disponibles
Toujours à jour
– iOS7 pour Xamarin sorti le même jour

07/03/2014

23
Pourquoi utiliser Xamarin ?
- Développer en C# pour tous les OS
- Performances optimales
- API native
- Réutilisation de code
- Respect de l’expérience utilisateur

07/03/2014

24
Gratuit ?
Free Starter Edition
32kb d’IL
~25MB code source, sans linking

30 jours version d’essai
MSDN
– 90 jours avec un abonnement MSDN
– 1 Licence Business pour iOS + Android : $1399 ($1998)
– 5 Licences Enterprise pour iOS + Android : $9900 ($18900)
07/03/2014

26
Création de projets

XAMARIN
SOUS LE CAPOT

#mstechdays
Configuration

07/03/2014

29
Packaging et exécution
Packaging
–
–
–
–

Configuration
Compilation : ARM / IL
Inclue dll Xamarin utiles
Signature (device / store)

Xamarin runtime
– Allocations mémoire
– Garbage collection : Sgen vs Boehm
– Interopérabilité avec la plateforme

07/03/2014

30
Tests & debug
Debugger sur simulateur ou device
Xamarin Test Cloud
– 100aine de devices
– Fragmentation / Performance
– Scripting

07/03/2014

31
Documentation Xamarin
http://docs.xamarin.com/
Fondamentaux de chaque OS
Sujets avancés
Recettes
Exemples de code
07/03/2014

32
DESIGN & UX

#mstechdays

07/03/2014

33
UX iOS != Android != Windows

07/03/2014

34
UX différente

07/03/2014

35
Windows
iPhone
Phone

Android
Navigation différente

07/03/2014

37
Form factors
Téléphone vs tablette
Fragmentation Android
Form factor + capabilities
Différence d’UX
Approche développement différente
07/03/2014

38
MULTIPLATEFORME

#mstechdays

07/03/2014

39
Architecture
75% de code réutilisé (en moyenne)
Aucun partage d’UI
Portable Class Library
Link File
Conditional compilation
07/03/2014

40
File linking
Symboles prédéfinis
–
–
–
–
–

#if
#if
#if
#if
#if

__MOBILE__
__ANDROID__
__IOS__
WINDOWS_PHONE
SILVERLIGHT

Pour en avoir plus : Build Settings
07/03/2014

41
Architecture

07/03/2014

42
Vocabulaire
WINDOWS PHONE
View (.xaml)

ANDROID
Layout (.axml)

Page

Activity

UserControl
Frame
Application

Fragment
Intent
-

iOS
UIView (.xib ou
.storyboard)
UIViewController
UIView
UINavigationController
UIApplication

07/03/2014

43
Xamarin.Mobile
API cross platform
Contacts
Géolocalisation
Caméra
VNext
– Compas + Accéléromètre
– Notifications
07/03/2014

44
Android - Contacts
ContentResolver content = getContentResolver();
Cursor ncursor = null;
try {
ncursor = content.query (ContactsContract.Data.CONTENT_URI,
new String[] { ContactsContract.Data.MIMETYPE, ContactsContract.Contacts.LOOKUP_KEY, ContactsContract.Contacts.DISPLAY_NAME },
ContactsContract.Data.MIMETYPE + "=? AND " + ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME + "=?",
new String[] { ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE, "Smith" }, null);
while (ncursor.moveToNext()) {
print (ncursor.getString(ncursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)) + lineSep);
String lookupKey = ncursor.getString (ncursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Cursor dcursor = null;
try {
dcursor = content.query (ContactsContract.Data.CONTENT_URI,
new String[] { ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.Data.DATA1 },
ContactsContract.Contacts.LOOKUP_KEY + "=?", new String[] { lookupKey }, null);
while (dcursor.moveToNext()) {
String type = dcursor.getString (ncursor.getColumnIndex(ContactsContract.Data.MIMETYPE));
if (type.equals (ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE))
print ("Phone: " + dcursor.getString(dcursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)) + lineSep);
else if (type.equals (ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE))
print ("Email: " + dcursor.getString(dcursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA1)) + lineSep);
}
} finally {
if (dcursor != null)
dcursor.close();
}
}
} finally {
if (ncursor != null)
ncursor.close();
}

07/03/2014

45
iOS - Contacts
ABAddressBookRef ab = ABAddressBookCreate();
CFStringRef name = CFSTR ("Smith");
CFArrayRef smiths = ABAddressBookCopyPeopleWithName(ab, name);
CFRelease (name);
int count = CFArrayGetCount(smiths);
for (int i = 0; i < count; ++i) {
ABRecordRef person = (ABRecordRef)CFArrayGetValueAtIndex(smiths, (CFIndex)i);
if (ABRecordGetRecordType(person) != kABPersonType)
continue;
NSString *name = (NSString*)ABRecordCopyCompositeName(person);
NSLog ("%@n", name);
[name release];
ABMultiValueRef phoneNumberProp = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray* numbers = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProp);
CFRelease(phoneNumberProp);
for (NSString *pvalue in numbers)
NSLog ("Phone: %@n", pvalue);
[numbers release];
ABMultiValueRef emailProp = ABRecordCopyValue(person, kABPersonEmailProperty);
NSArray* emails = (NSArray*)ABMultiValueCopyArrayOfAllValues(emailProp);
CFRelease(emailProp);
for (NSString *evalue in emails)
NSLog ("Email: %@n");
[emails release];
}
CFRelease (ab);
CFRelease (smiths);

07/03/2014

46
Xamarin.Contacts
var book = new AddressBook (this) {
PreferContactAggregation = true
};
foreach (Contact c in book.Where (c => c.LastName == "Smith")) {
print (c.DisplayName);
foreach (Phone p in c.Phones)
print ("Phone: " + p.Number);

foreach (Email e in c.Emails)
print ("Email: " + e.Address);
}
07/03/2014

47
MonoTouch.Dialog
public class Expense
{
[Section("Expense Entry")]
[Entry("Enter expense name")]
public string Name;
[Section("Expense Details")]
[Caption("Description")]
[Entry] public string Details;
[Checkbox]
public bool IsApproved = true;
[Caption("Category")]
public Category ExpenseCategory;
}

07/03/2014

48
Composants Xamarin
http://components.xamarin.com
Composants cross platform
– UI
– Services
– Thèmes

07/03/2014

49
Bindings
Pont Xamarin <> natif
– https://github.com/mono/monotouch-bindings

07/03/2014

50
Architecture
Xamarin Components Store
Visual Studio

Xamarin Studio

Compilation native
Performances au top

Bindings natifs sur les APIs
iOS / Android

Mono

Implémentation cross-platform de .NET

07/03/2014

51
MVVMCROSS

#mstechdays

07/03/2014

52
MVC

07/03/2014

53
MVVM

07/03/2014

54
MvvmCross en résumé
Binding
– ValueConverter

ViewModels
– Navigation
– Cycle de vie

Inversion of Control
Contrôles simplifiés
Plugins
– File, DownloadCache, Json, Settings, Location…

07/03/2014

55
Configuration
Nuget
Ninja Coder for MvvmCross
Setup
IoC
Auto-configuration DataContext
07/03/2014

56
MVVM CROSS
CONCLUSION

#mstechdays

07/03/2014

58
Ressources
http://xamarin.com/getting-started
– Guide pour développer une app en 10mn

http://docs.xamarin.com
– Documentation, Recettes

http://github.xamarin.com
– Exemples de code

http://mvvmcross.blogspot.fr
– Documentation MvvmCross
07/03/2014

59
Conclusion
Applications natives
– Look & feel
– Performances

Le choix des armes
– Visual Studio
– Xamarin Studio

Partage de code
Communauté grandissante
– 500 000+ développeurs
07/03/2014

60
Conclusion
Oui mais …
–
–
–
–
–
–

Bonnes connaissances en architecture d’application
Paradigmes de chaque plateforme à apprendre
Besoin d’un Mac pour iOS
Packages plus lourds
Coût de la licence
Effet boîte noire
07/03/2014

61
Cyril CATHALA
@CyrilCathala
http://cyril.cathala.org

QUESTIONS ?
REPONSES !
07/03/2014

62
Xamarin

Titanium

PhoneGap

Corona

iOS, Android, WP

iOS, Android,
Blackberry

iOS, Android, WP
,
Blackberry

iOS, Android

Langage

C#

Javascript

HTML, CSS,
Javascript

Lua, ObjectiveC, C,
Java

Prix

$300 / plateforme /
développeur / an

Gratuit

Gratuit

$600 / développeur
/ an

UI

UI native (riche)

UI native (riche)

UI Web

Contrôles natifs
courants (acceptable)

Accès API

Accès complet

Accès complet

Limité

Accès complet
(presque)

Performances

Très proche du natif

Presque natif

Dépend de la
WebView du tél

Proche du OpenGL
natif

Types d’app

Productivité /
Utilitaire / Entreprise

Productivité /
Utilitaire

Basique / Simple

Jeux

Plateforme

07/03/2014

63

Contenu connexe

Tendances

Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaJulien Chable
 
[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016Cellenza
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobileMartin Arvisais
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 
La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsMicrosoft
 
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
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatSOAT
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
MUG Strasbourg - Back From Build
MUG Strasbourg - Back From BuildMUG Strasbourg - Back From Build
MUG Strasbourg - Back From Buildmugstrasbourg
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...SOAT
 
Les nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterLes nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterHamida Rebai Trabelsi
 
Introduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealIntroduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealVincent Biret
 
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
 
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
 

Tendances (17)

Native script
Native scriptNative script
Native script
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@Noumea
 
[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016[XamarinDay] Retours sur Evolve 2016
[XamarinDay] Retours sur Evolve 2016
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobile
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
 
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
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
MUG Strasbourg - Back From Build
MUG Strasbourg - Back From BuildMUG Strasbourg - Back From Build
MUG Strasbourg - Back From Build
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
 
Les nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App CenterLes nouveautés de Xamarin et Visual Studio App Center
Les nouveautés de Xamarin et Visual Studio App Center
 
Introduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint MontrealIntroduction dev office 365 2015 group usagers SharePoint Montreal
Introduction dev office 365 2015 group usagers SharePoint Montreal
 
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
 
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
 
Dreamforce Global Gathering
Dreamforce Global GatheringDreamforce Global Gathering
Dreamforce Global Gathering
 
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
 

En vedette

MongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesMongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesSOAT
 
Choisir sa plateforme de développement mobile
Choisir sa plateforme de développement mobileChoisir sa plateforme de développement mobile
Choisir sa plateforme de développement mobileSQLI DIGITAL EXPERIENCE
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileLilia Sfaxi
 
Gouvernement du Quebec - La sous-traitance des ressources informationnelles
Gouvernement du Quebec - La sous-traitance des ressources informationnellesGouvernement du Quebec - La sous-traitance des ressources informationnelles
Gouvernement du Quebec - La sous-traitance des ressources informationnellesjksdhh
 
052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)
052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)
052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)VogelDenise
 
Plan de-prevention-des-risques-argile-quel-impact-pour-les-assures
Plan de-prevention-des-risques-argile-quel-impact-pour-les-assuresPlan de-prevention-des-risques-argile-quel-impact-pour-les-assures
Plan de-prevention-des-risques-argile-quel-impact-pour-les-assuresMarcarazi
 
Lyon ville lumière
Lyon ville lumièreLyon ville lumière
Lyon ville lumièreIamCandide
 
Transition Agile technique à grande échelle
Transition Agile technique à grande échelleTransition Agile technique à grande échelle
Transition Agile technique à grande échelleSOAT
 
Quand la Fédé offre un iPod touch
Quand la Fédé offre un iPod touchQuand la Fédé offre un iPod touch
Quand la Fédé offre un iPod touchThomas Hermine
 
PASSÉ COMPOSÉ ET IMPARFAIT
PASSÉ COMPOSÉ ET IMPARFAITPASSÉ COMPOSÉ ET IMPARFAIT
PASSÉ COMPOSÉ ET IMPARFAITjuliana muñoz
 
Guide Loisirs et Commerces 2015 en Côte Landes Nature
Guide Loisirs et Commerces 2015 en Côte Landes NatureGuide Loisirs et Commerces 2015 en Côte Landes Nature
Guide Loisirs et Commerces 2015 en Côte Landes NatureSabine C
 
îLes féroé
îLes féroéîLes féroé
îLes féroélleall
 
BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)
BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)
BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)VogelDenise
 
Procedure AirFast
Procedure AirFastProcedure AirFast
Procedure AirFastgroupon
 
Kanban à grande échelle animé par Yannick Quenec'hdu
Kanban à grande échelle animé par Yannick Quenec'hduKanban à grande échelle animé par Yannick Quenec'hdu
Kanban à grande échelle animé par Yannick Quenec'hduFrench Scrum User Group
 

En vedette (20)

MongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesMongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de données
 
Choisir sa plateforme de développement mobile
Choisir sa plateforme de développement mobileChoisir sa plateforme de développement mobile
Choisir sa plateforme de développement mobile
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement Mobile
 
Gouvernement du Quebec - La sous-traitance des ressources informationnelles
Gouvernement du Quebec - La sous-traitance des ressources informationnellesGouvernement du Quebec - La sous-traitance des ressources informationnelles
Gouvernement du Quebec - La sous-traitance des ressources informationnelles
 
052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)
052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)
052215 - FAX TO DELNER THOMAS & BENNIE THOMPSON (French)
 
Plan de-prevention-des-risques-argile-quel-impact-pour-les-assures
Plan de-prevention-des-risques-argile-quel-impact-pour-les-assuresPlan de-prevention-des-risques-argile-quel-impact-pour-les-assures
Plan de-prevention-des-risques-argile-quel-impact-pour-les-assures
 
Lyon ville lumière
Lyon ville lumièreLyon ville lumière
Lyon ville lumière
 
Nature Photographie de rue
Nature Photographie de rue  Nature Photographie de rue
Nature Photographie de rue
 
Transition Agile technique à grande échelle
Transition Agile technique à grande échelleTransition Agile technique à grande échelle
Transition Agile technique à grande échelle
 
Sp ws1 nouria benghabrit remaoun
Sp ws1 nouria benghabrit remaounSp ws1 nouria benghabrit remaoun
Sp ws1 nouria benghabrit remaoun
 
Quand la Fédé offre un iPod touch
Quand la Fédé offre un iPod touchQuand la Fédé offre un iPod touch
Quand la Fédé offre un iPod touch
 
PASSÉ COMPOSÉ ET IMPARFAIT
PASSÉ COMPOSÉ ET IMPARFAITPASSÉ COMPOSÉ ET IMPARFAIT
PASSÉ COMPOSÉ ET IMPARFAIT
 
Ehile
EhileEhile
Ehile
 
Guide Loisirs et Commerces 2015 en Côte Landes Nature
Guide Loisirs et Commerces 2015 en Côte Landes NatureGuide Loisirs et Commerces 2015 en Côte Landes Nature
Guide Loisirs et Commerces 2015 en Côte Landes Nature
 
îLes féroé
îLes féroéîLes féroé
îLes féroé
 
BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)
BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)
BARACK OBAMA- UNDERSTANDING WILLIE LYNCH (French)
 
Parlons agile-entre-nous
Parlons agile-entre-nousParlons agile-entre-nous
Parlons agile-entre-nous
 
Procedure AirFast
Procedure AirFastProcedure AirFast
Procedure AirFast
 
Advertisement notes
Advertisement notesAdvertisement notes
Advertisement notes
 
Kanban à grande échelle animé par Yannick Quenec'hdu
Kanban à grande échelle animé par Yannick Quenec'hduKanban à grande échelle animé par Yannick Quenec'hdu
Kanban à grande échelle animé par Yannick Quenec'hdu
 

Similaire à Xamarin et le développement natif d’applications Android, iOS et Windows en C#

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
 
Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0lionel nimong
 
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageLaFrenchMobile
 
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...Microsoft Ideas
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8Microsoft
 
Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...
Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...
Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...Microsoft Technet France
 
Mobile Day : Enjeux d'aujoourd'hui
Mobile Day : Enjeux d'aujoourd'huiMobile Day : Enjeux d'aujoourd'hui
Mobile Day : Enjeux d'aujoourd'huiMichel HUBERT
 
Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular  Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular Maroua Haddad
 
(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et Xamarin
(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et Xamarin(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et Xamarin
(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et XamarinMicrosoft
 
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
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM France Lab
 
Tech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTelecomValley
 
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
 
Gérer un parc de téléphones (Droidcon Tunisia 2014)
Gérer un parc de téléphones (Droidcon Tunisia 2014)Gérer un parc de téléphones (Droidcon Tunisia 2014)
Gérer un parc de téléphones (Droidcon Tunisia 2014)Sidereo
 
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
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Philippe Beraud
 
TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...
TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...
TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...Bliz
 
Cas de la refonte de STM.info
Cas de la refonte de STM.infoCas de la refonte de STM.info
Cas de la refonte de STM.infoTP1
 

Similaire à Xamarin et le développement natif d’applications Android, iOS et Windows en C# (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
 
Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0Cellenza-Xamarin-From-0
Cellenza-Xamarin-From-0
 
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usage
 
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
Vivre dans une ère post OS et gérer l'hébergement des applications et la mobi...
 
L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8L'histoire d'HTML5 pour les développeurs Windows Phone 8
L'histoire d'HTML5 pour les développeurs Windows Phone 8
 
Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...
Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...
Scénarios de déploiement d’applications multiplateformes avec Citrix/Microsof...
 
Mobile Day : Enjeux d'aujoourd'hui
Mobile Day : Enjeux d'aujoourd'huiMobile Day : Enjeux d'aujoourd'hui
Mobile Day : Enjeux d'aujoourd'hui
 
Cv fr-gharsallah yassine
Cv fr-gharsallah yassineCv fr-gharsallah yassine
Cv fr-gharsallah yassine
 
Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular  Ingénieur FullStack Java/Angular
Ingénieur FullStack Java/Angular
 
(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et Xamarin
(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et Xamarin(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et Xamarin
(Re)découvrez vos contenus Office 365 sur mobile avec Office Graph et Xamarin
 
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
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
 
Tech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobiles
 
Cv fr Gharsallah Yassine
Cv fr Gharsallah YassineCv fr Gharsallah Yassine
Cv fr Gharsallah Yassine
 
Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)
 
Gérer un parc de téléphones (Droidcon Tunisia 2014)
Gérer un parc de téléphones (Droidcon Tunisia 2014)Gérer un parc de téléphones (Droidcon Tunisia 2014)
Gérer un parc de téléphones (Droidcon Tunisia 2014)
 
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
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
 
TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...
TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...
TechDays 2015 (Re)découvrez vos contenus Office 365 sur mobile avec Office Gr...
 
Cas de la refonte de STM.info
Cas de la refonte de STM.infoCas de la refonte de STM.info
Cas de la refonte de STM.info
 

Plus de SOAT

Back from Microsoft //Build 2018
Back from Microsoft //Build 2018Back from Microsoft //Build 2018
Back from Microsoft //Build 2018SOAT
 
L'entreprise libérée
L'entreprise libéréeL'entreprise libérée
L'entreprise libéréeSOAT
 
Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !SOAT
 
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseJAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseSOAT
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESSOAT
 
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-DurandSOAT
 
1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-DurandSOAT
 
2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-DurandSOAT
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014SOAT
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014SOAT
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soatSOAT
 
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014SOAT
 
ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)SOAT
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSOAT
 
Présentation spring data Matthieu Briend
Présentation spring data  Matthieu BriendPrésentation spring data  Matthieu Briend
Présentation spring data Matthieu BriendSOAT
 
Je suis agile tout seul - Ricardo Minhoto
Je suis agile tout seul - Ricardo MinhotoJe suis agile tout seul - Ricardo Minhoto
Je suis agile tout seul - Ricardo MinhotoSOAT
 
Facilitez vous la vie - Ricardo Minhoto
Facilitez vous la vie - Ricardo MinhotoFacilitez vous la vie - Ricardo Minhoto
Facilitez vous la vie - Ricardo MinhotoSOAT
 
Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613SOAT
 
Transition agile organisationnelle à grande échelle
Transition agile organisationnelle à grande échelleTransition agile organisationnelle à grande échelle
Transition agile organisationnelle à grande échelleSOAT
 

Plus de SOAT (20)

Back from Microsoft //Build 2018
Back from Microsoft //Build 2018Back from Microsoft //Build 2018
Back from Microsoft //Build 2018
 
L'entreprise libérée
L'entreprise libéréeL'entreprise libérée
L'entreprise libérée
 
Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !
 
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseJAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entreprise
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
 
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
 
1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand
 
2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat
 
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
 
ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVC
 
Présentation spring data Matthieu Briend
Présentation spring data  Matthieu BriendPrésentation spring data  Matthieu Briend
Présentation spring data Matthieu Briend
 
Je suis agile tout seul - Ricardo Minhoto
Je suis agile tout seul - Ricardo MinhotoJe suis agile tout seul - Ricardo Minhoto
Je suis agile tout seul - Ricardo Minhoto
 
Facilitez vous la vie - Ricardo Minhoto
Facilitez vous la vie - Ricardo MinhotoFacilitez vous la vie - Ricardo Minhoto
Facilitez vous la vie - Ricardo Minhoto
 
Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613Play : Premiers pas par l'exemple le 120613
Play : Premiers pas par l'exemple le 120613
 
Transition agile organisationnelle à grande échelle
Transition agile organisationnelle à grande échelleTransition agile organisationnelle à grande échelle
Transition agile organisationnelle à grande échelle
 

Xamarin et le développement natif d’applications Android, iOS et Windows en C#