¿Qué tan bueno es Xamarin para el desarrollo de Android?

Construyo equipos de Android y Xamarin para mis clientes en todo el mundo.

Fuente: http://Flickr.com/ Creative Commons License

Xamarin se usa generalmente en grandes organizaciones, donde las tecnologías de Microsoft como C #, .NET, ASPNET ya están en uso.

Tiene sentido que usen Xamarin para construir sus aplicaciones móviles. También porque la experiencia en C # ya es un hecho.

En tecnologías como Android o iOS, es posible que no tengan ninguna experiencia en absoluto. Entonces Xamarin es un buen punto de partida.

¿Qué tan importante es el rendimiento?

A los equipos de ventas o servicio dentro de las empresas generalmente no les importa, si la aplicación tarda un poco en cargarse, o no es cien por ciento agradable en la interfaz de usuario.

Entonces, en ese caso, las aplicaciones multiplataforma, que generalmente son más lentas y no tan hermosas como las aplicaciones nativas (basadas en Android o iOS, por ejemplo), aún pueden ser una buena opción.

¿Qué tan importante es el costo?

Si desea crear una solución nativa, puede ser muy costosa. Porque necesita desarrollar para Android, iOS, Windows Phone y también potencialmente una aplicación web construida en PHP o cualquier otra tecnología web. Para cada tecnología, es posible que necesite un desarrollador por separado.

Con Xamarin puede ahorrar estos costos y podría tener un solo desarrollador creando las aplicaciones para todas estas plataformas (escritorio, web, móvil).

Pero hay una tarifa de licencia para Xamarin y las otras herramientas de desarrollo de Microsoft. Entonces, para aplicaciones más pequeñas, la solución nativa podría ser la mejor opción. Para proyectos más grandes, hace la diferencia si varios desarrolladores están trabajando en él o solo unos pocos (a través de Xamarin).

Plataforma nativa vs cruzada

La realidad es que muchas tecnologías multiplataforma han ido y venido. Algunos de estos ejemplos son SenchaTouch o incluso PhoneGap hasta cierto punto.

Lo mismo vale para Xamarin. Nadie sabe el futuro exacto de esta tecnología.

La gran ventaja que tiene Xamarin es que se basa en C # que funciona bien con otras tecnologías de Microsoft como .NET / ASPNET que ya están en uso en grandes organizaciones. Estas empresas podrían preferir permanecer en territorio conocido.

También los clientes, ya sean internos dentro de la empresa o clientes externos, desean tener aplicaciones muy rápidas y hermosas, lo que hoy en día solo se puede lograr con aplicaciones nativas creadas con Android o iOS.

Si los propios clientes conocen los desafíos del desarrollo multiplataforma, entonces es una buena opción optar por Xamarin. Puede ser una buena manera de lograr buenos resultados, más rápido.

Debes hacerte las siguientes preguntas:

  • ¿Qué tan importante es el rendimiento para la aplicación y los usuarios?
  • ¿El presupuesto admite la creación de muchas aplicaciones diferentes para plataformas separadas?
  • ¿En qué tecnologías tiene experiencia el equipo de desarrollo existente?
  • ¿Estás listo para enfrentar los desafíos del desarrollo cruzado de aplicaciones móviles?
  • ¿Es importante el diseño / interfaz de usuario?

Después de responder estas preguntas, puede tener una mejor idea de si Xamarin es una buena solución para crear aplicaciones de Android.

Conclusión

  1. Si desea crear aplicaciones rápidas, con un diseño hermoso y tener un buen presupuesto -> vaya para el desarrollo nativo de Android
  2. Si sus usuarios no son tan exigentes (como las personas de servicio dentro de una organización grande), tienen un presupuesto limitado, el rendimiento no importa mucho, el diseño puede ser simple, tener más conocimiento en C # que en Java -> luego elija Xamarin

También encontré que Krishnan es interesante:

Xamarin es definitivamente bueno pero no el mejor.

Depende totalmente de tu necesidad. Si solo quieres jugar con tus aplicaciones y no quieres aprender la forma nativa de desarrollar aplicaciones de Android, Xamarin es tu mejor opción ya que conoces C #.

La forma en que funcionan las dependencias de Android y las nuevas bibliotecas siempre favorece el desarrollo nativo. Xamarin le proporcionará todas las funciones avanzadas, la interfaz de usuario, etc., solo después de un tiempo de su lanzamiento.

¡Pero siempre es bueno comenzar con el idioma que ya conoce o prefiere!

¡Buena suerte!

Aquí algunas otras preguntas, que son similares a esto en Quora:

¿Debo aprender Xamarin o Android?

¿Qué tiene de bueno Xamarin?

Saludos cordiales
Sascha Thattil

CEO y Project Manager en Software-Developer-India.com

Descargo de responsabilidad: proporcionamos desarrolladores de Android y Xamarin a nuestros clientes en todo el mundo. Los desarrolladores trabajarán fuera de nuestras instalaciones en Kochi, India.

Para Android Java Dev, no tan bueno (aunque conozco varios en transición).
Para desarrolladores de C #: OK si saben que Android! = Windows *
Para el desarrollador de xplat: más que correcto, ya que ahorra dinero (recursos).

Es aceptable preferir C # y Visual Studio sobre Java y Eclipse / Android Studio, pero no los descuide: la experiencia (== alfabetización al menos) lo ayudará mucho.

Falta de bibliotecas: sí, pero estamos trabajando en eso (trabajo en el Equipo de Componentes y nuestro pan de cada día son enlaces)
Funcionalidades – no. Es nativo, API está cubierta al 100% + gemas .net como eventos asíncronos esperan, etc.
Soporte: el equipo de Xamarin está superado en número, pero tratamos de mantenerlo como puede ver. Pregunte y obtendrá una respuesta a una pregunta constructiva. Preguntas como “¿Java es mejor que c #?” O “¿Cómo escribo la aplicación de Android en Xamarin?” Probablemente no serán respondidas.

