Cuándo usar Xamarin.Forms vs Xamarin Native?

Necesito hacer una elección entre aplicaciones nativas de Xamarin.Forms vs Xamarin.

Quiero ir con Xamarin.Forms como el código de la interfaz de usuario también se compartirá.

Entonces, ¿cuáles son los inconvenientes de Xamarin.Forms en comparación con Native.

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 una experiencia previa de encoding 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 Forms.

Lo mismo es cierto si no saben nada de iOS / Android, pero saben algo de xaml. Sure Xamarin.Forms es diferente de WPF / Silverlight, pero saber xaml seguramente me ayudó a usar Forms.

Actuación

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

Tiempo hasta la entrega

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

Complejidad de tu aplicación

Teniendo en cuenta el punto anterior, al usar Formularios puedes tropezar con algún error de show showper (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.

Xamarin.Forms

Pros

  • Crea una UI para todas las plataformas
  • Utilice componentes básicos que estén disponibles en todas las plataformas (como botones, campos de texto, rotuladores, etc.)
  • No es necesario aprender todos los marcos de UI nativos
  • Proceso rápido de desarrollo de plataforma cruzada
  • Los renderizadores nativos personalizados le dan la capacidad de ajustar la apariencia y la sensación de los controles

Contras

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

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

Pros

  • Crear una UI por plataforma
  • Capacidad sencilla para ajustar las características y componentes de la interfaz de usuario específica de la plataforma
  • Obtenga el máximo de su UI

Contras

  • El proceso de desarrollo de la plataforma cruzada es mucho más lento
  • Necesita aprender todos los marcos de interfaz de usuario nativa
  • Puede tener un código duplicado (ya que describe casi la misma interfaz de usuario en tres formas diferentes específicas de la plataforma)

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 entrada de datos
  • Prototipos y pruebas de concepto
  • Aplicaciones que requieren poca funcionalidad específica de la plataforma
  • Aplicaciones donde el código compartido es más importante que la interfaz de usuario personalizada

Xamarin.iOS y Xamarin.Android son los mejores para:

  • Aplicaciones que requieren interacciones especializadas
  • Aplicaciones con un diseño muy pulido
  • Aplicaciones que usan muchas API específicas de la plataforma
  • Aplicaciones donde la IU personalizada es más importante que el uso compartido de código

Desde el sitio web de Xamarin

Xamarin.Forms es mejor para:

  • Aplicaciones de entrada de datos
  • Prototipos y pruebas de concepto
  • Aplicaciones que requieren poca funcionalidad específica de la plataforma
  • Aplicaciones donde el código compartido es más importante que la interfaz de usuario personalizada

Xamarin.iOS y Xamarin.Android son los mejores para:

  • Aplicaciones que requieren interacciones especializadas

  • Aplicaciones con un diseño muy pulido

  • Aplicaciones que usan muchas API específicas de la plataforma

  • Aplicaciones donde la IU personalizada es más importante que el uso compartido de código