KeepCoding Online Training Developers Hub.

Lenguaje programación iPhone

Una duda común es qué herramientas y lenguajes se utilizan para crear apps para el iPhone y iPad.

En estos momentos son muchos los que desean crear apps para iPhone y iPad, partiendo desde experiencias muy distintas: desde programadores hasta webmasters que quieren crear una versión iPad de sus portales, pasando por entusiatas de los dispositvos iOS, que sin tener experiencia de programación, quieren empezar a crear apps para su iPhone o iPad.

Con este artículo espero resolver las dudas sobre lenguaje programación iPhone que suelen asaltar a los que quieren empezar pero no saben por donde. Explicaré cuales son las principales tecnologías, herramientas y lenguajes para crear apps para el iPhone y iPad y en qué casos conviene usar cada una.

Las 3 tecnologías: Objective C & Cocoa vs Lua y Corona SDK vs PhoneGap

Básicamente tenemos 3 opciones de lenguaje programación iPhone, que veremos en detalle a continuación.

Objective C y Cocoa, la alternativa Apple

Lenguaje Programación iPhone

Objective C y Cocoa son la “lengua materna” de las apps para iPhone

Objective C y Cocoa son, respectivamente, un lenguaje de programación y una “librería de clases” (conjunto de herramientas que acompaña al lenguaje) creados y proporcionados por Apple. Es lo que usa Apple para crear sus propias aplicaciones, tanto para iOS (iPhone y iPad) como para el mac. El coste de estas herramientas es nulo, Apple lo proporciona de forma gratuita con cada mac.

Se trata de un lenguaje muy potente y un conjunto de herramientas muy completas. Para programar en Objective C y Cocoa, se utiliza un entorno de programación llamado Xcode, que también es proporcionado libre de coste por Apple.

La dificultad de utilizar este lenguaje es comparable a Java, aunque Objective C sea, en mi escasamente humilde opinión, muy superior a Java. Es notablemente más sencillo que C++.

Para programar en Objective C y Cocoa es necesario tener experiencia previa de programación orientada a objeto. Es decir, cualquier programador de Java, C++, C#, Python, Ruby, o Php puede dar el salto a Objective C y Cocoa tras un período de formación relativamente corto, como puede ser mi curso de introducción al desarrollo para iPhone y iPad.

No es conveniente abordar el desarrollo de apps para iPhone o iPad con Cocoa si no se tiene experiencia previa de programación.

Hace falta un mac para usarlas.

Ventajas

  1. Es la herramienta que usa Apple para sus propios desarrollos, por lo tanto, todas las nuevas tecnologías de Apple estarán disponibles primero para el programador de Cocoa y Objective C.
  2. Sirve para crear apps para iPhone, iPad y Mac. Es la herramienta ideal para crear apps para iPhone y iPad medianamente complejas. Se tiene accesso a todas las funcionalidades del sistema operativo del iPhone o iPad (iOS).
  3. El coste es bajísimo, dado que las herramientas son gratuitas.
  4. Es de Apple. O:-)

Desventajas

  1. No sirve para crear apps para Android o Windows Phone.
  2. El desarrollo inicial es un poco más farragoso que con otras tecnologías, pero una vez que arrancas el proceso es sencillo y placentero.
  3. Requiere experiencia previa de programación.

Cómo aprender Cocoa y Objective C

En estos momentos tenemos la oferta de formación más amplia de Cocoa y Objective C en España. Desde nivel básico hasta monográficos avanzados.

Corona SDK y Lua

Corona es una serie de herramientas creadas por Ansca Mobile para desarrollar apps para iPhone, iPad y Android, con un énfasis especial en los juegos y las apps sencillas.

Lenguaje Programación iPhone

Corona es un SDK alternativo especialmente indicado para juegos sencillos.

El lenguaje utilizado es Lua, un lenguaje muchísimo más sencillo que Objective C y muy utilizado para juegos (como World of Warcraft).

Cualquier programador, independientemente de su experiencia previa, puede aprender Lua y Corona en muy poco tiempo, como por ejemplo con mi curso de Desarrollo de Juegos con Corona para iPhone, iPad y Android.

Incluso personas sin ningún tipo de experiencia de programación pueden aprender a programar con Lua, aunque lógicamente con algo más de esfuerzo. En este último caso, es fundamental aprender primero los fundamentos de la programación. Una buena opción en este caso es optar por el curso de Desarrollo de Juegos con Corona para iPhone, iPad y Android para usuarios sin experiencia de programación.

