¿Cuándo usar Xamarin.Forms vs Xamarin Native? [cerrado]

159

Necesito tomar una decisión entre usar Xamarin.Forms vs Xamarin native para desarrollar una aplicación.

Quiero ir con Xamarin. Los formularios como código UI también se compartirán.

Entonces, ¿cuáles son los aspectos positivos y negativos técnicos de usar Xamarin.Forms sobre Xamarin Native?

Ajay Kumar
fuente
1
Eche un vistazo a The Good and The Bad of Xamarin Mobile Development para una excelente discusión a partir de enero de 2017.
Oliver
1
En pocas palabras ... ¡Solo ve por Native! Lo digo en base a mi propia experiencia. Reescribí la aplicación de formularios a Native.
Tejasvi Hegde
2
Los comentarios de 2015 ya no reflejan la realidad de Xamarin Forms. Ha recorrido un largo camino y parece haber explotado después de que .NET Core \ Standard maduró.
Sean Anderson
Esta pregunta necesita ser reabierta. Ahora tiene 4 años y ha habido grandes desarrollos dentro del marco Xamarin.Forms para permitir el desarrollo de aplicaciones empresariales.
James Mallon

Respuestas:

144

Además de los puntos que se muestran en el sitio web de Xamarin, también debe considerar:

Los antecedentes de tu equipo

¿Alguien en su equipo tiene experiencia previa en codificación nativa para Android o iOS (usando Java u Obj-C / Swift)? Esta experiencia se reutiliza en Xamarin nativo, pero tendrán que aprender otra plataforma para codificar en Formularios.

Lo mismo es cierto si no saben nada sobre iOS / Android pero conocen algo de XAML. Claro, Xamarin. Los formularios son diferentes de WPF / Silverlight, pero conocer XAML seguramente me ayudó a usar los formularios.

Actuación

Xamarin Forms todavía tiene algunos problemas, como el tiempo de inicialización. Debe considerar si esto será o no un problema para su usuario final. No me molestaría en esperar un momento para abrir una aplicación de tablero que utilizo de vez en cuando, pero me enojaría si sucediera lo mismo con una aplicación de mensajería.

Tiempo hasta la entrega

Dado que el uso compartido de código es mayor cuando se utilizan formularios, puede esperar un tiempo de entrega más rápido.

Complejidad de tu aplicación

Teniendo en cuenta el punto anterior, al usar los Formularios puede toparse con algún error de detención de show (es una tecnología muy nueva después de todo) que anulará las ganancias de tiempo. Considere la complejidad de su aplicación antes de elegir.

William Barbosa
fuente
2
Agregaré a esto si espera tener una aplicación atractiva, terminará teniendo muchas interfaces personalizadas con el código nativo de Xamarin para cada plataforma
Roman Nazarevych
2
Esta respuesta y el comentario anterior son muy viejos. El rendimiento no es un gran problema hoy si habilita AOT. con respecto a la buena aplicación en el comentario tampoco es cierto. Las formas de xamarin mejoraron y puede lograr aplicaciones atractivas fácilmente.
batmaci
Xamarin Forms no ha mejorado mucho en términos de obtener fácilmente una interfaz de usuario atractiva. Xamarin.Shell hará grandes mejoras en ese sentido, pero a partir de ahora, Xamarin sigue siendo difícil obtener algo remotamente atractivo sin escribir componentes personalizados para cada plataforma.
Alexander
176

Xamarin.Forms

Pros

  • Crea una interfaz de usuario para todas las plataformas
  • Utilice componentes básicos que están disponibles en todas las plataformas (como botones, campos de texto, hiladores, etc.)
  • No es necesario aprender todos los marcos nativos de IU
  • Proceso de desarrollo rápido multiplataforma
  • Los renderizadores nativos personalizados le permiten ajustar la apariencia y la sensación de los controles.

Contras

  • Todavía es un nuevo marco y todavía contiene errores
  • Especialmente Windows RT aún no es estable
  • A veces es más lento que acceder a los controles nativos directamente
  • Los renderizadores nativos personalizados tienen límites y están poco documentados

Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT

Pros

  • Crea una interfaz de usuario por plataforma
  • Fácil capacidad para ajustar las características y componentes específicos de la interfaz de usuario de la plataforma
  • Obtenga el máximo de su interfaz de usuario

Contras

  • El proceso de desarrollo multiplataforma es mucho más lento
  • Necesitas aprender todos los frameworks nativos de UI
  • Es posible que tenga un código duplicado (ya que describe casi la misma interfaz de usuario en tres formas diferentes de plataforma específica)

Además de eso, Xamarin dice en https://xamarin.com/forms :

¿Qué enfoque de Xamarin es mejor para tu aplicación?

Xamarin.Forms es mejor para:

  • Aplicaciones de ingreso de datos
  • Prototipos y pruebas de concepto
  • Aplicaciones que requieren poca funcionalidad específica de plataforma
  • Aplicaciones donde compartir código es más importante que la IU personalizada

Xamarin.iOS y Xamarin.Android son mejores para:

  • Aplicaciones que requieren interacciones especializadas
  • Aplicaciones con diseño altamente pulido
  • Aplicaciones que usan muchas API específicas de plataforma
  • Aplicaciones donde la IU personalizada es más importante que compartir código
Wosi
fuente
Con respecto a las "aplicaciones que requieren poca funcionalidad específica de la plataforma", ¿hay ejemplos para tener una idea de qué tipo de funcionalidades estamos hablando?
NS.X.
La poca funcionalidad de la plataforma significa que está vinculando datos y otras reglas comerciales principalmente como la aplicación. No hay muchos dibujos personalizados, o tratar de hacer que todo sea perfecto en píxeles. Si está de acuerdo con un diseño común que responda, entonces Xamarin.Forms es una buena opción.
Jason Short
La mejor respuesta en mi opinión. Esto me lo aclaró: "Xamarin.Forms: crear una interfaz de usuario para todas las plataformas" y "Xamarin.iOS, Xamarin.Android: crear una interfaz de usuario por plataforma". ¡Gracias!
Tadej
1
@Dibzmania Nunca he dicho que sea adecuado solo para prototipos y aplicaciones básicas. Si quieres tener una aplicación multiplataforma con una interfaz de usuario casi idéntica en cada plataforma, entonces Xamarin.Forms es genial. Si desea tener una IU personalizada por plataforma, entonces probablemente no se beneficiará de Xamarin.Forms y debería utilizar las bibliotecas de IU nativas.
Wosi
1
Creo que este artículo de Nathan Williams es útil: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN
44

Desde el sitio web de Xamarin

Xamarin.Forms es mejor para:

  • Aplicaciones de ingreso de datos
  • Prototipos y pruebas de concepto
  • Aplicaciones que requieren poca funcionalidad específica de plataforma
  • Aplicaciones donde compartir código es más importante que la IU personalizada

Xamarin.iOS y Xamarin.Android son mejores para:

  • Aplicaciones que requieren interacciones especializadas

  • Aplicaciones con diseño altamente pulido

  • Aplicaciones que usan muchas API específicas de plataforma

  • Aplicaciones donde la IU personalizada es más importante que compartir código

Guilherme Torres Castro
fuente
1
Esta respuesta es obsoleta / antigua. Use formularios con prisma. Experiencia disfrutable. Soy un desarrollador único que construye una aplicación enorme y soy muy productivo y mi aplicación simplemente funciona en todo. Si desea aplicaciones de aspecto impresionante, hay varias vistas de terceros como Grial UI Kit (consulte su vista previa gratuita en vivo de XAML). Recuerde, Xamarin Forms todavía usa los controles nativos por defecto.
Sean Anderson