Développer des applications Android utilisant Xamarin Vs Native Android

Est-ce que quelqu’un sait me donner une comparaison des avantages et des inconvénients de la programmation via C # dans Xamarin contre le code natif Android java?

Le développement via Xamarin est bien plus limité que celui d’Android natif, ou le fossé n’est pas si loin. Je voudrais entendre l’opinion de quelqu’un qui a de l’expérience dans le développement avec les deux technologies.
Merci

Mise à jour 20160822: Ce conseil est toujours valable. Je suis continuellement interrogé à ce sujet. Une société que je connais est allée avec Xamarin uniquement pour découvrir qu’elle ne résolvait pas leurs problèmes Android car ils devaient apprendre les deux langues / implémentations pour résoudre la plupart de leurs problèmes.

Mise à jour 20150513: Jusqu’à présent, c’est l’une des questions les plus posées par les startups. De quelle façon devraient-ils aller? Je finis inévitablement par les pointer vers cet article. C’est toujours un conseil solide.

J’ai développé avec les deux. Vous pouvez pratiquement faire ce que vous voulez dans Xamarin. Les deux domaines difficiles que vous allez rencontrer sont:

  • Trouver un bon exemple de code de travail. Les cas Edge sont vraiment les plus désagréables ici.
  • Vous constaterez que vous finissez par apprendre Java via Xamarin car vous devez lire beaucoup de code Java.

Un autre problème est que si Xamarin se porte bien et gagne du terrain, la communauté est encore assez petite. Cela pose un problème lorsque vous publiez une application Xamarin. Si vous avez besoin de faire appel à quelqu’un pour le gérer, vous devez connaître .NET, C # et Android. Trouver ce combo est plutôt difficile et j’ai trouvé que tous les entrepreneurs ou consultants dont j’avais besoin pour mettre à jour mon application étaient très chers.

Thats le piège caché. Cela vous aidera à sortir plus rapidement, mais le maintien et le développement de nouvelles fonctionnalités vous coûteront cher, SI vous ne faites PAS les mises à jour.

Pourquoi je le sais? J’ai écrit deux applications avec Xamarin que je voulais éventuellement mettre à jour. J’ai dû contacter un entrepreneur pour le faire parce que je n’avais tout simplement pas le temps. C’était assez cher par rapport aux développeurs Android ou iOS déjà présents. J’ai fini par transférer ces applications de Xamarin vers Android natif et iOS.

Cela mis à part. C’est une plate-forme impressionnante. Si vous prévoyez de toujours travailler dessus, utilisez-le. Pouvoir utiliser la puissance de C # est génial. Après avoir travaillé avec C # pendant de nombreuses années, j’ai vraiment grandi avec un dédain pour Java. Thats préférence personnelle, mais c’est ce que c’est.

Tout est question de compromis.