usa para caracteristicas apple app iphone xamarin.ios titanium appcelerator

para - iphone xr



¿Monotouch o Titanium para el rápido desarrollo de aplicaciones en iPhone? (7)

Como desarrollador de .Net siempre soñé con la posibilidad de desarrollar con mis habilidades existentes (c #) las aplicaciones para Iphone.

Ambos programas requieren una Mac y el Iphone Sdk instalado.

Appcelerator Titanium fue la primera aplicación que probé y se basa en exponer algunas API nativas de Iphone a javascript para que puedan llamarse usando ese idioma.

Monotouch comienza en $ 399 por ser capaz de implementarse en el iPhone y no en el simulador de Iphone mientras que Titanium es gratis.

Monotouch (Monodevelop) tiene una Ide que actualmente falta en Titanium (pero puedes usar cualquier editor como Textmate, Aptana ...)

Creo que ambos programas generan al final una aplicación nativa precompilada (también si no estoy seguro sobre el tamaño de la aplicación final en el Iphone, ya que creo que las llamadas al framework de .Net están prelilnked en el momento de la compilación en Monotouch).

Tampoco estoy seguro de la cobertura completa de todas las características y la API de Iphone.

Titanium también tiene la ventaja de habilitar el desarrollo de aplicaciones para Android, pero como desarrollador ac # todavía encuentro la experiencia de Monotouch más como Visual Studio.

¿Cuál elegirías y cuáles son tus experiencias con Monotouch y Titanium?


Como cualquier pregunta de cual-herramienta-o-plataforma-o-lenguaje-o-marco-o-lo que sea, realmente debería reducirse a lo que quieres.

Olvídese de todos los consejos si usted quiere desarrollar para esta plataforma y luego tener que pagar sus cuotas. Si está interesado en aprender Objective-C, Xcode y los bits de Apple asociados, goferit. Yo si. Ha sido divertido, pero mi interés estaba en desarrollar aplicaciones para iPhone. Aprender un nuevo lenguaje, framework e IDE fue solo una ventaja (esto me gusta). También fue necesario cuando empecé.

He estado trabajando con MonoTouch desde su lanzamiento, y me encanta. Prefiero C # a Objective-C, y me gusta tener acceso al subconjunto del marco .Net (Mono) que proporciona MonoTouch. Hay ciertas cosas que son más fáciles de hacer con .Net que con Cocoa (manipulación de cadenas, manipulación de fechas, cualquier cosa XML, etc.).

También me gusta no tener que lidiar más con el conteo de referencias. Me arruinaron los años de no tener que realizar un seguimiento de los recursos a ese nivel. No me importa tener que limpiar después de mí mismo, pero no quiero tener que hacer manualmente algo que cualquier otra plataforma de desarrollo moderno que haya usado haga por mí automáticamente. Además, incluso para los desarrolladores de Objective-C experimentados, el conteo de referencias no es una obviedad. Desplácese por la salida de la consola de OS X en algún momento para ver cuántas aplicaciones fallan debido a problemas de administración de la memoria (lo sé, esto puede suceder con cualquier aplicación, pero es mucho más fácil cometer los errores que llevan a esta situación cuando se involucra a los desarrolladores con exceso de trabajo) cuya capacidad de atención ha sido destruida por doce horas si esto y si eso y si no y esto y lo otro y bla bla bla).

Sigo utilizando Objective-C / Xcode: realmente aprendí a apreciar las herramientas de Apple. Sinceramente, siento que son incómodos y un poco arcanos, pero aún así son divertidos.

Pero ... entonces también me gusta esto:

public string SomeString { get; set; }

