He visto esta pregunta (y sus variaciones) mucho últimamente. Lo que me sorprende es la frecuencia con la que la gente responde, pero la poca respuesta .
Tengo mis preferencias (disfruto de ambas pilas), pero aquí es donde la mayoría de las "respuestas" comienzan a fallar. No debería ser sobre lo que quiero (o lo que alguien más quiere).
Así es como debería determinar el valor de MonoTouch: obviamente, no puedo ser objetivo, pero creo que esto es bastante fanático:
¿Es esto por diversión o negocios? Si desea consultar en esta área, puede recuperar sus $ 399 muy rápidamente.
¿Desea aprender la plataforma de adentro hacia afuera, o "solo" quiere escribir aplicaciones para ella?
¿Te gusta .Net lo suficiente como para que usar una pila de desarrollo diferente te quite la diversión? Nuevamente, me gustan las dos pilas (Apple y Mono), pero para mí MonoTouch hace que la experiencia sea mucho más divertida. No he dejado de usar las herramientas de Apple, pero eso se debe principalmente a que realmente disfruto de ambas pilas . Amo el iPhone y amo .Net. En ese caso, para mí, MonoTouch era obvio.
¿Te sientes cómodo trabajando con C? No me refiero a Objective-C, pero C: es importante porque Objective-C es C. Es una versión OO agradable, elegante y amigable, pero si los punteros te dan los heebie-jeebies, MonoTouch es tu amigo. Y no escuches a los detractores que piensan que eres un experto en desarrollo si sucede que no te gustan los punteros (o C, etc.). Solía caminar con una copia de la referencia de bolsillo de IBM ROM BIOS, y cuando estaba escribiendo ensamblaje y forzando a mi computadora a modos de video divertidos y escribiendo mis propios bits de representación de fuente para ellos y sistemas de ventanas (ciertamente basura), no lo hacía. No creo que los desarrolladores de QuickBasic fueran wusses. Yo estabaun desarrollador de QuickBasic (además del resto). Nunca cedas ante el machismo nerd. Si no le gusta C, y si no le gustan los punteros, y si desea mantenerse lo más lejos posible de la gestión de memoria manual (y, para ser justos, no está nada mal en ObjC), entonces. .. MonoTouch. Y no te preocupes por eso.
¿Te gustaría dirigirte a usuarios o empresas? No me importa mucho, pero todavía hay personas en Edge, y el hecho es que puedes crear un paquete de descarga mucho más pequeño si usas la pila de Apple. He estado jugando con MonoTouch, y tengo una pequeña aplicación decente que, una vez comprimida, se reduce a aproximadamente 2.7 MB (cuando envía su aplicación para su distribución, la comprime, cuando las aplicaciones se descargan de la tienda, ' vuelva a comprimir, así que cuando descubra si su aplicación va a llegar por debajo del límite de 10 MB OTA, cierre primero la ventosa; se sorprenderá gratamente con MonoTouch). Pero, aparte de la felicidad MT, medio meg frente a casi tres (por ejemplo) es algo que podría ser importante para usted si se dirige a usuarios finales. Si está pensando en el trabajo empresarial, unos pocos MB no importan en absoluto. Y, para que quede claro: pronto enviaré una aplicación basada en MT a la tienda, y no tengo ningún problema con el tamaño. No me molesta en absoluto. Pero si eso es algo que preocuparíausted , entonces la pila de Apple gana este.
¿Funciona algún XML? MonoTouch. Período.
Manipulación de cuerdas? Manipulación de la fecha? ¿Un millón de otras pequeñas cosas a las que nos hemos acostumbrado con los marcos de fregadero de cocina y todo de .Net? MonoTouch.
¿Servicios web? MonoTouch.
Sintácticamente, ambos tienen sus ventajas. Objective-C tiende a ser más detallado donde tienes que escribirlo . Te encontrarás escribiendo código con C # que no tendrías que escribir con ObjC, pero va en ambos sentidos. Este tema en particular podría llenar un libro. Prefiero la sintaxis de C #, pero después de superar mi reacción inicial de este es otro mundo a Objective-C, aprendí a disfrutarla un poco. Me burlo un poco en las conversaciones ( es extraño para los desarrolladores que están acostumbrados a C # / Java / etc.), pero la verdad es que tengo un punto en forma de Objective-C en mi corazón que me hace feliz.
¿Planeas usar Interface Builder? Porque, incluso en esta versión inicial, me encuentro trabajando mucho menos para construir mis interfaces de usuario con IB y luego usarlas en el código. Parece que faltan pasos completos de la forma de hacer las cosas de Objective-C / IB, y estoy bastante seguro de que es porque faltan pasos completos de la forma de hacer las cosas de Objective-C / IB. Hasta ahora, y no creo que haya probado lo suficiente, pero hasta ahora , MonoTouch es el ganador aquí por la cantidad de trabajo que tiene que hacer.
¿Crees que es divertido aprender nuevos idiomas y plataformas? Si es así, el iPhone tiene mucho que ofrecer, y la pila de Apple probablemente lo sacará de su zona de confort, lo que, para algunos desarrolladores, es divertido (Hola, soy uno de esos desarrolladores, bromeo al respecto y doy Apple es un momento difícil, pero me he divertido mucho aprendiendo el desarrollo de iPhone a través de las herramientas de Apple).
Hay tantas cosas a considerar. El valor es tan abstracto. Si hablamos del costo y de si vale la pena, la respuesta se reduce a mi primer ítem: si esto es por negocios, y si puede obtener el trabajo, recuperará su dinero de inmediato.
Entonces ... eso es lo más objetivo que puedo ser. Esta es una breve lista de lo que podría preguntarse, pero es un punto de partida.
Personalmente (dejemos caer la objetividad por un momento), amo y uso ambos. Y me alegro de haber aprendido la pila de Apple primero. Me fue más fácil ponerme en marcha con MonoTouch cuando ya conocía el mundo de Apple. Como han dicho otros, todavía vas a trabajar con CocoaTouch, solo estará en un entorno .Net.
Pero hay más que eso. Las personas que no han usado MonoTouch tienden a detenerse allí: "Es una envoltura, bla, bla, bla", eso no es MonoTouch.
MonoTouch le da acceso a lo que CocoaTouch tiene para ofrecer, al mismo tiempo que le da acceso a lo que (un subconjunto de) .Net tiene para ofrecer, un IDE con el que algunas personas se sienten más cómodas (yo soy uno de ellos), una mejor integración con Interface Builder , y aunque no puede olvidarse por completo de la administración de memoria, obtiene un buen margen de maniobra.
Si no está seguro, tome la pila de Apple (es gratis) y tome la pila de evaluación MonoTouch (es gratis). Hasta que se una al programa de desarrollo de Apple, ambos solo se ejecutarán contra el simulador, pero eso es suficiente para ayudarlo a descubrir si prefiere enormemente uno al otro, y es posible si MonoTouch, para usted, vale los $ 399.
Y no escuches a los fanáticos: tienden a ser los que no han usado la tecnología contra la que están criticando :)