¿Por qué la plataforma Xamarin es tan defectuosa?

  1. Mi primera respuesta es: porque es complejo: debajo de ti están el SDK de Android, los SDK de Apples (AppKit, UIKit), etc., numerosas herramientas para compilar y empaquetar, .net runtime en Linux (cualquiera incluyendo Android), mac OSX, etc.
  2. Mi experiencia de la vida real de los foros de Xamarin / correo electrónico de soporte, etc.

C: \ Users \ someuser> sudo
‘sudo’ no se reconoce como un comando interno o externo,
programa operable o archivo por lotes.

Ahora contra preguntas:

  1. ¿Puedes ser más específico con el término “buggy”?
    ¿Qué es el buggy? ¿Tienes una prueba mínima para reproducir? ¿Reportaste un error en github, bugzilla?
  2. ¿Por qué no arreglarlo? Nos encantan las relaciones públicas. O al menos informando. Xamarin es de código abierto.
  3. ¿podemos ver su código para juzgar la calidad?

Desde mi experiencia (Xamarin.Android desde 2010Q3 y Xamarin.iOS desde 2012, numerosas charlas y proyectos como consultor) hay varios casos:

  1. .net c # desarrollador [s] pensando: “Genial. Esto es C #, esto es fácil “. Luego escuchan / leen “la clase debe implementar Protocolo o Delegar UIPickerViewDelegate”. De repente ya no es fácil, tienen que aprender y, por lo tanto, la plataforma tiene errores
  2. Pregunta de la vida real en la conferencia de Windows Phone MVP sobre Xamarin.Forms: “¿Por qué se llama Entry y no TextBox? Estúpido. Esto debería haber sido TextBox “. No se dio cuenta de que esto era un compromiso entre el desarrollador de Android y iOS, el objetivo original de Xamarin / mono. La nomenclatura de Windows Phone se tendría en cuenta si la cuota de mercado hubiera sido superior al 0.3% (y esta cuota de mercado es el resultado de una estrecha mentalidad, también conocida como incapacidad de abrirse para adaptarse, a nuevas vistas, lo que queda claro de la pregunta y el comentario del MVP)
  3. Desarrollador del # 1 que intenta evitar componentes internos de Android e iOS, por lo que trabaja con Xamarin.Forms. Tarde o temprano golpea la pared con DependencyService y CustomRenderers.
    No, no puedes evitar aprender aspectos internos de Android e iOS.
    No, no puede aplicar solo el conocimiento .net. Ayuda, pero no es suficiente.
  4. El desarrollador de Android Java me dice que incluso la instalación está rota. Pasamos por el proceso de instalación de Android (no podía recordar dónde instaló SDK). 2 variantes generales: Android Studio y SDK primera instalación. ¿Caminos?
    Usuario dir hogar o% ProgramFiles%? x86 o 64b?
    El nuevo instalador intenta encontrar SDK ya instalados, pero esto no es fácil (más fácil con Apple, alientan la instalación de XCode en paralelo, menos opciones menos problemas)

En general: Xamarin es de naturaleza reactiva. Está bien con Apple e iOS / MacOSX, debido a las relaciones con los socios y el acceso a alphas / betas y vistas previas, es posible preparar todo. A Google no le importa, por lo que la única forma es realizar un seguimiento de los cambios en sus repositorios y reaccionar lo más rápido posible.

Cada actualización (SO, SDK, incluso paquetes) me causa un problema y no siempre es Xamarin.

Desde mi punto de vista, tuve problemas recientes: leí sobre errores en los simuladores de iOS 10 y los guardé en KeyAccountStore: el informe de la gente es como un error de Xamarin (usuarios de Xamarin), pero no lo es.

Otro: trabajo xplat (Android, iOS y Windows …). Para Windows, trabajo desde Parallels VM con VS. El emulador de Android x86 HAXM no puede iniciarse cuando Parallels está funcionando. ¿Es este error de Xamarin? No. La única característica agradable que falta es un mensaje de error que le indica que debe presentar una queja a Google o Parallels.

Otro: trabajo desde una máquina virtual y, a veces, las carpetas bin / obj / tienen archivos de compilación en Windows, por lo que obtengo errores en mac: “No se pudo encontrar C: \ Users \ …”. El desarrollador inteligente comprenderá de inmediato que se trata de archivos almacenados en caché para acelerar las compilaciones (compilaciones muy complejas) que intentan minimizar lo que es necesario construir. Esto no es un error, sino una función. Pregunté por el canal flojo de Xamarin y el equipo de Xamarin.Android se dio cuenta de que este es un escenario de trabajo bastante común. En 10 minutos agregaron BuildOnPlatform para la verificación del cambio de plataforma en MSBuild y el problema desapareció (después de la actualización).

Por lo tanto, vaya a los foros, soporte e indique qué tiene errores. Aquí en Quora este tipo de pregunta no es productiva, solo satisface su necesidad de tener una conversación amplia sobre algo / cualquier cosa …

Okay. Eche un vistazo a mi aplicación Speech Central. Es una aplicación bastante compleja hecha con Xamarin. No creo que pueda decir que es ‘defectuoso’, por lo que si se puede hacer una aplicación compleja con Xamarin sin ser ‘defectuoso’, si alguien encuentra que Xamarin está defectuoso, probablemente esté haciendo algo mal.