Si el objetivo de su inicio es crear una aplicación de iPhone, entonces obviamente debe aprender el idioma con el que se crean las aplicaciones de iOS, Objective-C. Su equipo ya tiene experiencia con C, por lo que debería ser muy fácil comenzar. The Big Nerd Ranch books te pondrá en funcionamiento en una semana o dos (no estoy asociado con Big Nerd Ranch, creo que son increíbles).
No entiendo por qué mencionas MonoTouch, teniendo en cuenta que tu equipo no tiene la experiencia C#/.NET. Hay montones de otros frameworks como MonoTouch, incluyendo Titanium SDK (JavaScript), RubyMotion (Ruby), y así sucesivamente. Todos estos son geniales, pero como veo, son principalmente para aquellos con experiencia en sus respectivos idiomas. Se permitirá escribir aplicaciones de iOS usando un lenguaje que esté más familiarizado con, pero tienen los siguientes inconvenientes:
- rendimiento puede ser tan bueno, pero por lo general un poco (a veces mucho) peor que una aplicación escrita en Objective-C.
- Los recursos para aprender no son tan abundantes como los del iOS SDK/Objective-C. Hay muchas personas que quieren hacer aplicaciones para iOS, y esas personas usan estos marcos, y se diluyen entre ellos. Solo una pequeña fracción de los recursos disponibles para el desarrollo de iOS se dedicará a cualquier marco.
- Estos marcos están basados en el SDK/Objective-C de iOS, por lo que naturalmente el desarrollo está siempre un paso atrás. Si Apple implementa API radicalmente nuevas en la próxima versión del SDK de iOS, tendrá que esperar a que estos marcos se adapten (las aplicaciones escritas en Objective-C también podrían romperse, pero será más fácil tratarlas basándose en punto n. ° 2).
- La mayoría de estos marcos requieren familiarizarse con el SDK de iOS. Todavía necesitará saber que una aplicación llama al método
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
en el momento del lanzamiento, pero además tendrá que recordar cómo traducir eso en el método apropiado para MonoTouch: public override bool FinishedLaunching (UIApplication app, NSDictionary options)
.El iOS SDK es enorme, y la mayoría de los desarrolladores de iOS confían en la documentación de Apple para obtener información. Por lo tanto, mirará los documentos API escritos para Objective-C y traducirá los métodos al marco de su elección.
- El ecosistema de Objective-C está en constante evolución, con nuevos y geniales proyectos como CocoaPods, bwoken, etc. Estos se desarrollan principalmente con Objective-C y Xcode en mente. Configurarlos para que funcionen con su marco de trabajo casi siempre le ocasionará tiempo y trabajo extra.
Los puntos anteriores generalmente me han impedido profundizar demasiado en cualquiera de estos otros marcos. Todos son geniales, pero su principal mérito en la adopción parece ser facilitar el desarrollo para personas con habilidades profundas fuera de Objective-C, o permitir el desarrollo multiplataforma para equipos pequeños que carecen de los recursos para invertir en Android y iOS (y Windows Phone) programadores. Es de esperar que los beneficios superen los costos anteriores para los adoptantes.
Además, ¿escribir en MonoTouch tendría algún beneficio para el desarrollo multiplataforma con Android?
Supongo que sería. De hecho, el MonoTouch homepage promociona eso como una ventaja principal de usar el marco. No estoy tan seguro de las clases de vista/controlador, ya que parece que estarían vinculadas con UIKit
, pero la lógica encapsulada en los modelos debería ser bastante fácil de transportar.
En resumen, creo que usted y su equipo deberían seguir con Objective-C para el desarrollo de iOS.
[El desbordamiento de la pila no es un motor de recomendación.] (Http://meta.stackexchange.com/a/128562/133242) –
Está pidiendo comparaciones (rendimiento, facilidad de uso, etc.) y no pide recomendaciones. ... –
Para entender los documentos de lenguaje y marcos y la mayoría del código de ejemplo, deberá aprender Objective-C de todos modos. –