Estos últimos días muchos me habéis preguntado cómo aprender a programar apps para iPhone. Así que aquí va un post contando la experiencia.
Si eras una de esas personas que no se perdía un artículo de El Imperdible seguro que te has dado cuenta que este blog ha estado unos cuantos meses en coma. Podría poner excusas, como que ha habido una pandemia mundial, pero lo cierto es que he encontrado un nuevo hobbie: crear apps.
¿Sabéis esa lista de cosas que os gustaría hacer antes de morir pero que nunca sacas tiempo ni pones el empeño suficiente para hacer? Bueno, pues aprender a programar llevaba tanto tiempo en mi lista que el resto de cosas la trataban de usted. Cada año, cuando llegaba la WWDC (la conferencia de desarrolladores de Apple) le quitaba el polvo y decía que este año, de verdad de la buena, me ponía con ello. Luego lo iba dejando por que o bien no era el momento, o estaba muy liado o [INSERTA AQUÍ TU EXCUSA]. Y así una y otra vez hasta el pasado mes de noviembre, cuando una oferta del Black Friday puso fin a esta especie de día de la marmota.
Cómo aprender a programar apps para iPhone

Aprender a programar apps para iPhone es como aprender un nuevo idioma. No es fácil, pero con ganas, esfuerzo y constancia todo el mundo puede conseguirlo. Dicho esto, es clave saber por dónde empezar para no sentirte perdido del todo.
Si buscáis en Google seguro que encontráis miles de páginas, cursos y vídeos que enseñan a programar desde cero. Algunos están bien y otros no tanto, pero cuando empiezas no es fácil diferenciarlos. Así que aquí va una lista con los recursos que más me han ayudado a aprender a programar ordenados de no tengo ni idea a pues ya se cómo manejarme un poco:
- Atajos. Es una app que viene instalada de serie en todos los iPhone e iPad. Te permite crear pequeñas “apps” sin escribir una sola línea de código. Sólo tienes que arrastrar bloques. Es una buena forma de aprender los conceptos básicos. Puedes crear algo sencillo hasta cosas realmente complejas.
- Los cursos de Swift Playgrounds (iPad, Mac). Puede parecer que es sólo para niños/as, pero es la mejor forma de dar tus primeros pasos en Swift. Te enseña los conceptos básicos desde cero y es muy ameno.
- “iOS 13 & Swift 5 – The Complete iOS App Development Bootcamp” de Angela Yu. Es el famoso curso que me compré en el Black Friday por 10€. Por ese precio no sabía muy bien qué esperarme, pero al final resultó ser todo un acierto. Aprendes haciendo apps, empiezas por lo más sencillo y va subiendo poco a poco de dificultad. La única pega que le pongo es que SwiftUI (que es más sencillo y rápido que UIKit) apenas se toca en un módulo. Tiene varios Pros muy importantes cuando empiezas: Te enseña a usar Xcode, todo tipo de conceptos de programación y, sobre todo, a valerte por ti mismo.
- Los tutoriales de Apple de SwifUI. Puede que todavía esté en pañales (veremos en la WWDC), pero SwiftUI es el futuro. Además, es mucho más accesible para principiantes que UIKit.
- “100 days of Swift” y “100 days of SwiftUI”. Una vez empiezas a ir por libre, en Hacking With Swift podéis encontrar tutoriales para hacer prácticamente cualquier cosa.
- Google y Stack Overflow. Para cuando algo falla y no sabes por qué.
Si has ido abriendo los enlaces te habrás dado cuenta de que la mayoría de recursos para aprender a programar están en inglés. Aunque hay webs como Apple Coding que tienen una gran cantidad de información y tutoriales en castellano, el inglés es de gran ayuda. Sobre todo cuando te quedas atrapado en algo muy concreto y no sabes muy bien por dónde seguir.
Y ahora, la pregunta del millón. ¿Cuántas horas has dedicado a aprender a programar? Según Toggl, unas 100 horas (entre cursos y tutoriales). Aunque, para ser justos, también habría que sumarle otras 150 horas que he estado varias apps por mi cuenta.
No lo voy a negar, el confinamiento ha sido de gran ayuda a la hora de aprender a programar. Dicho esto, lo realmente importante es el compromiso. Al igual que con el gimnasio, los resultados se empiezan a notar cuando llevas varias semanas y meses de trabajo. Da igual si es una hora al día o los domingos por la mañana, lo importante es la constancia.
SafeTimer, mi primerita app

