c# - samples - xamarin studio
MonoTouch & C#VS Objective C para aplicaciones de iphone (4)
Saludo, soy un chico programador de C #. Estoy planeando comenzar a desarrollar la aplicación para iPhone, pero no estoy seguro de si debería usar C # en MonoTouch o simplemente usar el idioma nativo para el objetivo OS de Android OS.
¿Hay algún programa diferente para iphone que use C # o Objective C?
¿Hay alguna limitación al usar C # para programar la aplicación para iPhone o puede hacer tanto como Objective C puede hacer para desarrollar la aplicación de iPhone?
MonoTouch envuelve la mayoría pero no todo el SDK de iPhone. Entonces, sí, hay cosas que no puedes hacer (aún), pero son relativamente pocas y distantes.
Muchas personas de .Net descubren que son más productivas (al menos inicialmente) utilizando MonoTouch, ya que pueden aprovechar sus habilidades existentes. Por otro lado, no hay nada como trabajar en el idioma nativo de la tierra, solo lleva un poco más de tiempo. Tendrá que aprender algo de Objective-C ya que la mayoría de la documentación que hay en el mundo lo usa (y / o las API de CoreFoundation de C-level). La naturaleza dinámica de Objective-C se sentirá extraña al principio, pero puede encontrarlo bastante liberador una vez que lo asimile por completo. Después de haber usado muchos idiomas en mi carrera, encuentro Objective-C (y las Cocoa API) una de las experiencias de desarrollo más agradables que existen.
Aquí está mi opinión: si nunca has visto el código Obj-C en tu vida, te tomará un tiempo acostumbrarte. Coméntalo con el hecho de que el SDK es totalmente diferente y tendrás que aprender cada nuevo método, y probablemente te tomará al menos un par de meses convertirte en un desarrollador promedio de obj-c si estudias mucho. .
En su lugar, use MonoTouch y aprenda todo el SDK usando C #. En un par de semanas, te sentirás como en casa con todas las clases, Interface Builder, etc. Podrás desarrollar la aplicación de la misma manera que lo harías con Obj-C, pero en C #. La versión de demostración le permite usar todo, de forma gratuita.
LUEGO tu decides que hacer Dependiendo de cómo va todo el problema con Apple, puede decidir continuar usando MonoTouch, o puede decidir aprender Obj-C, y básicamente utilizar todo el conocimiento que ya ha adquirido sobre el SDK, lo que hará que la transición sea mucho más fácil. .
Existe cierto debate sobre si Apple permitirá esto. A primera vista, parece que no:
En la nueva versión del Acuerdo de Licencia del Programa para Desarrolladores de iPhone lanzado hoy por Apple (y que los desarrolladores deben aceptar antes de descargar la versión 4.0 SDK beta), la sección 3.3.1 ahora dice:
3.3.1 - Las aplicaciones solo pueden usar API documentadas de la manera prescrita por Apple y no deben usar ni invocar ninguna API privada. Las aplicaciones deben escribirse originalmente en Objective-C, C, C ++ o JavaScript tal como se ejecutan en el motor WebKit de iPhone OS, y solo el código escrito en C, C ++ y Objective-C puede compilar y enlazar directamente con las API documentadas (por ejemplo, Se prohíben las aplicaciones que enlazan a API documentadas a través de una capa o herramienta de traducción intermedia o de compatibilidad).
De los foros de monotouch
Aquí hay una respuesta del desarrollador de Monotouch en lugar de un trabajo de adivinación de personas que leen blogs.
¿Has comprado la licencia Monotouch? De lo contrario, sería claramente objetivo-C. Si compró una licencia, tiene sentido desarrollar la aplicación en Monotouch porque:
- El dominio y la lógica de negocios pueden ser fácilmente portados para una aplicación de Windows Mobile 7 más adelante este año
- Lo mismo es también el caso de Monodroid, que se lanzará pronto, y la API también podría ser portada fácilmente a Java.
- Controladores, Vistas y toda la barra de sistema
static void main
Monotouchstatic void main
pueden convertir muy fácilmente en objetivo-C. Los nombres son todos idénticos pero en el caso de Pascal.
En cuanto a las aplicaciones aceptadas, Apple ha dejado pasar las aplicaciones de Monotouch. No estoy diciendo que de repente no diga "¡NO! USTEDES USARÁ OBJETIVO-C", pero que ellos prohíban que un cliente de SO iPhone en un sitio de alto perfil como sea un mal PR.
Apple usa aplicaciones en sus demostraciones que rompen su propio SDK (Tap Tap Revolution es uno), y 1 de cada 10 de los mejores juegos de venta de aplicaciones usan una porción de salud de C sin objetivos.
Monotouch es un mapeo directo a Cocoa y UIKit . Necesita tener un mac para usar el compilador y el IDE. Por lo que sé, Flash no tenía tales restricciones y su interfaz de usuario era mucho menos estricta en términos de forzar el conjunto de "widgets" comunes como UINavigationController, UITabViewController, UIAlertView, etc.