¿Cuáles son las ventajas y desventajas de usar Xamarin para el desarrollo de aplicaciones móviles Android e iOS?

Xamarin, utilizado por aproximadamente 1,4 millones de desarrolladores en 120 países de todo el mundo, es un marco de desarrollo de aplicaciones multiplataforma confiable que ofrece Microsoft. Una base de código común de C # puede orientarse a iOS, Android y Windows Phone. Sin embargo, como cualquier otro marco tecnológico, también tiene sus ventajas y desventajas.

=== Pros de Xamarin ===

1. Interfaces de usuario nativas

Las aplicaciones basadas en Xamarin exhiben no solo una apariencia nativa, sino que también demuestran o se comportan de manera nativa como los usuarios esperarían en su plataforma Android, iOS o Windows Phone.

2. Acceso a la API nativa

Las aplicaciones de Xamarin pueden acceder a toda la gama de funcionalidades disponibles con el dispositivo de destino o el sistema operativo. También pueden ayudar a aprovechar las capacidades de productos o servicios de terceros, incluidos iBeacons y Android Fragments.

3. Rendimiento nativo

Aprovechando al máximo las capacidades de aceleración de hardware creadas con el dispositivo, Xamarin ayuda a los desarrolladores a crear potentes aplicaciones de juegos o entretenimiento con contenido multimedia.

4. Más tipos, menos mecanografía

La presencia de inferencia de tipo C # ayuda a los desarrolladores a escribir codificación engorrosa con una facilidad perfecta con menos pulsaciones de teclas. Omitir anotaciones repetitivas o de tipo detallado, minimiza la probabilidad de error.

5. Tipos más fuertes, herramientas más inteligentes

Los tipos colectivos o informáticos se pueden usar sin comentarios. La finalización ubicua del código y una mejor comprensión de la intención contribuyen a construir una aplicación rica en funciones con un menor esfuerzo.

6. Asíncrono a nivel de idioma

Crear una aplicación receptiva se vuelve más fácil y rápido con la capacidad de programación asincrónica disponible con C #. Independientemente del lenguaje de programación en uso, Objective-C, Swift o Java, los desarrolladores pueden hacer uso de las devoluciones de llamada y la contabilidad manual necesaria para que una aplicación responda.

7. Funciones de primera clase

A diferencia de Android y Objective-C, donde las lambdas no están disponibles o son ajustables, en C #, es más simple que permite a los desarrolladores sentirse cómodos al crear funciones y características dentro de una aplicación.

=== Contras de Xamarin ===

1. Poco apoyo comunitario en Xamarin

La comunidad de desarrolladores y académicos asociados con Xamarin es comparativamente más pequeña que otras comunidades como PhoneGap (Cordova), por lo que a veces es difícil encontrar soluciones al problema de desarrollo de aplicaciones. La falta de apoyo de la comunidad es algo que desalienta a otros a adoptar este marco de desarrollo de aplicaciones multiplataforma.

2. Lento en mantener el ritmo con las actualizaciones de Android e iOS

Tanto Android como iOS son líderes del mercado en sistemas operativos móviles y tienden a lanzar actualizaciones y mejoras para deleitar a los consumidores y ampliar su alcance. Curiosamente, los desarrolladores de aplicaciones móviles deben seguir el ritmo del cambio creando una aplicación atractiva e intuitiva. Desafortunadamente, Xamarin no logra lanzar nuevos complementos compatibles que los desarrolladores puedan usar.

3. Acceso restringido a bibliotecas de código abierto

Xamarin no es liberal al permitir que los desarrolladores utilicen tecnologías de código abierto. Los restringe para usar solo los elementos integrados, además de algunos otros derivados de los recursos .NET. Esta es una barrera importante en la creación de aplicaciones personalizadas que pueden potenciar y deleitar a los usuarios, y ayudar a frenar los problemas de abandono de aplicaciones en gran medida.

Crédito de la imagen: Blog de Atly

Espero que hayas encontrado útil la información. Ayúdame a hacerlo más relevante colocando tus sugerencias en la sección de comentarios.

Londres

1 camino de Furzeground

