codemotion

Codemotion 2012: Charla “Cómo desarrollar para iOS (iPhone & iPad)”

Cómo desarrollar para iOS (iPhone & iPad) en Codemotion 2012

El sábado pasado, 24/03/12, me estrené en Codemotion 2012 con una charla sobre programación para iPhone, en el track 4, 9:30h.

 Codemotion España

24 de Marzo, 2012 : 8:00 AM – 8:00 PM
EUI – Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, Madrid

CodeMotion es el evento tecnológico que reunirá en Madrid a técnicos, desarrolladores y estudiantes de todas las comunidades y lenguajes. Por primera vez se celebrará en España después de 5 años de éxito en Italia.

 

 

Codemotion 2012

Charla Programación para iPhone & Ipad en la Codemotion 2012

 

En la charla de @frr149 sobre Desarollo iPhone. Lleniiiisimo #codemotion #es
@oscarfesa

Introducción a la Programación iPhone

Desde un principio, la organización me había pedido algo para principiantes, y basándome en la experiencia obtenida con mis cursos, decidí hacer algo que sirviese al que desea crear Apps pero no sabe ni por donde empezar.

La idea era servir como breve guía de las tecnologías y herramientas que hay que dominar para empezar en este mundillo.

 

¿Por qué programar para iOS (iPhone & iPad)?

“La crisis es la mejor bendición que puede sucederle a personas y países, porque la crisis trae progresos. La creatividad nace de la angustia como el día nace de la noche oscura. ”

Albert Einstein

Albert Einstein escribió esto refiriéndose a la Gran Depresión, una de la peores crisis que afectó al mundo hasta entonces. Recuerdo que cuando estudiaba ese periódo el el colegio, jamás pensé que llegaría a vivir algo similar … y aquí estamos.

Sin embargo, en toda crisis hay oportunidades. Durante la Gran Depresión, muchas fueron las empresas que desaparecieron, pero otras florecieron como nunca. Un denominador común de éstas últimas era que proporcionaban un producto creativo e innovador a precios moderados.

El cine vivió una época dorada al ofrecer un ocio innovador a precios bajos. En plena depresión se lanzaron clásicos como Ciudadano Kane o El Mago de Oz. Mientras en la mayoría del mundo vivía una pesadilla, en Hollywood se creaba la “Fábrica de sueños”.

También fue la época del despegue de la industria automovilística. Aquellos fabricantes que adoptaron métodos nuevos, como las lineas de producción, pudieron no solo sobrevivir, sino que vencieron, al ofrecer coches baratos accesibles a toda la población.

Producto innovador a precio moderado: ¿a qué os suena?

Codemotion 2012

 

Cuando estuve en EEUU, al charlar con Aaron Hillegass , me confirmó lo que ya veía en España: hay una gran demanda de buenos desarrolladores de iOS (y de Android, aunque algo menos).  A menudo recibo en LinkedIn pedidos de empresas buscando buenos desarrolladores de iOS, y no solo empresas españoles.

Es una de las tecnologías con más potencial de crear empleo en estos momentos. Vivimos una crisis, pero también un boom: al igual que hace 10 años todos querían tener su sitio web, hoy todos quieren tener su App.

Tanto si quereis crear vuestro propio producto o trabajar en el de otro, teneis una gran oportunidad. En España ya se hacen cosas muy buenas, como por ejemplo Camera+, uno de los grandes éxitos de la AppStore, se desarrolla cerca de Madrid. ¿Por qué vosotros no?

Herramientas de  desarrollo para iPhone

Lua y Corona

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.

El lenguaje utilizado es Lua, un lenguaje muchísimo más sencillo que Objective C y muy utilizado para juegos (como World of Warcraft). Aunque la sintáxis es similar a C, recuerda en muchos aspectos a Lisp. Es como Javascript pero con un cerebro. 😉

Es una buena opción, si quieres hacer muchos juegos sencillitos.

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.

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.

Se puede desarrollar en Mac, Windows y hasta con pizarra y tiza.

No tiene acceso a las funcionalidades del sistema operativo, como pueda tener una app nativa, aunque hay formas de comunicar código javascript con código Objective C fuera del explorador.

Bueno para apps muy sencillas que requieran ejecutarse en muchos dispositivos

Objective C y Cocoa: la alternativa de Apple

Si vas a desarrollar para iOS, es indispensable al menos saber algo de Objective C  y Cocoa (aunque uses alguna otra opción, como es Corona), ya que toda la documentación presupone conocimiento de Objetive C.

Hay varios componentes que debemos conocer:

  • iOS: el sistema operativo
  • Objective C: el lenguaje
  • Cocoa: la librería de clases
  • MVC (model view controller): El pan nuestro de cada día
  • Xcode: el entorno de programación
  • iOS developer program: el club

