Una de las cosas que más puede parar los pies a un desarrollador a la hora de realizar una aplicación para iOS es empezar con un nuevo lenguaje de programación como objetiveC, un lenguaje de alto nivel el cual puede llegar a resultar bastante complicado para personas forjadas en tecnologías más simples. Pero gracias a Monotouch, si sabes C# o .NET podrás crear aplicaciones para iOS de forma rápida.
Este framework está pensado e ideado para permitir a personas con experiencia en .NET o C# programar aplicaciones para iOS sin necesidad de conocimientos previos, y lo que resulta incluso más interesante: reutilizar código y librerías para dichos lenguajes en una aplicación para iOS.
Pero las ventajas son aún más interesantes, la aplicación es capaz de compartir código entre Android y Windows Phone, por lo que una vez desarrollada tu aplicación para iOS podrás reutilizar el código en la versión del framework para Android sin necesidad de reescribir nada.
La aplicación es compatible con Xcode, por lo que puedes usar algunas funciones del SDK oficial como el diseño de UI y posteriormente sincronizar los datos con la aplicación Monotouch.
Pensarás que un programa de este estilo no puede dar buenos resultados, pero lo cierto es que en la librería de ejemplos nos encontramos con unas cuantas aplicaciones bastante conocidas como Rdio, la cual ha sido desarrollada con esta tecnología. La aplicación cuenta con una versión gratuita para comprobar como funciona, aunque si quieres la licencia básica deberás de pagar 399 dólares, es decir, 315 euros aproximadamente.
Descarga | MonoTouch
En Applesfera | AdLib, el framework de Apple para emular la interfaz del iPad en las páginas web
Ver 33 comentarios
33 comentarios
darkness69
No entiendo esta entrada. Soy desarrollador de Objective C y es un lenguaje de una complejidad similar a C/C++, Java y C#. Usa otro modelo para la creación y gestión de objetos que se aprende con bastante rapidez, y en general es un lenguaje que, como es un superconjunto de C/C++, un programador de estos lenguajes puede en poco tiempo adaptarse. Los resultados son por ello extremadamente más aptos debido al acceso completa a Cocoa Touch, la librería Objective C de iOS.
Ojo, otra cosa es que alguien quiera ir directamente a programar con otros lenguajes como Java o C# con librerías adaptadas, pero en mi experiencia y en los resultados vistos por otros compañeros, compensa el esfuerzo de adaptarse al lenguaje nativo de iOS.
Simplemente quería aclararlo porque me parece importante no llevar a confusión al futuro programador de iOS sobre un tema que es extremadamente delicado y fundamental para el mejor desarrollo de un proyecto sobre esta plataforma.
jasperodus
Cuando se habla de alto o bajo nivel en los lenguajes de programación, se hace referencia a su nivel de abstracción, no a su complejidad técnica. Según esto, Objective C es un lenguaje de bajo nivel. Saludos.
engorila
Si buscáis una solución 100% multi-plataforma para hacer Apps en iOS, Android... tendríais que optar por PhoneGap (u otro empaquetador de HTML5) o Adobe AIR.
Mono Touch es como Titanium (Appcelerator), "transforma" un programa escrito en otro lenguaje (C#, JS...) a código nativo. Pero lo que no dicen es que el código al final acabará lleno de ifs y duplicidades (si estoy en iOS hago esto, si estoy en android hago esto otro...), al final estás programando la app para cada SO... y por no hablar de los problemas que surgen en la fragmentación (para android 2.x hago esto, para 4.x hago esto otro...).
En mi opinión lo nativo en nativo y lo multi-plataforma que sea 100% multi-plataforma. En mi caso soy un único desarrollador y no me puedo permitir escribir mis Apps en 3 lenguajes nativos (ya me gustaría).
Ahora estoy enamorado de Adobe AIR y Starling (un framework que va sobre la GPU) ya que me permite hacer Apps y juegos 100% multi-plataforma a 60 FPS y poder desarrollar para iOS desde Windows!!! (sin XCODE)
Además, si hay algo que no puedo utilizar directamente desde la API de AIR puedo escribirme una pequeña extensión en código nativo (Adobe AIR Native Extensions) y solucuinado!
Adobe AIR me ofrece gran reutilización, flexibilidad y rendimiento.
adalpo
En esta entrada los comentarios son mil veces más precisos e interesantes que la entrada en sí.
De todos modos, no culpo al redactor, es un tema muy técnico.
pr2studio
Yo también soy un desarrollador de Objective C, antes de C# . y me quedo con Objective C
Soy de la opinión de e69darkness, para desarrollar en iOS siempre es mejor la plataforma nativa, que wrappers. Lo único bueno que tiene MonoTouch es que reduce un poco (pero no elimina) el código a escribir en multiplataforma. Hay muchos aspectos particulares de cada plataforma que hay que codificar de nuevo. Y siempre andaremos a remolque de que los que desarrollan Monotouch vayan adaptando las versiones a las ultimas versiones de XCode (eso puede suponer un retraso de meses).
Lo que perdemos con Monotouch es el Interface Builder, el sistema de multihilo nativo, Grand Central Dispatch, nos vamos a una programación de mínimos compatibles entre todos los dispositivos y extensiones (lo cual es un autentico coñazo).
Que Objetive C sea un lenguaje ya con mas de 20 años, no le quita que siga mejorando. Ya tenemos ARC, avances en notación por puntos, reducción de código a escribir en strings, diccionarios. (notación C mas moderna). En interface Builder ya con Autolayout (que está muy bien, pero a veces es un tormento . poco a poco).
Desarrollo en iOS? nativo, Objetive C y XCode por favor.