Visual Studio : développer pour iOS et Android avec Xamarin

Visual Studio : développer pour iOS et Android avec Xamarin Xamarin fournit un addin pour l'IDE de Microsoft afin de développer des apps iOS, Android et Windows. Les meilleurs extraits d'un ouvrage d'Exakis.

Avec le support de Visual Studio, les développeurs ont tout ce dont ils ont besoin pour concevoir, développer, déboguer et déployer d'excellentes applications mobiles.

Xamarin s'intègre à Visual Studio 2013, permettant ainsi de construire des applications iOS, Android et Windows dans un environnement de développement Microsoft.

Les utilisateurs de Visual Studio ont enfin la liberté d'écrire du code pour toutes les grandes plateformes à l'aide du langage de programmation qu'ils connaissent et aiment, avec un accès complet à l'écosystème Microsoft et des outils comme ReSharper et Team Foundation Server.

 Une solution pour mobile: iOS, Android et Windows

Xamarin fournit un addin pour Visual Studio afin de développer des applications pour iOS, Android et Windows dans une seule solution. Les extensions de Xamarin permettent le design, le déploiement et le débogage sur simulateur ou sur un device.

visual studio xamarin
Visual Studio 2013 avec les projets Windows, Android et iOS © Exakis



 Développer des applications iOS natives dans Visual Studio

Xamarin.iOS pour Visual Studio permet aux applications iOS natives d'être développées et testées sur les ordinateurs Windows. Il suffit d'avoir un Mac en réseau pour fournir les services de compilation et de déploiement.

visual studio xamarin 2
Il suffit d'avoir un Mac en réseau pour fournir les services de compilation et de déploiement © Exakis


 Explorer les API simplement avec l'auto complétion de code et l'IntelliSense.

L'auto complétion de code et l'IntelliSense dans Visual Studio permet d'explorer l'ensemble des API iOS et Android, très simplement. 

visual studio xamarin
L'auto complétion dans Visual Studio permet d'explorer toutes les API iOS et Android. © Exakis


 Conserver votre boite à outils en place.

Xamarin et Visual Studio tire profit de l'ensemble de l'écosystème Microsoft, y compris de ReSharper, Team Foundation Server (TFS), Visual Studio Online, Windows Azure...
 

Création de projet


L'intégration de Xamarin dans Visual Studio est très complète. Comme évoqué précédemment, il est possible d'imbriquer les projets iOS, Android et Windows dans une seule solution Visual Studio (.sln).

La création de projet est très simple, des modèles de projet sont disponibles dans l'assistant de création de projet.

visual studio xamarin
Les catégories iOS et Android sont ajoutées par Xamarin. © Exakis



Dans les nouvelles catégories apportées par Xamarin, plusieurs types de projets sont disponibles :

 Android

Les modèles de projet "Android Application" contiennent l'ensemble du code, de l'interface, des images. De plus, deux modèles de projets différents permettent de cibler l'OS HoneyComb ou IceCream Sandwich.

Le modèle Android OpenGL Application fournit l'ensemble des API pour le développement de jeux 3D grâce aux API OpenGL. Il est également possible d'intégrer des librairies tierces java (.jar) pour cela, le modèle "Java Bindings Library" fournit un ensemble d'interaction pour l'interopérabilité java.

 iOS

Dans la même philosophie, les modèles de projets permettent de créer les applications pour iOS. Il est possible de distinguer les projets pour iPad ou iPhone. Il existe néanmoins un template qui cible les deux systèmes iOS. De la même manière, nous retrouvons les modèles pour interagir avec une librairie objective-c native et pour réaliser des jeux 3D avec OpenGL.

Le designer d'interface


La grande force de Visual Studio depuis de nombreuses années est sa puissance et sa capacité à fournir des designers d'interfaces. Au fil des versions, ces designers se sont grandement améliorés, que ce soit en fiabilité ou en performance. Pour ne pas déroger aux bonnes habitudes, Xamarin fournit un designer complet dans Visual Studio. De manière classique, l'interface graphique de votre application peut être construite grâce à un "glisser & déplacer" de contrôles utilisateurs depuis la boite à outils vers la surface active.

visual studio xamarin
Xamarin fournit un designer complet dans Visual Studio. © Exakis


Le designer permet de générer le fichier XAML de votre interface. Le code XML généré est donc :

visual studio xamarin 2
Fichier XAML généré © Exakis


Les contrôles rajoutés dans le designer ou le fichier XAML sont accessibles dans le code -behind en C#.

visual studio xamarin
Code -behind en C# © Exakis

 MVVM appliqué au multiplateforme

Le XAML, présent dans Windows 8 et Windows Phone supporte nativement les notions de "datacontext", de binding bidirectionnel et des commandes. Ce type de pattern n'est pas disponible sur Android ou iOS, ils sont conçus pour le modèle MVC

La solution se trouve donc grâce à une librairie open source disponible sur GitHub :
MVVMCross.

 Des API communes

Xamarin.Mobile est une bibliothèque qui expose un ensemble d'API pour accéder aux fonctionnalités de l'appareil mobile, que ce soit dans iOS, Android, et Windows. Cela augmente la quantité de code partageable.

Les abstractions disponibles sont :
- L'accès aux contacts,
- L'appareil photo,
- La géolocalisation.

 Un support de la PCL

Depuis novembre 2013, Xamarin supporte le format des librairies .NET PCL. Une librairie PCL (Portable Class Library) est une bibliothèque de classe spécifique qui permet de s'exécuter quelle que soit la version du Framework .NET. Elle apporte une abstraction de plateforme. Néanmoins, tous les types et fonctionnalité ne sont pas pris en charges.

Les librairies PCL les plus populaires sont compatibles avec Xamarin :
- Async for .NET Framework 4,
- Silverlight 4 and 5, and WP 7.5 & 8,
- Microsoft BCL Build,
- Components,
- Microsoft BCL Portability Pack,
- Microsoft Composition,
- Microsoft Compression,
- Microsoft HTTP Client Libraries,
- Microsoft Immutable Collections,
- Microsoft ASP.NET SignalR .NET Client,
- ODataLib.

 Le Debug

Toute la puissance du débogueur moderne de Visual Studio est disponible avec Xamarin, que ce soit dans le simulateur ou sur un périphérique.

Le debug d'une application iOS ou Android est identique au debug d'une application .NET classique. Il suffit de poser un point d'arrêt et d'utiliser les fonctionnalités standards.

visual studio xamarin
Le debug d'une application iOS ou Android est identique au debug d'une application .NET classique © Exakis