La fiebre del momento: crear “Apps” para iPhone & iPad
A menudo me preguntan por twitter, LinkedIn y en el blog, cómo empezar a crear apps para iPhone partiendo de cero. Es decir, empezar sin tener ningún tipo de experiencia previa de programación. Para no estar repitiéndome, he decidido escribir un post sobre el asunto con mis recomendaciones.
Tanto mi curso de introducción, como los de la Universidad de Stanford, presuponen cierta experiencia previa y cierto conocimiento de programación orientada a objetos. En el caso de Stanford, supongo que será porque está destinado a alumnos que ya hayan superado los cursos de introducción a la programación de dicha universidad. En mi caso, la razón es que sería imposible poner al día alguien en encima enseñar las peculiaridades Cocoa y Cocoa Touch todo en 3 días.
No obstante, el problema sigue para aquellos que no tienen una base previa: ¿cómo llegar al punto en que pueda seguir el curso de introducción a Cocoa Touch?
Las herramientas necesarias para desarrollar para el iPhone
Para crear apps para iPhone (o para el Mac o iPad) necesitarás lo siguiente:
Objective C
Es el lenguaje de programación usado por Apple. Se trata de un lenguaje parecido e Java o C# (por mencionar sus parientes más conocidos) con algunas peculiaridades. Aunque se trata de un lenguaje excelente para desarrollar aplicaciones complejas, no es el más adecuado para aprender a programar.
Cocoa Touch
Es la “librería de clases” que proporciona Apple. Si lo de “librería de clases” te ha sonado a Chino, usaremos un símil de carpintería. Si en vez de crear apps quisieras aprender a hacer muebles, “Cocoa Touch” sería las herramientas específicas, como el serrucho, los cinzeles, las lijas y demás. Objective C sería la forma de usarlas cada una de manera adecuada.
XCode
Es el entorno de programación de Apple. Se trata de un programa donde creas tus apps. Siguiendo el simil carpintero, se trata de tu taller.
Los frikis como yo nos pasamos la mayor parte del día frente a Xcode.
Aprender a programar y aprender a usar un lenguaje de programación
Estos son dos conceptos que casi siempre se confunden y con resultados desastrosos. Una cosa es saber programar (en cualquier lenguaje) y otra muy distinta es saber la sintaxis de un lenguaje en particular.
Un símil adecuado sería la cocina: una cosa es saber cocinar (preparar los ingredientes, reconocer los distintos cortes de la carne, limpiar los pescados, preparar salsas básicas, combinar sabores, acertar los puntos de cocción de cada plato, decorar el emplatado, etc) y otra muy distinta, y más sencilla, es saber usar un horno o una olla exprés de una marca en concreto.
Por lo tanto el que quiere abordar desde cero la creación de apps tiene dos cosas que aprender:
- Conceptos básicos de programación como variables, funciones, control de flujo, diseño de programas, clases, objetos y métodos.
- Las herramientas necesarias para aplicar esos conocimientos creando apps: Objective C y Cocoa Touch.
Para aprender a programar necesitas un lenguaje de programación
Lógicamente para aprender a programar (primer apartado que acabamos de ver), necesitaremos un lenguaje de programación, y aquí es donde la cosa a menudo se tuerce.
De la misma manera que para aprender a esquiar hay esquís específicos para principiantes (que les facilitan la tarea) y luego éstos no son los más adecuados para la práctica diaria de este deporte, también hay lenguajes que son especialmente adecuados para los principiantes, aunque luego no sean los más usados por los veteranos.
Desgraciadamente, Objective C (el lenguaje usado para crear aplicaciones para Mac, iPhone y iPad), aunque un excelente lenguaje para crear aplicaciones, NO es un buen lenguaje para el principiante.
Intentar aprender a programar usando Objective C puede hacerse muy cuesta arriba, ya que te obliga a dedicar mucho tiempo a cosas que no son fundamentales. Objective C impone mucha “burrocracia” al principiante y puede hacer que el árbol le haga perder de vista el bosque.
Por otro lado, sí que hay lenguajes que han sido diseñados para la enseñanza y son particularmente adecuados para aquellos que empiezan a programar. El mejor, con mucha diferencia es Scheme.
Se trata de un lenguaje muy pequeño, cuya sintáxis se aprende en 10 minutos, sin ningún tipo de “burrocracia” que dificulte el progreso del alumno. Además, los mejores libros creados por el hombre para enseñar a programar lo usan.
Los libros más adecuados para el principiante absoluto
Entre los mejores libros para aprender a programar, el top 4 usa Scheme:
- “Structure and interpretation of computer programs”. Adecuado para las mentes más matemáticas. No hace falta léerselo entero, bastan los primeros capítulos. Requiere una base matemática mayor que los demás.
- “How to design programs”. Más sencillo y corto que el anterior, aunque también requiere una cierta base matemática.
- “Concrete abstractions”. Similar al anterior en cuanto a dificultad. Lamentablemente está agotado aunque se puede leer online de forma gratuita.
- “The Schemer’s Guide”. En mi opinión, el más didáctico de todos (y el más corto). No requiere ningún tipo de conocimiento previo, ni matemático ni nada. En escasamente 300 páginas, te llevará de no saber nada a crear un juego que aprende de sus errores (inteligencia artificial) y la programación orientada a objetos.
Tal vez el mejor de todos para una primera aproximación sea “The Schemer’s Guide” (también hay una traducción al Español). Es el libro que a mi gustaría haber usado cuando empecé a programar.
Una vez leido dicho libro estarás listo para abordar el curso de Introducción al desarrollo de Apps para iPhone y iPad con una base mejor que la de muchos otros alumnos con más experiencia.
El atajo hacía el desarrollo de apps para iPhone
Desgraciadamente, sé que NADIE seguirá mi consejo de empezar por el “The Schemer’s Guide”. Las prisas por empezar son tantas, que se opta por ir de cabeza a por Objective C pensando que se trata de un atajo, sin embargo lo más probable es que tardes más en alcanzar un nivel de conocimiento adecuado por esta vía.
Sin embargo, si quieres empezar ya con Objetive C, la mejor ruta es la siguiente:
- Empieza con “Programación Objective C” y una vez tengas medianamente dominado el material puedes pasar al punto siguiente (Cocoa Touch)
- Sigue con alguno de los libros que cito en mi lista de material para desarrolladores de Apps para iPhone ,
- o si prefieres un enfoque más personalizado, apúntate a mi curso de introducción al desarrollo de apps para iPhone y iPad.
Resumiendo
- Aprender conceptos básicos de programación. Puedes hacerlo con,
- “The Schemer’s Guide”, o saltando directamente a
- “Programación Objective C”
- Cocoa Touch. Para ello puedes usar
Si todavía no sabes programar y estas interesado, te invitamos a nuestro próximo taller online exclusivo y completamente gratuito, para que puedas vivir la experiencia KeepCoding.
¡APÚNTATE!
Si quieres formar parte de la comunidad KeepCoding, compartiendo información relevante sobre desarrollo Web, Mobile, Big Data o Blockchain puedes escribirnos a [email protected].