Definir pls nativos.
Xamarin.Forms es nativo. Ídem.
Xamarin. La tecnología es nativa. Ídem.
Obtiene el mismo código ejecutable, a veces incluso mejor optimizado. Cuando Android no tenía ART (pre KitKat), la máquina virtual mono era mejor en muchos casos que la máquina virtual Dalvik.
- ¿Qué tecnología es la mejor para el desarrollo de aplicaciones?
- ¿Por qué las aplicaciones móviles necesitan actualizaciones frecuentes?
- ¿Qué tipo de programación / código requiere una aplicación de red basada en la ubicación?
- ¿Qué aplicaciones deberíamos tener en nuestro móvil?
- Cómo crear una aplicación móvil para comenzar a ganar dinero
En general, Xamarin tiene:
- enfoque tradicional / estándar
- el usuario escribe la aplicación en C # en lugar de Java (Objective-C / Swift)
Todo lo demás es lo mismo - + algunos beneficios
- C # / F #
LINQ, async / await, Attributes (el desarrollador de c # no necesita editar AndroidManifest.xml – OK rara vez) - uso compartido de código: Business / Domain Logic está escrito en C # o F # y se puede compartir horizontalmente a través de plataformas móviles o incluso de escritorio y verticalmente en el cliente y / o servidor (ASP.net)
- Xamarin.Forms
delgada capa de abstracción sobre diferentes plataformas que expone solo clases, métodos y propiedades comunes para todas las plataformas - mapeo (parte de él)
observe las diferencias en solo 2 muestras, así que obtenga la imagen …
– mayúsculas para espacios de nombres (paquetes java)
– sin espacios de nombres para el objetivo-c - Xamarin.Forms.Button
Android.Widget.Button (android.widget.Button)
UIButton (iOS)
Windows.UI.Xaml.Controls.Button (UWP)
System.Windows.Controls.Button (Windows Phone y otros)
NSButton (AppKit) - Xamarin.Forms.Entry
Android.Widget.EditText (android.widget.EditText)
UITextField (iOS)
Windows.UI.Xaml.Controls.TextBox (UWP)
System.Windows.Controls.TextBox (Windows Phone y otros)
NSTextField (AppKit) - …
Verifique el código de Xamarin.Forms en github para ver cómo se representa Button, Entry u otra cosa en cada plataforma (busque renderizadores de cutstom) …
Entonces, cuando usar:
- Enfoque estándar / tradicional de Xamarin (Xamarin.Android y Xamarin.iOS)
- Aplicaciones intensivas de IU
- uso de API específicas de la plataforma (hardware, utilidades, etc.)
- Xamarin.Forms
- para aplicaciones simples
- aplicaciones de entrada de datos empresariales, sin UI sofisticada
- creación de prototipos (creo tramas XF para cutomers, para que tengan idea de la navegación)
si se aplica correctamente en capas (arquitectura), es posible cambiar a Estándar / Tradicional con cierto esfuerzo. - no para aplicaciones complejas (intensivas en IU)
- posible, pero el esfuerzo aumenta drásticamente !! Se necesita conocimiento de la plataforma. Aquí es donde los desarrolladores de c # / f # que vienen de Windows golpean la pared (generalmente). ¡Los desarrolladores de Java (Objective-C / Swift) podrían tener ventaja aquí!
Trabajo en varias aplicaciones similares (salud y deportes / fitness) y uso Xamarin.Forms.
Razonamiento / Argumentos:
- alcance de la plataforma (cobertura)
- no necesito una interfaz de usuario sofisticada: necesito funcionalidad (soy desarrollador)
- ahorro de costos para implementar múltiples aplicaciones de clientes móviles / de escritorio y del lado del servidor en ASP.net core