Parque Stockley

Heathrow, UB11 1BD

Teléfono: +44207096 0066

Correo electrónico: [correo electrónico protegido]

También puede contactarnos en:

Twitter: Rootinfosol

Linkedin: Rootinfosol

Facebook: Rootinfosol

Google Plus: Rootinfosol

Pros y contras del desarrollo de aplicaciones de Xamarin:

Si planea crear una aplicación única que se ejecutará en todas las plataformas, entonces Xamarin es su respuesta. Esta plataforma única le permite desarrollar y probar aplicaciones, ahorrando así su tiempo, esfuerzo y dinero principalmente.

Las aplicaciones para esta plataforma se desarrollan utilizando C # y ayudan a crear aplicaciones robustas con código orientado a objetos. Xamarin ahora ha colaborado con Microsoft , y puede venir con características importantes en el futuro próximo.

Pros

  • Reduce el costo de desarrollo y el tiempo disminuye en un 40%
  • Codificación orientada a objetos con resultado multiplataforma
  • Análisis incorporado para ver el resultado de análisis para la aplicación
  • Es un 75% nativo en comparación con las plataformas nativas reales

Contras

  • Las bibliotecas de terceros son limitadas.
  • Viene con costo de licencia
  • Depende de bibliotecas y marcos de terceros
  • No es posible una interfaz de usuario o animaciones avanzadas.

Lea más sobre el desarrollo de aplicaciones móviles en Australia, EE. UU., Reino Unido y Nueva Zelanda.

Aquí enumero a continuación los pros y los contras de Xamarin …

Pros-

Xamarin es una excelente manera de reducir gastos al desarrollar aplicaciones complejas para múltiples sistemas operativos.

En lugar de desarrollar una aplicación completa para cada sistema, que aumenta el tiempo de comercialización y agota los recursos monetarios, los desarrolladores pueden sindicar alrededor de dos tercios de una base de código única usando C #.

Xamarin se destaca por ser una herramienta que ofrece un alto rendimiento con experiencias específicas del dispositivo utilizando API nativas para crear una interfaz de usuario (UI) y una experiencia de usuario (UE) a la que los usuarios de dispositivos específicos están acostumbrados.

Además, Xamarin permite el control de calidad y las pruebas de funcionalidad para detectar errores en miles de dispositivos para garantizar una integración perfecta.

Contras-

Cuando se utiliza Xamarin, existe una gran sobrecarga de software operativo. Esto se debe a la vinculación de códigos y referencias entre marcos .NET y los sistemas operativos de destino. Esto aumenta los tiempos de descarga y arranque de una aplicación.

La mayoría del código se puede sindicar en múltiples plataformas, pero el desarrollo central de la interfaz de usuario no es portátil. Esto significa que parte de la codificación debe realizarse para cada plataforma y, desafortunadamente, el desarrollo de la interfaz de usuario puede llevar mucho tiempo.

Xamarin es un aparato utilizado para crear aplicaciones portátiles de etapas cruzadas. Funciona a través de la estructura Mono para hablar con la interfaz de programa de aplicación (API) de capacidades básicas de teléfonos celulares, incluidos contactos, cámara y área geográfica para marcos de trabajo conocidos de iOS, Android y Windows. Permite a los ingenieros fabricar aplicaciones sólidas utilizando el dialecto de programación C # que se sigue ejecutando en la infraestructura de lenguaje común (CLI) de .NET. Visto como un dispositivo de “componer una vez, ejecutar en cualquier lugar”, utilizar Xamarin para crear aplicaciones de teléfonos celulares tiene sus aspectos positivos y negativos.

Pros:

Xamarin es una excelente manera de reducir gastos al desarrollar aplicaciones complejas para múltiples sistemas operativos. En lugar de desarrollar una aplicación completa para cada sistema, que aumenta el tiempo de comercialización y agota los recursos monetarios, los desarrolladores pueden sindicar alrededor de dos tercios de una base de código única usando C #. Xamarin se destaca por ser una herramienta que ofrece un alto rendimiento con experiencias específicas del dispositivo utilizando API nativas para crear una interfaz de usuario (UI) y una experiencia de usuario (UE) a la que los usuarios de dispositivos específicos están acostumbrados. Además, podemos contratar desarrolladores de Xamarin, ya que Xamarin permite el control de calidad y las pruebas de funcionalidad para detectar errores en miles de dispositivos para garantizar una integración perfecta.