Podríamos decir que Lua & Corona son el “flash” para iPhone, iPad y Android: ideal para juegos y apps sencillitas que necesitan ser implementadas rápidamente.

Ventajas

  1. Es más fácil “arrancar” con Lua y Corona que con Objective C. Está especialmente indicado para apps y juegos sencillos.
  2. Permite crear apps para iPhone, iPad y Android.
  3. Desarrollo más rápido.
  4. Herramientas baratas, aunque no gratuitas.
  5. El lenguaje, aunque sencillo, es muy bueno.
  6. Se puede desarrollar en un mac o en Windows.

Desventajas

  1. No es adecuado para aplicaciones complejas.
  2. No permite acceder a todas las características del sistema operativo (iOS o Android).
  3. Las novedades que vayan saliendo para iOS o Android tardan un poco más en estar disponibles.
  4. Está especializado para juegos y apps sencillas.
  5. No es de Apple. O:-)

Cómo aprender programación de apps con Corona y Lua

Estamos preparando dos cursos de Corona y Lua. Uno para usuarios sin ninguna experiencia de programación y otro para programadores. Todavía estamos definiendo el curso para que se adapte a las necesidades de los alumnos, y nos gustaría que nos ayudases. Rellena esta encuesta y podrías ganar una matrícula gratis.

PhoneGap

PhoneGap permite crear aplicaciones sencillas para iPhone, Android y otros muchos dispositivos (Palm, Blackberry, Windows Phone, etc). No son aplicaciones para iPhone, sino que lo simulan y se ejecutan dentro del explorador.

Lenguaje Programación iPhone

PhoneGap, el que más abarca y menos aprieta

La interfaz gráfica se crea con HTML 5 y CSS y la funcionalidad con Javascript.

Ventajas

  1. Aprovecha conocimientos que ya son comunes, como HTML y Javascript
  2. Abarca muchas plataformas
  3. Para aplicaciones muy sencillas, es algo rápido
  4. Se puede desarrollar en Windows y en Mac

Desventajas

  1. No son aplicaciones nativas en ninguna de las plataformas y a veces se nota
  2. No permiten usar todas las facilidades del sistema operativo
  3. Simular ciertas características de aplicaciones nativas puede ser complejo y farragoso
  4. No es una opción para aplicaciones mínimamente complejas

Cómo aprendo a crear apps con PhoneGap

Estamos definiendo un curso de introducción a PhoneGap. Pronto publicaremos más información. Mientras tanto, prueba este libro.

¿Cual uso?

Si quieres crear muchas aplicaciones muy sencillitas y que se ejecuten en muchos dispositivos, prueba PhoneGap.

Si quieres crear aplicaciones de forma rápida y que no sean muy complejas, prueba Corona.

Si quieres crear aplicaciones de gran calidad, que requieran usar las últimas tecnologías o que necesiten usar facilidades del sistema operativo, usa Cocoa.

Si quieres crear una “versión” iPad de tu portal web ya existente, prueba PhoneGap.

Si quieres aprender a programar para dispositivos móviles, empieza por Corona.

Si quieres hacer apps tanto para iPhone como para Mac, usa Cocoa.

Si quieres aprender una tecnología con demanda creciente en el mercado laboral, aprende Cocoa.

Si quieres hacer varios juegos sencillos, usa Corona.

Si quieres hace run juego complejo, usa Cocoa.

Si quieres hacer apps empresariales, con acceso a bases de datos, usa Cocoa.

Si todavía tienes dudas, pregúntame. :-)

Publicaciones electrónicas

Ahora bien, ¿y si lo que quieres crear no es una app, sino una publicación electrónica? Es decir,si tienes una publicación en papel y quieres transformarla en una publicación para el iPad, ¿qué tecnología usas?

Esto es otra historia que desarrollaré en otro artículo, pero ya te adelanto que también tienes 3 opciones…

KeepCoding Online Training Developers Hub.

Acerca de Fernando Rodriguez

