Creemos que MonoTouch es muy maduro en este momento, ya que ha estado en el mercado desde septiembre de 2009, en este punto los compiladores, los enlaces, nuestro depurador, el SDK y las herramientas son muy maduros.
No tiene que aceptar mi palabra, puede descargar la evaluación MonoTouch y seguir nuestros tutoriales en línea que le darán una idea del marco.
En cuanto a la solución multiplataforma, realmente depende del tipo de aplicación que esté creando. Si su aplicación es esencialmente una interfaz de usuario pura, con muy poca lógica de back-end, no podrá reutilizar una gran cantidad de código, pero si termina utilizando servicios de terceros, bibliotecas de terceros, o se encuentra escribiendo muchas Código de la interfaz de usuario, podrá compartir trivialmente el código entre iOS, Android y WP7 / WinRT.
- ¿Siri es un asesino de Google?
- ¿Aplicación para ocultar mensajes en iPhone?
- ¿Cuál es la mejor herramienta de recuperación de datos de iPhone?
- ¿Se pueden sincronizar o cargar imágenes, contactos, etc. en un iPhone en una tableta que tiene un sistema operativo Android?
- ¿Cómo estimaría la cantidad de aplicaciones disponibles en Apple App Store en 2020?
Algunos factores que mejorarán la cantidad de código que compartiría entre las plataformas:
* Código de lógica de negocios, usando las bibliotecas de clase base
* Uso de la base de datos local con Sqlite-NET (hay un puerto administrado completo para Windows 7 y WinRT, por lo que también terminas usando el mismo código en esas plataformas, incluso si MIcrosoft no envía Sqlite)
* Uso de componentes .NET sin UI existentes
* Uso de bibliotecas que acceden a servicios en línea de terceros
* Código de dispositivo común (libreta de direcciones, geolocalización, captura de foto / video de la cámara) que hemos resumido en Xamarin.
* Gráficos y animaciones 2D y 3D cuando se usa MonoGame (la biblioteca XNA de código abierto).
Creamos una aplicación de línea de negocio de muestra para el Mobile World Congress que muestra una forma posible de estructurar el código para compartir código entre plataformas. La división en esa aplicación es una base de datos / enfoque parcialmente conectado y no es realmente representativa de otro tipo de aplicaciones, como dibujos, música, gráficos, noticias, compras u otros escenarios.
Como anécdota, lo que nuestros clientes nos dicen es que para aplicaciones más grandes, su reutilización de código es entre 60% y 70%, ya que la mayoría de las aplicaciones tendrán una buena porción de código nativo.
También puede usar HTML para su capa de presentación y mantener la lógica empresarial en C # si lo desea, a algunas personas les encanta el enfoque, por ejemplo:
https://github.com/crdeutsch/Mon…
Eso proporciona una forma de hacer que su código HTML se comunique con el host en C #.
Personalmente, nos gusta la combinación de C # y las API nativas y creemos que encontrar buenos desarrolladores de C # no es tan difícil, y en general, cada desarrollador de C # que aprende iOS y Android se enamora de la combinación.