Contras:

Aunque el desarrollo de aplicaciones con Xamarin ahorra tiempo y recursos, existen algunas desventajas inherentes. Cuando se utiliza Xamarin, existe una gran sobrecarga de software operativo. Esto se debe a la vinculación de códigos y referencias entre marcos .NET y los sistemas operativos de destino. Esto aumenta los tiempos de descarga y arranque de una aplicación. La frase “escribir una vez ejecutada en cualquier lugar” no se aplica exactamente a Xamarin. La mayoría del código se puede sindicar en múltiples plataformas, pero el desarrollo central de la interfaz de usuario no es portátil. Esto significa que parte de la codificación debe realizarse para cada plataforma y, desafortunadamente, el desarrollo de la interfaz de usuario puede llevar mucho tiempo. Además, hay un soporte limitado para la codificación fuera de Xamarin. El código desarrollado en Xamarin no se transferirá y no se puede reutilizar para aplicaciones nativas o HTML5 para iOS o Android.

Pros:

  • De acuerdo con el espectro IEEE, C # aún permanece en los 5 principales lenguajes de programación utilizados en 2015. Si tiene acceso a los desarrolladores de C #, Xamarin será una opción atractiva para desarrollar capacidades móviles
  • Toneladas de soporte para .NET y Visual Studio
  • Visual Studio (IMO) es uno de los mejores IDE del mercado, puede crear aplicaciones de Xamarin con Visual Studio
  • Amplio catálogo de bibliotecas de terceros de Xamarin
  • Soporte el mismo día para todas las últimas actualizaciones de Android e iOS porque está utilizando la funcionalidad de enlace nativo de C #

Contras:

  • El código compartido puede ser un poco inapropiado. Si está haciendo algo complejo que requiere libs de hardware como bluetooth, debe bifurcar el código para el soporte de Android e iOS. Además, los formularios Xamarin solo funcionan en las IU más básicas. Cualquier trabajo de IU personalizado necesitará nuevamente dos bases de código
  • Conceptualmente, todavía está pegando algo entre la base de código, la capa de aplicación y el hardware. Para mí eso me pone muy nervioso y al menos perpetúa mi miedo a la falta de control.
  • El jurado todavía está fuera: si realmente te ahorra tiempo. El caso de uso de Xamarin es muy específico de la aplicación.
  • Costoso

Pros:

  • Funciona muy bien. Experiencia nativa.
  • Puede usar fácilmente un gran grupo de bibliotecas .Net de terceros existentes
  • Fácil de expandir en otras plataformas (si en el futuro decide apuntar a más plataformas, por ejemplo, Windows Mobile, Mac, Linux)
  • Ahorra tiempo y recursos si usted es desarrollador .Net.
  • O tenga un código existente en .Net para usar en la aplicación.
  • No es necesario trabajar con varios idiomas.

Contras:

  • Desarrolladores difíciles de encontrar en comparación con los nativos. Aunque ahora la situación es mejor.
  • Licencia comercial costosa, que debe renovarse cada año.
  • A veces puede comportarse de manera diferente a los nativos (pero la comunidad de Xamarin trabaja duro y hay actualizaciones frecuentes)