Fundador & Editor Jefe de CocoaMental, Fernando Rodríguez (@frr149 & Linkedin) es desarrollador & un experto en la enseñanza de máxima calidad en programación y desarrollo para dispositivos iOS, Cocoa Touch, Objective C, Swift, Python, entre otros, aunque su mejor carta de presentación, es la opinión de sus alumnos: http://agbo.biz/nuestros-alumnos/ Es Chef de Formación de AGBO Training & Arunovo. Instructor de iOS Avanzado del Big Nerd Ranch. Profesor Asociado de la U-tad, autor invitado de revistas como iPhoneWorld, Applesfera.com & ponente habitual en conferencias dentro y fuera de España (iOSDevUK, CodeMotion, BCNDevCon, etc). En sus vidas anteriores fue un nerd de Python y Django, mago de Smalltalk, y para su pesar, galeote de C++ y un gran cocinero.

Tagged with:  

23 Responses to Lenguaje programación iPhone y herramientas para programación de Apps para iPhone & iPad

  1. Alex says:

    Hola… me gustó mucho tu post, muy bueno para orientar a la gente que, como yo, quiere empezar a hacer aplicaciones para iphone.
    No manejas algún curso online? lo que pasa es que soy de México.

    Saludos!

    • FRR says:

      Hola Alex,

      Me alegro que te haya gustado. Si, ofrecemos algunos de nuestros cursos también en formato a distancia. La próxima convocatoria que tenemos a distancia es para el curso iOS básico, empezando el próximo día 20/02.

      Si tienes cualquier otra duda, dame un toque. Fernando

  2. Manu says:

    Hola Fernando,
    Estoy interesado en introducirme en este mundillo de las aplicaciones móviles. Estoy apunto de terminar ingeniería de telecomunicaciones y considero que ya tengo algo de rodaje en esto de la programación orientada a objetos (C++, java y algo de la API de windows). Qué me recomiendas para empezar? y cuándo habría algún curso a distancia ya que soy de Gijón?
    Un saludo,
    Manu.

    • FRR says:

      Hola Manu,

      Si te manejas bien con estos lenguajes, mi recomendación es que empieces directamente con nuestro curso básico. Lo ofrecemos en formato presencial y a distancia. Tenemos un presencial empezando el próximo 23/03. Como estamos en estos momentos con uno a distancia, no hemos definido aún la fecha del siguiente, pero te mantendré al tanto. Si quieres, apúntate a nuestra Newsletter. Es la mejor manera de mantenerse al tanto de las fechas de la nuevas convocatorias y, además, ofrecemos descuentos exclusivos a los seguidores.

  3. belinda says:

    gracias por el articulo, es muy bueno y era la información que necesitaba. Estoy barajando la posibilidad de hacer la version iphone de una web y gracias a ti he visto q tengo varias alternativas. Un saludo ;)

  4. Doraemon says:

    De gratuito o ‘libre de costo’ nada de nada nada. Es de pago.
    Viene únicamente con la licencia (de pago) de OSX. Gratuito sería que pudieras descargarlo desde cualquier máquina, cosa que deliberadamente no ocurre.
    Sería como decir que los distintos componentes de windows son todos gratis, o libres de coste, porque vienen incluidos al comprar una licencia de windows. Como que no, ¿no?

    • frr149 says:

      No, puesto que Xcode no tiene ninguna utilidad para quien no usa un Mac. No he pagado un duro por Xcode, lo cual encaja bastante bien en mi definición de gratis.

  5. Christian Castro says:

    No se nada de programación pero quiero aprender. Se necesita algún requisito? Hay cursos en línea? Cuando inician? Cuanto cuestan? Agradezco si me pueden contactar a mi correo. Gracias

  6. anna says:

    Hola me encantaria empezar un curso para aplicaciones de iphone y ipad, pero no tengo ni idea, pero tengo mucho interes en aprender, tengo varias preguntas, donde se imparten estos cursos? Cuanto cuestan? Si puedo empezar ahora, en mes de julio o agosto?
    Agradezco mucho que puedas contestarme por e-mail. Muchas gracias

  7. Oscar says:

    Gracias por toda información aportada, fue bastante clara para mi que apenas voy a entrar a la programación para iPad. Actualmente tengo un iPad 2 y me pregunto si podría hacer alguna clase de instalación de cocoa en mi iPad u obligatoriamente necesitaría una latón Mac? Disculpa mi ignorancia y gracias de antemano por la respuesta.
    actualmente programo en Delhi y me gustaría saber los costos de tus cursos.

  8. German Fernández says:

    Hola,

    Estoy interesado en algun curso para poder hacer mis propias aplicaciones en ios. Tengo experiència mínima en programacion puesto que al estudiar FPII en si dia, se enseñaban varios lenguajes de programacion, y de los orientados a objetos, el visual basic, que acababa de salir por aquel entonces, te hablo de hace como 15 o 16 años. Partiendo de esa base, qué me recomiendas para empezar, tengo nociones y la logica de la programacion pero no soy ningun experto, ni mucho menos.

    Gracias. Saludos.

  9. Saludos…

    Hey men se te agradece y tambien esta muy bien explicado..

  10. Josep Coll says:

    Hola,

    estoy interesado en aprender a programar en Corona para empezar. De programación se lo básico debido a que realizo grado superior de informatica. He trabajado con Javascript en primero, i ahora en segundo realizamos PHP. Además de SQL Server, y algo básico de c++. Que curso crees que debería hacer? Espero respuestas en mi correo. Gracias

    • frr149 says:

      Pues precisamente estamos terminando el diseño del curso de introducción al desarrollo de apps con Lua y Corona. Así que date de alta en la newsletter y en cuanto salga (muy pronto), te enterarás el primero. :-)

  11. Luis González says:

    Hola. Se pueden usar bases de datos para almacenar info? Los datos que se almacenan en las aplicaciones iPhone, donde se guardar? Por ejemplo, el calendario del iPhone con todos los eventos o citas. Dónde se guarda todo eso? En una base de datos que está dentro de la misma aplicación? Saludos.

  12. Luis González says:

    Hola. Se pueden usar bases de datos para almacenar info? Los datos que se almacenan en las aplicaciones iPhone, donde se guardar? Por ejemplo, el calendario del iPhone con todos los eventos o citas. Dónde se guarda todo eso? En una base de datos que está dentro de la misma aplicación? Se pueden crear base de datos? Saludos.

  13. Irsek says:

    Tengo una duda, para desarrollar la aplicación para iOS podemos usar el poder de otras tecnologías como c#, o Java (este es el que más me interesa) ?

  14. FJ says:

    Hola Fernando:
    Tengo la intencion de desarrollar una aplicacion de gestion commercial para iPad. Pero no tengo claro que herramientas o lenguaje usar… podrias por favor darme algun tip.
    Gracias de antemano.

  15. Andres says:

    Hola amigo que tal mi pregunta ea la siguiente estoy trabajando en una red social para dispositivos moviles de ios y android pero estoy muy confundido en la base de datos. No se que base de datoa me funciona para los doa. Se que Sql para android pero para ios ? Gracias y espero me ayudes

  16. Juan says:

    Hola amigo. Necesito desarrollar una aplicación lo mas sencilla posible, para comercializar música directa a dispositivos en una zona wi-fi. La idea es que la persona compre un “cupo” de canciones y el decida descargarlas directo a su dispositivo (android, iOs, BB, u otro). La idea general es que la persona paga previamente un monto x de acuerdo a las cantidad de canciones y de allí se le asigna como un “código de descarga” para dichas canciones por wi-fi (en un local comercial). El esquema sería lo mas parecido al reproductor nativo de iOS para los iPod o iPhone, que la persona pueda hacer las búsquedas como lo permite el mismo reproductor (Artista, Álbum, Canción, Año, Género, etc.), incluso que le deje reproducir unos 30 segundos de la canción, una vez que el decide bajarla, se le va descontando del total de canciones que generó el “cupón”. Previo podría registrarse en el programa con el correo electrónico y el número de teléfono para guardar una base de datos de clientes. La Música la tendríamos en un servidor local con acceso wi-fi con un programa en la PC (no tengo mac) que controle las emisiones de “cupos” y las descargas realizadas, así como el bloqueo a ese cliente una vez que bajaron la cantidad de canciones asignadas en el cupo (el cupo puede ser una clave random con algunos valores especiales que identifiquen la cantidad de canciones y cualquier otro dato de importancia requerido para el proceso de descarga (validación).

    Sería 2 programas, el que descarga en su celular o dispositivo el cliente donde le coloca el “cupo” y le permita descargar y el programa principal en el PC (no tengo mac), que genera los cupos y controla las descargas siempre por wi-fi.

    Seria usado en un lugar así como café-descarga donde las personas pueden ir a tomar algo mientras se llevan unas pocas canciones directo a su celular o dispositivo.

    Disculpa lo extenso, pero mi pregunta es si conoces quien pueda desarrollarlo o darme algunas pautas o recomendaciones como, lenguaje, herramientas, etc. que pueda requerir para este proyecto.

    Muchas gracias de antemano y te felicito por tu explicación que fue sumamente interesante.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">