Desventajas del desarrollo de aplicaciones mobilees multiplataforma utilizando Visual Studio

Microsoft ha presentado su nuevo Visual Studio, con compatibilidad para desarrollar aplicaciones multiplataforma para Android, iOS y Windows.

Esta es una muy buena noticia, para los desarrolladores, que una empresa grande y confiable produjo tal cosa. Puede hacer la vida más fácil, mucho.

Pero, como saben, siempre hay desventajas cuando obtiene ventajas. Entonces quiero saber:

1) ¿Cuál es la diferencia entre desarrollar aplicaciones nativas para cada plataforma y usar este tipo de herramientas? ¿Cuál es la desventaja en comparación con el uso por ejemplo de Objective-C o Java para iOS y Android por separado?

2) ¿Hay alguna dependencia para ejecutar aplicaciones desarrolladas en diferentes sistemas operativos? ¿Algo como el marco .NET?

3) ¿Hay algún costo de performance? ¿O funciona igual que los nativos?

4) ¿Qué tipo de aplicaciones se deben desarrollar con estas herramientas?

Desde mi punto de vista, esta no es una buena idea para desarrollar la aplicación Android o iOS en XAMARIN. En primer lugar, se produce un problema de performance. No puedes lograr el performance como una aplicación nativa. Hay algunas dependencies como Xamarin comstack C # a código nativo, pero todavía confía en el time de ejecución Mono para hacer mucho de su trabajo.

Nativo, no trampa: esto es nativo. Pero hay una sobrecarga, no es como nativo de ObjectiveC. Las aplicaciones serán más grandes: estas cosas menores son importantes cuando intentas get el impulso máximo de tu propio dispositivo mobile restrictivo de resources.

Todavía necesitas un mac para ios 🙂 Un gran énfasis en mejores patrones de aplicación como MVC o MVVM, porque la interfaz de usuario sigue siendo nativa. Puede escribir sobre un 70% de código reutilizable usando Xamarin, pero el último 30% o más, dependiendo del layout y la naturaleza de su aplicación, debe ser nativo.

Hablando en términos generales, según mi experiencia, he tenido más suerte para encontrar soporte y muestras de código para nativos, que para Xamarin.

Y como dije, todavía necesitas saber ObjectiveC y Java, incluso si estás usando Xamarin.

Y Visual Studio + Xamarin = $$$$$. Además, un producto desarrollado por Xamarin, aunque superior a HTML5 y HTML5 empaquetado, le costará más. Debes evaluar si tus necesidades justifican el costo.

Sin embargo, en la aplicación práctica, no creo que sea muy útil. Considere esto … Si está codificando C #, este código debe traducirse a objective-C o Java, y esa traducción depende del SDK de Xamarin. Si Apple lanza 4.000 nuevas API en la próxima versión de iOS mañana, ¿cuánto time pasará antes de que la API de Xamarin le permita llamar a esas API nativas? Y multiplicado por dos si agrega Java. Si no puede esperar, codifique lo que pueda en C # y luego escriba código nativo para el rest, pero ahora está apoyando tres bases de códigos y la ventaja de Xamarin sale volando por la window.

Proporciono algunos enlaces de debate sobre este tema.

http://willowtreeapps.com/blog/xamarin-or-native-development-tools-for-ios-android-projects/

Limitación de Android Xamarin

https://developer.xamarin.com/guides/android/advanced_topics/limitations/

https://www.linkedin.com/grp/post/121874-5848849341191569409

https://www.quora.com/Why-would-people-build-native-mobile-applications-for-Android-iOS-using-Java-Objective-C-when-they-could-use-Xamarin-C- for-all-platforms-if-license-cost-isnt-an-issue

Por qué no recomiendo Xamarin para el desarrollo mobile