Además de seguir aprendiendo, he aprovechado el confinamiento hacer y lanzar mi primera app: SafeTimer, una app que hemos desarrollado de forma altruista en Hortelanos y que te ayuda a controlar el tiempo de uso que le has dado a una mascarilla.
La idea surgió cuando empezamos a buscar mascarillas reutilizables. La mayoría de marcas hablaban de X horas de uso antes de que hubiera que lavarlas o cambiarles el filtro. El problema estaba en que, salvo que la usarás para trabajar, la mayoría usamos las mascarillas de forma intermitente: 30 minutos cuando salen a hacer la compra, 10 cuando bajan al perro, dos horas cuando salen de paseo… Es fácil perder la cuenta y si te pasas de uso al final la mascarilla pierde toda la eficacia.
Como no había ninguna forma sencilla de controlar el uso (y estaba muy arriba aprendiendo a programar) decidí liarme la manta a la cabeza y crear SafeTimer. Por el camino se sumaron algunos amigos/as como Miguel de Andrés, Patricia Bedoya o Carla Auclair... y menos mal que lo hicieron por que sin su ayuda no lo hubiera conseguido.
Cuatro semanas después aquí estamos. La app ya se puede descargar (totalmente gratis), todo el código está publicado de forma abierta en GitHub, he publicado la primera actualización y tengo otras mejoras en marcha.
4 cosas que he aprendido

Dicho esto, aquí van algunas cosas que me hubiera gustado saber antes de ponerme a hacer la app:
- Dedica un par de horas a tenerlo todo más o menos planeado. Es más fácil hacer cambios sobre el papel que sobre el código, especialmente si es una decisión de base. Lo mismo con el diseño de las pantallas, haz bocetos en lo que sea (yo uso Linea Sketch) y prueba a toquetearlo para ver si funciona antes de diseñarlo en Xcode.
- Empieza a hacer pruebas lo antes posible. Intenta tener feedback de todo tipo de usuarios, así descubrirás casos de uso que ni siquiera se te habían pasado por la cabeza. Una amiga descubrió en los primeros 30 segundos que usó la app un bug muy serio que yo ni había contemplado.
- Crea tu app para que sea lo más flexible posible. Al principio es fácil que se te pase por alto, pero se tiene que adaptar desde una pantalla enana como la del iPhone SE hasta una gigante como la del iPhone 11 Pro Max. Lo mismo ocurre con los idiomas (los textos no tienen la misma longitud) y la accesibilidad. Si empiezas con ello desde el inicio te evitarás muchos quebraderos de cabeza al final.
- SwiftUI es el futuro. Tiene sus limitaciones, pero no hubiera sido capaz de hacer la app en tan poco tiempo si no fuera por él. Es tan ágil y sencillo que pude hacer la versión para el Apple Watch (que es totalmente independiente) en menos de 10 horas de trabajo. Todo gracias a todo el código de la versión para iPhone que pude reutilizar.
¿Y ahora qué?

Pues a seguir aprendiendo y creando apps.
Tengo muchas ideas en el tintero, algunas más ambiciosas que otras. Además, la WWDC está a la vuelta de la esquina y estoy impaciente por ver qué novedades traen las nuevas versiones de iOS/iPadOS/macOS/watchOS y, en especial, de SwiftUI.
No olvides seguirme en Twitter si no quieres perderte mis aventuras con la programación.
Muy interesante tu desarrollo. Pretendo un camino similar aunque desde otro punto. Con unos cuantos años más pero ilusionado. Ejemplos como el tuyo son motivadores. Siempre he tenido esa espinita clavada acerca de la programación y no quiero pasar sin intentarlo. Te animo a seguir contando tus avances por aquí y desearos muchos éxitos.
Me gustaMe gusta
Muchas gracias Oscar! Ahora mismo he lanzado un nuevo proyecto llamado Chubby Apps y estoy desarrollando una App para personas con diabetes llamada Cori (https://chubbyapps.com/cori).
Me gustaMe gusta