Xamarin, c'est quoi ?
Xamarin est une technologie qui te permet de concevoir des applications natives pour différentes plateformes mobiles telles que Android, iOS ou encore Windows Phone et ce, en n'utilisant qu'un seul langage de programmation, le C#.
Il ne vous sera donc pas nécessaire d'avoir les bases en Java, utilisé habituellement pour développer sous Android ou encore en Objective C pour iOS, en revanche il vous sera très utile de connaître globalement le fonctionnement de chacune des plateformes visées (cycle de vie de l’application, directives générales, etc.)

Ici, Xamarin prend le contre-pied des autres technologies multiplateforme. Le développeur commence par créer une base de code commune. Elle contient notamment la logique métier, le stockage en base de données, les appels réseaux, les éléments d’interface communs. Ce projet peut être facilement encadré par des tests unitaires car son code est indépendant de tout système spécifique. Ensuite, un projet est crée par plateforme cible. Il contient l’interface graphique, la navigation et les composants propres à chaque SDK. Ainsi, on peut tirer parti des spécificités propres à Android ou iOS sans réduire l’expérience utilisateur au plus petit commun dénominateur.

Avec l'avènement des technologies mobiles et des smartphones, Xamarin devient de plus en plus populaire, surtout depuis sa mise à disposition gratuite dans Visual Studio. Voici quelques docs que je peux recommander pour ceux qui pensent à s'y mettre :

Ce e-book gratuit et complet en Français 

Xamarin sur MSDN 

Channel9

Plus de ressources en anglais