iOS

Se trata de un Unix BSD, con un nucleo muy similar al de OSX. Se puede programar usando C y las librerías estándares de Unix. . La seguridad es muy estricta y hay “algo así” como cuotas tanto de memoria, como espacio en “disco” y procesador.

Objective C & Cocoa

A language that doesn’t affect the way you think about programming, is not worth knowing.  — Alan Perlis

Objective C fue inventado en los 80 por Brad Cox, uniendo C y parte de la filosofía de Smalltalk . Steve Jobs licenció Objective C y fundó NeXT. Cuando Apple compró NeXT en el 96, NextStep pasó a llamarse OSX & Cocoa.

Objective C es un lenguaje dinámico, es decir, muchas de las comprobaciones que otros lenguajes hacen en tiempo de compilación éste las aplaza hasta tiempo de ejecución. Esto hace que sea mucho más flexible que lenguajes como C++.

Objective C es un lenguaje que sorprende mucho al que viene de Java o C++, ya que aunque comparte ciertas características con dichos lenguajes, algunos de los rasgos que lo definen provienen de Smalltalk. De hecho, C++ y Objective C representan dos filosofías muy distintas:

Codemotion

C++, lenguaje estricto: Tú como programador eres un inútil y no sabes lo que quieres. Lo que necesitas es disciplina y normas muy estrictas.

Codemotion

Objective C: lenguaje dinámico. Tú como humano, sabes mejor lo que quieres que el compilador. Lo que necesitas es libertad para crear, aunque a veces eso te lleve a cometer errores.

Model View Controller: Un patrón de diseño para controlarlos a todos

El patrón de diseño Modelo-Vista-Controlador fue desarrollado junto a Smalltalk para crear, de forma eficiente, interfaces gráficas. Consiste básicamente en dividir las clases de tu programa en tres equipos con responsabilidades muy distintas. Mientras que el Modelo se encarga de representar aquello que el programa es en esencia, el Controlador y las Vistas se encargan de mostrar dicho modelo al usuario.

Es fundamental tener my claro el patrón MVC antes de ponerse a desarrollar apps para iOS u OSX.

Xcode

Xcode es el entorno de programación que usa la inmensa mayoría de los desarrolladores de iOS y OSX. Es proporcionado por Apple de forma gratuita y se puede bajar de la AppStore. Contiene también un perfilador de excelente calidad, llamado Instruments.

Una alternativa que tiene ciertos adeptos, es AppCode, de JetBrains. Según dicen quienes lo usan, es más estable y los “refactorings” son mejores. Eso sí, es de pago.

iOS Developers Program

El programa de desarrollo no es obligatorio y existen dos versiones, la gratis y la de pago. Si tienes algún interés en desarrollar para iOS, te recomiendo que te des de alta de inmediato  en la versión gratis. Te dará acceso a mucha información, aunque toda ella en Inglés. Podrás desarrollar tus aplicaciones y comprobarlas con el simulador, aunque no podrás depurarlas en un dispositivo ni subirlas a la AppStore. Para esto tienes que pasar por caja (son 79€ al año).

Recursos para poder empezar

Libros

Uno bueno para empezar es el “iOS Programing, the Big Nerd Ranch Guide” y si quieres echar un vistazo más en profundidad en Objective C, prueba primero “Programming in Objective-C ” de Kochan.

Echa un vistazo a nuestro post “Libros programacion iPhone & iPad y la vida del informático.”

Cursos

Los de Stanford son excelentes y gratuitos. Lo único es que hay que tener muy buen nivel de Inglés para seguirlos. Los tienes en iTunes.

Los cursos del Big Nerd Ranch son fantásticos (doy fé de ello 😉 y también se imparten en Europa (en Holanda y Alemania). Para seguirlos hay que tener muy buen nivel de Inglés.

En Español, tienes los cursos que impartimos en Cocoa Mental & AGBO. Los hay desde un nivel básico hasta monográficos avanzados.

Donde encontrar a otros frikis de Cocoa

Un buen sitio para encontrarnos es el NSCoderNight. Suele haber reuniones en las principales capitales de provincia y yo suelo acudir a la de Madrid. Son los miércoles, a cada 15 días.

Otro lugar es el Friday At Fridays. Se trata de una reunión similar en fecha y hora distinta (siempre los viernes en la semana que no hay NSCoder Night) donde nos dedicamos a charlar de frikismos y ponerse morados.

 

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://keepcoding.io/es/testimonio/ CLO en KeepCoding & 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.

Share this:

Leave a comment