Pregunta

Como desarrollador .Net Siempre soñé con la posibilidad de desarrollar con mis habilidades existentes (C #) aplicaciones para el Iphone.

Ambos programas requieren instalar un Mac y el Iphone SDK.

Appcelerator Titanium fue la primera aplicación Probé y se basa en la exposición de algunos Iphone API nativas de Javascript para que puedan ser llamados en ese idioma.

MonoTouch comienza en $ 399 para beeing capaz de desplegar en el Iphone y no en el simulador Iphone mientras titanio es gratuita.

MonoTouch (Monodevelop) tiene un IDE que falta actualmente en Titanio (pero se puede utilizar cualquier editor como Textmate, Aptana ...)

Creo que tanto el programa genera al final de una aplicación nativa precompilado (también si no estoy seguro sobre el tamaño de la aplicación final sobre el Iphone como creo que las llamadas de .NET Framework se prelilnked en tiempo de compilación en MonoTouch).

También estoy seguro sobre la cobertura total de todos los activos y de características Iphone.

El titanio tiene también la ventaja de permitir que el desarrollo de aplicaciones para Android, sino como un desarrollador de C # Me sigue pareciendo experiencia MonoTouch más como el Visual Studio uno.

¿Cuál uno a elegir y cuáles son sus experiencias en MonoTouch y Titanium?

¿Fue útil?

Solución

Al igual que cualquier herramienta de la que-o-plataforma-o-lenguaje-o-marco-o-lo pregunta, en realidad debería bajar a lo que desea.

olvidar todo el consejo si-te-quiero-a-desarrollo-de-la-plataforma-entonces-que-tener-a-pagar-su-cuotas. Si usted está interesado en aprender Objective-C, Xcode, y los bits de Apple asociados, a continuación, goferit. Yo hice. Ha sido divertido, pero mi interés era en el desarrollo de aplicaciones para el iPhone. El aprendizaje de un nuevo idioma, el marco, y el IDE fue sólo un bono (me gusta esta cosa). También era necesario cuando empecé.

He estado trabajando con MonoTouch desde que fue lanzado, y lo amo. I C # prefieren a Objective-C, y me gusta tener acceso al subconjunto de .NET Framework (Mono) que proporciona MonoTouch. Hay ciertas cosas que son simplemente más fácil de ver con .Net de cacao (la manipulación de cadenas, manipulación fecha, lo XML, etc.).

También me gusta tener que lidiar con referencia a contar más. Estaba arruinado por años de no tener que llevar un registro de recursos a ese nivel. No me molesta tener que limpiar después de mí, pero yo no quiero tener que hacerlo manualmente algo que cualquier otra plataforma dev moderna que he usado hace por mí de forma automática. Además, incluso para los desarrolladores de Objective-C experimentados, de conteo de referencias no es una obviedad. Desplazarse a través de salida de la consola de OS X en algún momento para ver cuántas accidente aplicaciones debido a problemas de gestión de memoria (lo sé - esto puede suceder con prácticamente cualquier aplicación, pero es mucho más fácil hacer los errores que conducen a esta situación cuando llegue a los desarrolladores con exceso de trabajo involucrados cuya capacidad de atención han sido destruidas por doce horas de si esto y si esa otra persona y esto y lo demás que y bla bla bla).

Todavía uso de Objective-C / Xcode - Realmente he aprendido a como herramientas de Apple. Honestamente siento que son torpe y un poco arcano, pero sigue siendo divertido.

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) requiere que se declara una variable local para respaldar la propiedad, escribir la declaración de propiedad, y luego usar la directiva "sintetizar" para tener la propiedad genera para usted (dependiendo de lo que la propiedad atributos que especifique, es posible que tenga una propiedad que envuelve captadores y definidores que se ocupan de conteo de referencias para usted - en general, este es un ahorro de tiempo, pero el C # Láctea es el claro ganador aquí).

Esto es sólo un ejemplo de cómo MonoTouch puede hacer su vida más fácil, especialmente si estás acostumbrado a .NET / Java / Python / otros idiomas que no requieren que usted obtenga los dedos sucios con la memoria-gerencia (a menos que desee).

En lo que se refiere a iPhone-dad, aparte de encurtido parte de .NET para el mundo iPhone, los mapas de espacio de nombres MonoTouch a Cocoa Touch, así que si usted está confundido acerca de, digamos, el MonoTouch UIViewController, sólo puede saltar sobre a documentos de Apple en el UIViewController. MonoTouch .Net-IZES Cocoa Touch, pero es lo suficientemente cerca que es poco probable que golpear una pared (que no habría afectado también si estuviera usando Xcode / Objective-C). Es resbaladiza.

El titanio es diferente. Ya que están tratando ( tratando ) para crear una capa de abstracción que le permite escribir la misma aplicación para múltiples plataformas, que va a hacer frente a los inconvenientes habituales: Totalmente diferentes APIs, pérdida de flexibilidad ( lo mismo podría decirse de MonoTouch, pero no de forma remota en el mismo grado), y básicamente tener que aprender una nueva plataforma (que es lo que está tratando de evitar al obtener alrededor de Xcode / Objective-C / Cocoa Touch, ¿verdad?) .

También odio JavaScript, así que voy a estar sesgados en contra de titanio. Pero incluso si ese no fuera el caso - aunque pudiera utilizar un lenguaje que me gusta - las API no cosquillas mi fantasía. O mi nada.

Independientemente de las herramientas dev que elija, al final tener que aprender algo sobre Cocoa Touch. Ya se trate de Xcode / Objective-C, MonoTouch o titanio, somethING se va a romper o ir todo poco firme en usted, y usted está finalmente va a tener que hacer referencia a la documentación Cocoa Touch.

Si me estaban dando una charla sobre el desarrollo del iPhone (que no tengo y que voy a hacer de nuevo), y si tuviera que discutir alternativas a las herramientas dev de Apple (que yo), aun así alentar fuertemente a los desarrolladores a al menos trabajar a través de algunos iPhone básico de aplicaciones utilizando las herramientas nativas. Se va a hacer un mejor desarrollador de la plataforma - y punto. Y puede utilizar esta fase inicial para determinar si aún desea para utilizar distintos de los bits de forma gratuita suministrados por Apple nada. Puede que no. He estado usando MonoTouch porque me gusta -. No porque es necesario

Así que, para resumir algunos criterios básicos:

  • Preferencia (lenguaje / marcos)

  • Dispositivos (Le gustan los plataformas que no sean iPhone o piensa que algún día?)

  • Confort (si te gusta y sabes C # mucho mejor que Objective-C, no hay razón para no ir con MonoTouch)

Y no escuchar a las personas negativas a menos que hayan hecho utiliza la tecnología que están hablando. Por ejemplo, he leído acerca de titanio, pero no tengo experiencia con ella - Sólo sé que no quiero nada que ver con ello a causa de mis preferencias. Eso no significa que sea "malo" -. Algo que no quiero en mi vida

La multitud Objective-C puede ser impresionante celo. Si bien hay un montón de desarrolladores de mente abierta en ella, hay tanto, tanto, de modo muchos que piensan de Objective-C y Cocoa y bla, bla, bla, son los últimos herramientas dev devkind necesitará siempre.

No haga caso de ellos.

Si usted está preocupado acerca de la compatibilidad, aquí hay algunas cosas a tener en cuenta:

  • Apple es probable que siga siendo actual, ya que son los que hacen esta basura.

  • Es probable que siga siendo actual MonoTouch - los píos Mono han hecho un trabajo increíble mantenerse al día con Microsoft, y no veo ninguna razón para que no hagan lo mismo con Apple. Estoy impresionado por lo que hacen. Y a pesar de MonoTouch de haber sido liberado, al igual que, hace cinco minutos, que ya tienen una actualización fuera para el iPhone 3.1 cosas. Son serios acerca de esto, y creo que son magia. Son los Elfos Keebler del mundo prog. Se sientan en sus capas secretas y poner hacia fuera todo el mundo material (bien - no todo el mundo) le gusta, pero que nadie siquiera intentar hacer

  • .
  • El titanio es bien va a ser una API unificada incómodo para escribir aplicaciones para múltiples plataformas que es enteramente su propia cosa, o que va a ser cada vez más fragmentada como la capacidad de diferentes plataformas divergen. Sí, eso es un montón de típico sillón mirando al futuro ... Debería haber prologado este elemento de viñeta con nerdly "Es mi opinión que ..." Si sólo hubiera una manera de volver atrás y cambiarlo.

me callo ahora.

Vaya con lo que te gusta. MonoTouch es una alternativa "segura" a las cosas de Apple. Me temo titanio se va a ir por la calle de los mismos viejos Uy-este super alto nivel de la plataforma-abstracción-capa-cosas-Indiferente-realmente-trabajo que muchas otras tecnologías tienen. Pero si estás haciendo algo simple, no hay nada malo en dar un tiro, especialmente teniendo en cuenta que es gratuito durante el período de prueba.

correctamente.

Realmente cerrando hasta ahora ... espero que esto ayude.

Otros consejos

Estas son formas divertidas e interesantes que se pueden construir aplicaciones para el iPhone. Sin embargo, para realmente rápido desarrollo nativa para el iPhone, la mejor opción es la de iPhone SDK y Xcode.

Para ser honesto, las cosas son más difíciles de aprender las capacidades de los marcos de sí mismos, no la sintaxis del lenguaje. Pero eso es un problema que tiene que hacer frente a cualquier manera ya que estos entornos de desarrollo / Idiomas todavía requieren que entender algunas de las convenciones de cacao (y Cocoa Touch).

No digo esto como un / Objective-C pase de cacao, pero si sabes C (que como C # dev haces) realmente no hay ninguna barrera de entrada.

Además, tendrá acceso a un montón de tutoriales y código de ejemplo que no estarán disponibles para estos incipientes traductores / IDE / idiomas.

Aprender otro lenguaje de programación rara vez es una mala cosa, y como un programador experimentado, su inversión de tiempo no será tan grande como se piensa.

He creado un proyecto de código abierto http://propertycross.com que ayuda a los desarrolladores seleccionar un móvil multiplataforma marco, mostrando la misma aplicación implementada con Sencha, titanio, 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, la experiencia del desarrollador, etc ...

Yo un poco como la idea de proporcionar medios para obtener rápidamente un control sobre iPhone dev con la gente tecno ya saben. Me personnaly, como desarrollador de Java, el uso iSPectrum ( http://www.flexycore.com ). También vienen con un IDE, depurador y esas cosas, que lo hacen muy conveniente para desarrollar con porque beneficia de todo el poder del plugin para Eclipse Java. Al estar basado en Java, esto también permite reutilizar fácilmente el código ya existente de otras aplicaciones Java, que puede ser muy útil siempre que Java está presente en casi todas las plataformas (de escritorio y móviles por igual), excepto iPhone. Además de que es libre para proyectos de código abierto.

Yo prefiero considero este tipo de soluciones, porque no me gusta la idea de volver a desarrollar en emacs :).

Sé que esto es un viejo tema, pero en aras de mantenerse al día, parece que MonoTouch y otros marcos multiplataforma son va a ser prohibido en el SDK 4.0 . Su única apuesta "seguro" para la escritura de aplicaciones para el iPhone es utilizar XCode y Objective-C, al menos por el momento.

Si eres programador de C # por la cual no debe invertir algunas veces para aprender Objective C. A decir verdad, no va a tardar mucho tiempo de usted. Pero se siente bien para trabajar en una nueva plataforma con el nuevo idioma. Aprender cosas nuevas todo el tiempo me fascina.

Hay muchas maneras de conseguir en el dispositivo. Apple ha indicado en la licencia del SDK que la única manera de conseguir aprobado en el dispositivo es a través de C, C ++, ObjectiveC, y Javascript.

Al parecer en este punto en el tiempo que las aplicaciones construida sobre MonoTouch y Appcelerator Titanium están siendo aceptado en la App Store. Gracias al cambio de licencia, hay mucho miedo, incertidumbre y duda sobre este tema. Apple ha asustado a todo el mundo no hacer ObjectiveC.

Yo sugeriría que hacer lo que tiene más sentido para usted como desarrollador. Si sabes C # y .NET, hay que ir con MonoTouch. Si conoces ObjectiveC o la plataforma Mac, ObjectiveC es probablemente el camino a seguir. Si conoces a X y es en el iPhone, así, X es donde yo sugeriría mirar primero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top