Pros:
Comparta hasta el 90% del código . Especialmente si consumes servicios o tienes una buena arquitectura
– Todos sus proyectos en una sola solución, en un solo IDE (que tiene menos errores)
– Al contrario de muchos marcos de “compartir código de iOS y Android”, es nativo
– Un único lenguaje increíblemente poderoso (C #). Aprende un idioma, recluta a los mismos desarrolladores. Pueden pasar más tiempo aprendiendo los marcos y también pueden trabajar en la otra aplicación (mientras que, por lo general, tienes desarrolladores de Android vs iOS que no pueden trabajar en la otra solución)
– Bibliotecas .Net y paquetes NuGet
– Corrige un error una vez
– Ahorra mucho tiempo (¿dije que puede compartir hasta el 90% del código?)
– IDE de Visual Studio
es gratis!

Contras:
– Desarrolladores difíciles de encontrar (¡pero generalmente encuentras menos de ellos!)
– Lleva algún tiempo acostumbrarse si no es un desarrollador de .NET o un desarrollador de iOS / Android (como lo haría de todos modos si creara una aplicación ObjC / Swift + Java).

Experiencia personal:
Tuve que reescribir una aplicación completa (iOS + Android) para un cliente, mientras agregaba otra aplicación (iOS + Android también). Aquí es donde Xamarin es el más útil, puede compartir código por dos razones (múltiples aplicaciones similares + múltiples SO)

editar: el mayor inconveniente (precio) ha desaparecido 😉

Pros:

  • Comparta la lógica de negocios entre plataformas.
  • Si ya sabe c #, está apagado y ejecutándose. Un lenguaje para desarrollar en iOS y Android.
  • Construye interfaces de usuario nativas. Algunas personas ven esto como algo negativo, “¿qué quieres decir con que tengo que construir dos IU?” Pero eso es realmente positivo. Puede seguir más fácilmente las pautas de diseño para iOS y Android, que si usa una herramienta híbrida o Xamarin.Forms.
  • Visual studio y Xamarin studio son herramientas buenas, pero no excelentes.
  • Las aplicaciones son nativas. Las IU son nativas. Se ven, huelen y prueban como cualquier otra aplicación que sea nativa de la plataforma porque son nativas.
  • Puede usar bibliotecas que ya están en la plataforma al vincularlas.

Contras:

  • Si aún no conoce c # y .net framework, probablemente no sea una buena opción.

Aquí te enumero algunas de las principales diferencias entre iOS y Android entre el desarrollo de aplicaciones de Xamarin …

Xamarin es altamente efectivo para aplicaciones pesadas sin conexión

Lo bueno de Xamarin es que reutiliza el acceso a datos y las capas de lógica de negocios en todas las plataformas, dejando la interfaz de usuario específica para cada sistema operativo. En la práctica, vale la pena reutilizar el DAL y el BLL en todas las plataformas cuando hay una funcionalidad que requiere cálculos locales en el dispositivo, como:

  • apoyando el modo fuera de línea
  • manejar grandes cantidades de datos localmente
  • realizar reconocimiento de imagen
  • integración con dispositivos a través de bluetooth, etc.

He visto mi parte de aplicaciones como esta en el entorno empresarial orientado a los empleados, como almacenes o actividades de seguimiento del tiempo. Xamarin puede alcanzar hasta un 80% de reutilización de código en estos casos; eso es realmente impresionante y es un buen caso de uso para la plataforma. Más importante aún, cuando se reutiliza dicha cantidad de código, todo el producto adquiere un enfoque diferente. No tiene dos sub-equipos separados trabajando en aplicaciones iOS y Android; usted tiene un equipo que es responsable de un solo producto; eso es claramente una ventaja en términos de desarrollo de productos.

Xamarin es débil para aplicaciones con interfaz de usuario pesada

En contraste, la mayoría de las aplicaciones orientadas al consumidor varían dramáticamente en estructuras. La mayoría de los esfuerzos se centran en hacer que la interfaz de usuario sea atractiva para los clientes con todas las animaciones personalizadas y transiciones suaves (por cierto, aquí hay una buena razón por la cual, mientras que DAL y BLL solo recuperan datos del servidor, a veces los almacenan en caché localmente y envían la información procesada a la nube.

Aquí hay un ejemplo del tamaño de la base de código en una aplicación típica construida con Xamarin sin mucha funcionalidad en el dispositivo:

  • Núcleo común – 25 kB
  • Android: 100 kB
  • iOS – 120 kB

La reutilización del código llega al 20%, mientras que los gastos generales y los riesgos (que cubriré más adelante) siguen siendo los mismos. E incluso si hay más funcionalidades multiplataforma, cuando sea necesario una IU personalizada, Xamarin terminará trabajando en exceso.

Desafortunadamente, Xamarin.Forms no resuelve este problema. Para citar su página web oficial, Xamarin. Los formularios son eficientes para la creación de prototipos y aplicaciones de entrada de datos y débiles para la interfaz de usuario personalizada y la funcionalidad específica de la plataforma.

En general, en ELEKS no recomendamos Xamarin para aplicaciones orientadas al consumidor.

  • Si está seguro de que la mayoría de sus aplicaciones estarán orientadas a los empleados, esa reducción de costos es más importante que UX elegante y está acostumbrado a .NET como su tecnología predeterminada, entonces Xamarin es una gran opción.
  • Si sabe que sus aplicaciones estarán orientadas principalmente al consumidor, UX es más importante que el costo y hay algunas incertidumbres en el desarrollo, quédese con el desarrollo nativo.
  • Si aún no sabe qué aplicaciones tendrá que crear, es una cuestión de riesgo. O paga menos ahora con el riesgo de pagar dos veces en el futuro (elija Xamarin ahora con el riesgo de mezclar nativo y Xamarin en el futuro) o pague más ahora para evitar pagar 2 veces en el futuro (quédese con el nativo).

Fuente de elekslabs!


Krify Innovations (Reino Unido) Ltd. | India

Sitio web: https://www.krify.co

Krify es una empresa multinacional especializada en la creación de las últimas aplicaciones móviles, aplicaciones web desde 2005, ubicada en el Reino Unido y la nación asiática. Krify colaboró ​​con clientes de toda Europa, región geográfica y EE. UU., Para diseñar aplicaciones móviles innovadoras compatibles con iPhone, teléfono Android, iPad, teléfono Blackberry, Windows, etc. Sus clientes potenciales son en su mayoría internacionales en comparación con empresas alternativas. abarca una participación de mercado justificable en la creación de aplicaciones móviles y web competitivas, además de extender los servicios basados ​​principalmente en las necesidades a sus clientes, incluso en las plataformas portátiles y más avanzadas.

Infografía de desarrollo de aplicaciones móviles iOS

iOS es actualmente uno de los dos potentes sistemas operativos que tienen la mayoría de la cuota de mercado en los sistemas operativos de todo el mundo. El innovador sistema operativo de Apple siempre ha estado en la cima, con nuevas tecnologías y técnicas sofisticadas.

¡Aquí hay una infografía para ayudarlo a familiarizarse con Apple y lo que se necesita para convertirse en un desarrollador de aplicaciones de Apple!

Una infografía sobre desarrollo de aplicaciones móviles iOS por Eduonix

Saludos,

Sam Dias

Ventajas

  • Desarrollo simplificado y más rápido
  • Compartir código en todas partes

  • Bibliotecas de clases portátiles
  • Tienda de componentes
  • Formularios de Xamarins: los formularios de Xamarin incluyen más de 40 controles y diseños, que se asignan a controles nativos en tiempo de ejecución.

  • Edge de Xamarin: Aquí hay una tabla de comparación que muestra las diferencias entre las 3 plataformas

Desventajas

  • Costo de la licencia de Xamarin
  • Incompatibilidad con la última versión de varias plataformas.
  • Acceso limitado a bibliotecas de código abierto
  • Documentación de componentes
  • Xamarin Community Support
  • Diseñador de Visual Studio

Si desea saber más acerca de las ventajas y desventajas de Xamarin, visite el siguiente enlace: Xamarin- Lo bueno, lo malo y lo feo

Consulte los pros y los contras de la plataforma nativa e híbrida para su aplicación móvil. Echar un vistazo

Los servicios de desarrollo de aplicaciones móviles de Xamarin se están utilizando para desarrollar aplicaciones multiplataforma. Xamarin usa lenguaje C para desarrollar aplicaciones tanto para iOS como para Android y todas las demás plataformas, y además está basado en un solo código. No es necesario escribir los diferentes códigos para diferentes plataformas.

Contras-

Debe comprender por separado los marcos para todas las plataformas.

Desarrollo móvil: plataforma nativa o multiplataforma