¿Es MonoTouch una plataforma viable para el desarrollo de iPhone?
xamarin.ios (3)
MonoTouch parece ser una gran plataforma para el desarrollo de iPhone, pero me preocupa su implementación en Apple Store. ¿Hay ejemplos de aplicaciones creadas con él que estén disponibles actualmente en iTunes?
Estamos comenzando un nuevo proyecto para el iPhone y mantener todo el stack en C # sería genial, pero no queremos incurrir en el riesgo de ser rechazado de la tienda de Apple debido a MonoTouch.
He leído sobre varios juegos que actualmente usan mono (no MonoTouch) para gráficos 3D, pero no pude encontrar nada acerca de MonoTouch.
Al tocar esto en mi teléfono, voy a ser un poco conciso, disculpas por eso.
De todas formas:
- Como se dijo en una respuesta anterior, se han lanzado aplicaciones MonoTouch a la App Store. Si son dos o un billón no importa mucho. La diferencia entre uno y cero es infinita, la respuesta es inequívoca: sí, Apple aprobará las aplicaciones MonoTouch.
- MonoTouch juega según las reglas de Apple. Se escupe bits nativos. No hay interpretación de código en marcha, ni hay JITting. Su aplicación MonoTouch es un paquete como cualquier otro, y contiene un binario nativo como cualquier otro.
- Las aplicaciones MonoTouch son más grandes de lo que serían si se escribieran con la pila de Apple. Esto se debe a que su aplicación MonoTouch se basa en un subconjunto del marco Mono / .Net. En ese sentido, sin embargo, una vez que entras en lo que se envía , no hay nada especialmente diferente en una aplicación MonoTouch. Trabajé en una compañía donde construimos nuestras aplicaciones (desarrolladas con la pila de Apple) en nuestro marco personalizado. Aumentó el tamaño de nuestras aplicaciones, pero también redujo el tiempo de producción (y eso siempre es un compromiso, ¿verdad?). Además, el tamaño del paquete de aplicaciones justo después de la compilación puede ser engañoso. Debido a que los paquetes están comprimidos para la App Store, el tamaño disminuye drásticamente: puede escribir fácilmente una aplicación MonoTouch que se encuentre dentro del límite de tamaño aceptable para las aplicaciones entregadas OTA (menciono esto porque es una pregunta que MT n0obs (con razón) tiende a preguntar ). Por lo tanto, Apple no tiene ninguna razón real para rechazar según el tamaño.
- Ya sea MonoTouch o un marco interno personalizado como el que solía trabajar en / con, el material de MonoTouch, cuando se envía con su aplicación, es solo otro marco que podría haber sido escrito en Objective-C .
- Si le preocupa configurar su aplicación para su distribución utilizando la pila completa de MonoTouch y cómo esto podría afectar sus posibilidades de aprobación, puede decirle a MonoDevelop (o la utilidad mtouch de la línea de comandos) que genere un proyecto de Xcode. Verá que su código se ha transformado: verá el ensamblaje nativo (no una versión de IL). Puede crear y ejecutar su aplicación MonoTouch producida directamente desde Xcode, momento en el que MonoTouch está básicamente fuera de la imagen (excepto como un marco contra el que está construyendo (como MapKit, por ejemplo)).
Por alguna razón, todo esto molesta a un pequeño, pero vocal, subconjunto de desarrolladores de iPhone que, por cualquier razón, no pueden soportar la idea de personas que no conocen usando una herramienta diferente para crear aplicaciones. Pero su valor no cambia el simple hecho de que Apple ha aceptado las aplicaciones MonoTouch (y las aplicaciones de Unity mucho antes).
La razón principal por la que verán que las aplicaciones de MT sean rechazadas es que los desarrolladores de MT, según mi experiencia (he estado hablando con bastantes, después de dar algunas charlas, publicar en foros, listas de correo, aquí ...) , es que aún no han aprendido cómo desarrollar una aplicación para iPhone . Eso es algo que los desarrolladores de iPhone deben hacer a pesar de cómo escriben sus aplicaciones. MonoTouch no es el obstáculo; es saber, por ejemplo, que Apple quiere que su aplicación se vea de cierta manera y que funcione de cierta manera; debe verse y sentirse y comportarse como otras (buenas) aplicaciones de iPhone, y no debería Esté entre los ejemplos de intentos de escribir aplicaciones de escritorio para un teléfono (que es donde su desarrollador promedio comete su primer error al pasar al desarrollo móvil).
En última instancia, su herramienta de elección no va a importar siempre que cree bits que cumplan las reglas de Apple (como MonoTouch). El verdadero obstáculo es aprender el iPhone a modo de diseño de aplicaciones.
Los desarrolladores de aplicaciones .Net, ya sea en Windows, Windows Mobile o en cualquier lugar donde se ejecute Mono (no MonoTouch), están acostumbrados a desarrollar aplicaciones de acuerdo con sus propios gustos. Eso no vuela en el mundo iPhone.
Puedes ir con seguridad con MonoTouch. Como se ha mostrado, Apple aprobará las aplicaciones MT.
Lo que realmente necesitas hacer (una vez más, independientemente de la pila de desarrolladores que elijas) es leer los documentos de Apple sobre el diseño de la aplicación para iPhone y sus pautas . Hay una gran multitud de desarrolladores que atribuyen sus rechazos de aplicaciones a que Apple es malvada (o lo que sea, básicamente, excusas no informadas), cuando la verdad es que sus aplicaciones son basura y está claro que los desarrolladores no cumplieron las reglas (o incluso molestarse en leer las reglas).
Al final, en muchos casos, escribirá mucho menos código cuando use MonoTouch, y el costo de eso es un paquete de aplicaciones más grande (que, como dije, saldrá de un tamaño muy razonable después de que haya sido comprimido para su distribución).
Eso no es un gran problema. Con 3g, los usuarios no sudan descargando aplicaciones de tamaño 2-3MB. Si es lo suficientemente pequeño para enviar OTA, todo está bien. Y en los casos en los que su aplicación supera el límite, es probable que se trate de recursos integrados (medios, imágenes, videos, etc., así es como los paquetes generalmente se hinchan a tamaños de solo wifi), y eso es algo con lo que los desarrolladores de Objective-C también tienen que lidiar , así que eso no es un problema MonoTouch.
Por lo tanto, ignore a los que odian (que ni siquiera han probado MonoTouch ni se molestaron en saber cómo funciona), y tenga la seguridad de que, siempre que su aplicación cumpla con las pautas de Apple, no hay razón para que la rechacen. No significa que se garantice la aceptación de su aplicación siempre que la diseñe correctamente (muchas aplicaciones se rechazan sin motivo aparente), pero puede considerarse, más o menos, que está en pie de igualdad con los desarrolladores que utilizan las herramientas de Apple.
Espero que esto ayude :)
La comunidad de MonoTouch mantiene una lista de las aplicaciones de MonoTouch que están disponibles hoy en Apple Store y que se han escrito utilizando MonoTouch .
La plataforma de desarrollo de juegos unity está utilizando la misma base de código mono touch para el soporte de C # (y ha contribuido al proyecto).