Visual Studio : développer pour iOS et Android avec Xamarin
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.

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.

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.

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.

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.

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

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

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.
