¿Es beneficioso usar Xamarin para el desarrollo de aplicaciones móviles? Si es así, ¿por qué?

Todo depende. 🙂

En general, seguirá siendo necesario escribir código específico de la plataforma e incluso caer en Java nativo (o Kotlin) u ObjectiveC (o Swift), por lo que la base de conocimiento requerida para escribir aplicaciones Xamarin no se reduce, de hecho agregar el conjunto de conocimientos de Xamarin (C #, .Net, características / peculiaridades / errores de Xamarin SDE) a la mezcla.

Además, el tiempo de inicio de la aplicación se ve penalizado por la necesidad de cargar el Mono C # VM (CLR) que, en mi experiencia, agrega hasta 5 segundos.

Entonces…

Si sus desarrolladores ya conocen las tres plataformas (.Net, Android, iOS), y su aplicación no supera los límites de las plataformas móviles (sin vistas personalizadas, Bluetooth, etc. que necesitan un código específico de la plataforma), y la aplicación 5- el segundo retraso de inicio es aceptable, usted podría beneficiarse de Xamarin.

Si puede permitirse el tiempo / presupuesto, le sugeriría una prueba de concepto, es decir, cree una aplicación de demostración simple que incluya características clave de su aplicación de destino y tome una decisión basada en eso.

Dicho esto, ahora estoy comenzando un puerto de una aplicación de Android compleja (todas las vistas personalizadas) para iOS y probablemente desarrolle más información sobre este problema a medida que avance.

Evitaría a Xamarin como una plaga. He pasado más tiempo tratando de compilar y ejecutar compilaciones de aplicaciones en Xamarin que escribiendo código. Además, el rendimiento y la experiencia de usuario en aplicaciones multiplataforma generalmente no es tan bueno como el desarrollo nativo. Puede estar bien para una solución multiplataforma realmente rápida, pero no la usaría para ninguna aplicación con cierta complejidad que desee que sea de alta calidad.

Es beneficioso porque puede escribir su código de lógica de negocios una vez y usarlo tanto para aplicaciones iOS como Android.

Además, si ya tiene experiencia en el desarrollo de C #, podrá utilizarlo por completo, es decir, no necesita aprender otro lenguaje nuevo, por lo tanto, puede comenzar a crear su aplicación más pronto que tarde.

Debería ayudarte a desarrollar las aplicaciones más rápido. Dependiendo de la estrategia que elija, puede obtener una aplicación de mayor o menor calidad y compartir más o menos el código, pero no puede elegir comprometer la calidad y aún mantener parte del código compartido.