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.
- ¿Qué es el almacenamiento en caché persistente?
- ¿Cuántos tipos de aplicaciones móviles hay?
- ¿Por qué las aplicaciones móviles exitosas crean relaciones más sólidas con los clientes?
- ¿Crear aplicaciones para dueños de negocios locales?
- ¿Cómo puede un desarrollador de aplicaciones beneficiarse de las aplicaciones de software libre?
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.