Y ahora para citar algunas otras respuestas:

De Krishnan:

“Si solo quieres jugar con tus aplicaciones y no quieres aprender la forma nativa de desarrollar aplicaciones de Android, Xamarin es tu mejor opción desde que conoces C #”.

Xamarin es nativo y está lejos de jugar. Sé que muchos desarrolladores “juegan” con Android en Java.

Xamarin le proporcionará todas las funciones avanzadas, la interfaz de usuario, etc., solo después de un tiempo de su lanzamiento.

Definir “después de un tiempo” por favor. Android es de código abierto y Xamarin. El equipo de Android monitorea los repositorios y el código en el que Google está trabajando. El problema es que el programa de socios de Google está lejos de Apple, donde el equipo de Xamarin tiene acceso a todo lo que Apple está trabajando y cada paso es conocido, por lo que Xamarin.IOS suele ser “el mismo día de soporte”, mientras que con Google es cuestión de días para obtener “funciones avanzadas” disponibles para los usuarios. Hay algunas personas agradables de Google que están tratando de ayudar a mejorar eso, pero generalmente con Google Xamarin funciona de manera reactiva (Extensiones reactivas es algo que Java World recogió de .net World) mientras que con Apple el proceso es más proactivo.

De Richmond Heskey Crentsil

xamarin admite la vinculación de jar de cualquier jar o aar de terceros a c # dll que funciona con clasificación 70/100

UPS. Los míos son 100/100. Se considera que los enlaces son de desarrollo Xamarin avanzado y de bajo nivel (metal desnudo, núcleo duro) y requiere mucho conocimiento de Android, modismos de Java, diferencias entre C # y Java. Lo mismo es cierto para iOS y Objective-C y Swift.
Además de las ataduras, hay portabilidad, pero esta es una historia más larga.
En general, la proporción depende de su conocimiento y experiencia.

de Ivan Ičin

los proyectos se gravarán con la necesidad de enviar tiempo de ejecución Mono, por lo que significa que el tamaño de su archivo será de varios MB más.

Esto es principalmente cierto, aunque se puede recortar aún más: enlace de palabras clave. Agregue a esa mono compilación y opciones de entorno … Y luego Android e iOS construyen trucos si los conoce.

Pero compruebe las aplicaciones y tamaños más populares (varios cientos de megas de localización, imágenes, etc.). Para mí, pocas megas de tiempo de ejecución, en comparación con trabajar con un excelente lenguaje y tecnologías conocidas y al mismo tiempo poder alcanzar 3+ plataformas móviles, 3 computadoras de escritorio y servidores con el mismo código …

Xamarin es definitivamente bueno pero no el mejor.

Depende totalmente de tu necesidad. Si solo quieres jugar con tus aplicaciones y no quieres aprender la forma nativa de desarrollar aplicaciones de Android, Xamarin es tu mejor opción ya que conoces C #.

La forma en que funcionan las dependencias de Android y las nuevas bibliotecas siempre favorece el desarrollo nativo. Xamarin le proporcionará todas las funciones avanzadas, la interfaz de usuario, etc., solo después de un tiempo de su lanzamiento.

¡Pero siempre es bueno comenzar con el idioma que ya conoce o prefiere!

¡Buena suerte!

Soy un desarrollador de WPF y C # y recientemente comencé a usar Xamarin para crear aplicaciones por curiosidad. Estoy tan sorprendido de ver cómo funciona xamarin con el enfoque MVVM. Me voló la cabeza. Fue un enfoque muy familiar para mí. Lo único que tuve que aprender es sus nuevos controles y diseños xaml (aún muy similares a WPF).

Además, hay muchos controles personalizados listos para cumplir con todos los requisitos de la interfaz de usuario de Android.

Ha pasado un año usando esta tecnología y debo decir que funciona de maravilla. Cosas que puedes hacer en Android Studio usando Java, puedes hacerlo en Visual Studio usando C #. Raramente me he enfrentado a algún problema como desarrollador y como prefieres c #. Creo que deberías intentarlo. Hay algunos tutoriales en YouTube que puede seguir, como Joe Rock, etc.

Buena suerte..

Xamarin con c # es bastante bueno, ya que en realidad puede usar funciones de lenguaje como Tpl, async, etc., pero el soporte personalizado de la biblioteca es un desafío, pero xamarin admite la vinculación de jar de cualquier jar o aar de terceros a c # dll que funciona con una calificación 70/100 , si vincula un jar o aar personalizado con muchas dependencias a c # Dll, aparte de esto, sin duda es una buena plataforma que disfrutará sin remordimientos y la mejor parte es que es gratis gracias a Microsoft

No hay una gran diferencia en lo que puede hacer (aunque si necesita usar las bibliotecas de Android Java, puede tener algunos problemas para que funcionen).

Sus proyectos serán gravados con la necesidad de enviar tiempo de ejecución Mono, por lo que significa que el tamaño de su archivo será de varios MB más.

Además, podría ser que Xamarin tiene algunos errores además de los errores del sistema Android, aunque en Android todavía no los he encontrado (lo hice en iOS).

Aparte de eso, debería funcionar. Por lo tanto, no espero grandes problemas, pero debo decir que en su caso tampoco veo grandes ganancias (Android Studio y Java no están realmente detrás de Visual Studio y C #). Parece que no conoce realmente el estado actual y la verdadera diferencia (no sabe que Android Studio es una forma recomendada de crear aplicaciones durante más de 2 años), por lo que tal vez debería buscar más.