Para hacer lo mismo con Objective-C (en el iPhone, de todos modos) se requiere que declare una variable local para respaldar la propiedad, escriba la declaración de propiedad y luego use la directiva "sintetizar" para que se genere la propiedad para usted (dependiendo de en cuanto a los atributos de propiedad que especifique, puede tener una propiedad que envuelva a los captadores y establecedores que se encarguen del recuento de referencias para usted: en general, esto ahorra tiempo, pero C # Way es el claro ganador aquí).

Ese es solo un ejemplo de cómo MonoTouch puede hacer su vida más fácil, especialmente si está acostumbrado a .Net / Java / Python / otros lenguajes que no requieren que se ensucie los dedos con el manejo de la memoria (a menos que quiera) .

En lo que respecta a iPhone-ness, además de llevar parte de .Net al mundo iPhone, el espacio de nombres MonoTouch se asigna a CocoaTouch, por lo que si está confundido acerca del Control de Control de Monitoreo de MonoTouch, puede consultar los documentos de Apple. en el controlador UIView. MonoTouch .Net-iza a CocoaTouch, pero es lo suficientemente cerca como para que sea poco probable que golpee una pared (eso no habría afectado también si estuviera usando Xcode / Objective-C). Es resbaladizo

El titanio es diferente. Ya que intentan ( intentan ) crear una capa de abstracción que le permite escribir la misma aplicación para múltiples plataformas, se enfrentarán a los inconvenientes habituales: API totalmente diferentes, pérdida de flexibilidad (se podría decir lo mismo de MonoTouch , pero no remotamente en la misma medida, y básicamente tener que aprender una plataforma completamente nueva (que es lo que intentas evitar al evitar Xcode / Objective-C / CocoaTouch, ¿verdad?).

También odio JavaScript, por lo que voy a tener prejuicios contra Titanium. Pero incluso si ese no fuera el caso, incluso si pudiera usar un lenguaje que me guste, las API no me hacen mucha gracia. O mi cualquier cosa.

Independientemente de las herramientas de desarrollo que elija, terminará teniendo que aprender algo sobre CocoaTouch. Ya sea que se trate de Xcode / Objective-C, MonoTouch o Titanium, algo se romperá o se volverá loco, y finalmente tendrá que consultar la documentación de CocoaTouch.

Si estuviera dando una charla sobre el desarrollo del iPhone (que tengo, y que haré de nuevo), y si fuera a discutir alternativas a las herramientas de desarrollo de Apple (que lo haré), seguiría recomendando a los desarrolladores que al menos trabajen a través de algunas aplicaciones básicas de iPhone usando las herramientas nativas. Te hará un mejor desarrollador para la plataforma - período. Y puede usar esta fase de inicio para determinar si desea usar algo que no sea los bits gratuitos suministrados por Apple. Puede que no. He estado usando MonoTouch porque me agrada, no porque sea necesario.

Entonces, para resumir algunos criterios básicos:

  • Preferencia (lenguaje / marcos)

  • Dispositivos (¿te importan las plataformas que no son iPhone o crees que algún día lo harás?)

  • Comodidad (si te gusta y conoces C # MUCHO mejor que Objective-C, no hay razón para no ir con MonoTouch)

Y no escuches a los detractores a menos que hayan usado la tecnología de la que hablan. Por ejemplo, he leído sobre Titanium, pero no tengo experiencia con él, solo sé que no quiero tener nada que ver con él debido a mis preferencias. Eso no lo hace "malo", solo algo que no quiero en mi vida.

La multitud de Objective-C puede ser impresionantemente celosa. Si bien hay muchos desarrolladores con mentalidad abierta, hay muchos, por lo que muchos piensan que Objective-C y Cocoa y blah blah blah son las últimas herramientas de desarrollo que Devkind necesitará.

Ingnóralos.

Si te preocupa el apoyo, aquí hay algunas cosas que debes considerar:

  • Es probable que Apple se mantenga al día, ya que ellos son los que hacen esta basura.

  • Es probable que MonoTouch permanezca actualizado: los peones de Mono han hecho un trabajo increíble con Microsoft, y no veo ninguna razón por la que no hagan lo mismo con Apple. Estoy impresionado por lo que hacen. Y a pesar de que MonoTouch ha sido lanzado, hace cinco minutos, ya tienen una actualización para iPhone 3.1. Son serios con esto, y creo que son mágicos. Son los Elfos Keebler del mundo dev. Se sientan en sus capas secretas y producen cosas que les gustan a todos (bueno, no a todos), pero que nadie más intentaría hacer.

  • Titanium se convertirá en una API unificada incómoda para escribir aplicaciones para múltiples plataformas que es totalmente suya, o se dividirá cada vez más a medida que divergan las capacidades de las diferentes plataformas. Sí, ese es un montón de sillones típicos que miran el futuro ... Debería haber precedido este artículo de bala con "Es mi opinión que ..." Si solo hubiera una manera de regresar y cambiarlo.

Me callaré ahora.

Ve con lo que te gusta. MonoTouch es una alternativa "segura" a las cosas de Apple. Me temo que Titanium va a ir por el mismo camino antiguo que este tipo de super-nivel-abstracción-capa-cosas-no-realmente funciona como tantas otras tecnologías. Pero si estás haciendo algo simple, no hay ningún daño en darle una oportunidad, especialmente considerando que es gratis durante el período beta.

Rectamente.

Realmente callando ahora ... Espero que esto ayude.


Estas son formas divertidas e interesantes de construir aplicaciones para iPhone. Pero, para un desarrollo nativo realmente rápido de iPhone, su mejor opción es el iPhone SDK y Xcode gratuitos.

Para ser honesto, las cosas más difíciles de aprender son las capacidades de los propios marcos, NO la sintaxis del lenguaje. Pero ese es un problema que debe abordar de cualquier manera, ya que estos IDE / Idiomas aún requieren que comprenda algunas de las convenciones de Cocoa (y Cocoa Touch).

No digo esto como un esnob de Cocoa / Objective-C, pero si conoces C (que como C # dev) no hay ningún obstáculo para entrar.

Además, tendrá acceso a montones de tutoriales y códigos de muestra que simplemente no estarán disponibles para estos traductores / IDE / idiomas incipientes.

Aprender otro lenguaje de programación rara vez es algo malo, y como un programador experimentado, su inversión de tiempo no será tan grande como cree.


Existen numerosas formas de acceder al dispositivo. Apple ha declarado en la licencia del SDK que la única forma aprobada para acceder al dispositivo es a través de C, C ++, ObjectiveC y Javascript.

En este momento, parece que las aplicaciones creadas en MonoTouch y Appcelerator Titanium están siendo aceptadas en la App Store. Gracias al cambio de licencia, hay mucho miedo, incertidumbre y duda sobre este tema. Apple ha asustado a todos los que no están haciendo ObjectiveC.

Le sugiero que haga lo que sea más conveniente para usted como desarrollador. Si conoces C # y .NET, debes ir con MonoTouch. Si conoce ObjectiveC o la plataforma Mac, ObjectiveC es probablemente el camino a seguir. Si conoces X y está en el iPhone, bueno, X es donde sugeriría buscar primero.


He creado un proyecto de código abierto http://propertycross.com que ayuda a los desarrolladores a seleccionar un marco móvil multiplataforma mostrando la misma aplicación implementada con Sencha, Titanium, Xamarin y más. Este proyecto le permite comparar fácilmente una amplia gama de marcos en términos de experiencia del usuario final, código, IDE, experiencia del desarrollador, etc.


Me gusta un poco la idea de proporcionar medios para controlar rápidamente el desarrollo del iPhone con el tecno que la gente ya conoce. Personalmente, como desarrollador de Java, uso iSPectrum ( http://www.flexycore.com ). También viene con un IDE, un depurador y otras cosas, lo que lo hace muy conveniente para desarrollar, ya que se beneficia de todo el poder del complemento Eclipse de Java. Al estar basado en Java, esto también permite reutilizar fácilmente el código ya existente de otras aplicaciones Java, lo que puede ser muy útil siempre que Java esté presente en casi todas las plataformas (de escritorio y móviles), excepto el iPhone. Además es gratis para proyectos de código abierto.

Prefiero considerar este tipo de soluciones, porque no me gusta la idea de volver a desarrollar en emacs :).


Sé que este es un tema antiguo, pero para mantenerse actualizado, parece que MonoTouch y otros frameworks multiplataforma serán prohibidos en SDK 4.0 . Tu única apuesta "segura" para escribir aplicaciones de iPhone es utilizar XCode y Objective-C, al menos por el momento.


Si eres programador de C #, no deberías invertir algo de tiempo para aprender el Objetivo C. Hablando honestamente, no te tomará mucho tiempo. Pero te sientes bien al trabajar en una nueva plataforma con un nuevo lenguaje. Aprender cosas nuevas todo el tiempo me fascina.