Al momento de matricularte al Desarrollo de Apps Móviles Full Stack Bootcamp, se te asignará un coach y serás entrevistado para determinar si tienes lagunas que debes de resolver antes de arrancar el bootcamp. Por eso es recomendable hacer la matrícula lo antes posible y así estar listo para cuando empiece el maratón.
Estos son algunos de los módulos online que tu coach podrá recomendarte:
- Swift desde 0
- Swift & Storyboards
- Kotlin desde cero
- Kotlin Avanzado
- BBDD relacionales, SQL & MySQL
- Introducción a GNU/Linux
- Fundamentos de Autolayout
- Arquitectura y código de calidad
- Fundamentos de ConstraintLayout
Fundamentos iOS
Aquí aprenderás los cimientos de cualquier desarrollo iOS, desde la primera intro a Swift, a la arquitectura MVC y los conceptos básicos de la estructura de toda App iOS: UIKit, delegados, controladores, definición de interfaces mediante xib, mecanismos de comunicación.
Crearás una App Universal (iPhone & iPad) de tipo catálogo, uno de los patrones más comunes. Es un módulo esencial dentro de la metodología KeepCoding de fundamentos sólidos.
Fundamentos de Autolayout
Módulo corto online para prepararte para la creación de Apps con UI más compleja. Hemos reducido la complejidad de Autolayout a 7 casos sencillos, que comunicándose entre sí, pueden crear cualquier UI. Desde hace 3 años ofrecemos una recompensa a quien encuentre una excepción a estas 7 reglas y todavía nadie ha cobrado. 😉
Concurrencia y Red
Algo que caracteriza a toda App móvil, es que consume servicios web a través de una API REST. Esta estructura esencial de todas las Apps se ve aquí con todo lujo de detalle y sirve de disculpa perfecta para enseñar una de las tecnologías más importantes que debe de dominar un desarrollador mobile: la programación concurrente.
Lo pondrás en práctica con un API real, con sus ventajas y sus problemas, como sería un entorno de una empresa. Dominarás el pipeline de datos (toda app lo tiene) que fluye desde el backend hasta el usuario y de vuelta al backend. Todo ello con Grand Central Dispatch (GCD), clausuras, Swift avanzado y la primera exposición a la programación funcional con Swift, base para Combine & SwiftUI en el futuro.
Además, en este módulo veremos un patrón similar al MVC que se ha impuesto en la industria, tanto en iOS como en Android: el MVVM. Es el que usaremos en todos los módulos a partir de ahora.
Persistencia Avanzada, Instrumentación & Localización
Toda App digna de ese nombre debe de seguir funcionando, al menos en parte, en caso de mala conexión o falta absoluta de conexión. Para eso es esencial saber crear cachés locales y persistencia local en el dispositivo, tanto segura (Keychain) como no (UserDefaults & Core Data).
En este módulo aprenderás tecnologías esenciales de iOS como es Core Data, Notificaciones Avanzadas, Observación, Repositorios y todo ello poniendo en práctica las frameworks de localización y mapas.
Para terminar, aprenderás a instrumentar tu código para depurar, encontrar cuellos de botella (tanto de CPU como I/O), cómo arreglarlos y optimizar tu App.
UX Móvil & UI
El camino hasta aquí ha sido algo duro, y nos merecemos un pequeño descanso de tanto código hardcore. En este módulo aprenderás la esencia de la UX mobile (aplicable tanto a iOS como Android) y las principales herramientas para crear assets e importarlos a tus proyectos, como Sketch y Zeplin.
Aunque de momento sólo sabes iOS, también aprenderás Material Design para cuando llegues a Android y Flutter.
UI Avanzada
Una de las características de las Apps móviles es la necesidad de tener una UI muy depurada. Aquí aprenderás a crear vistas y UIs customizadas. Hay varias formas de crear UIs en iOS:
Storyboards: lo habrás visto en el preboot
Xibs: en los módulos pasados.
Swift UI: más adelante
Por código.
En este módulo, aprovecharemos el conocimiento de diseño que hemos adquirido y pondremos en práctica crear vistas customizadas por código. Esto es lo que hacen todas las empresas grandes, como Facebook, Google y otros.
Realidad Aumentada & Core ML
En este módulo, aprenderemos a usar las frameworks más novedosas de Apple para realidad aumentada y Machine Learning en el dispositivo: ARKit & CoreML. Aunque la inmensa mayoría de las Apps aún no requieren dichas capacidades, es la tecnología del futuro y el momento para situarse como experto, es ahora.
Master Class de SwiftUI & Combine
No podíamos abandonar el track iOS sin ver el paradigma que va a dominar la creación de UIs en el futuro. SwiftUI se va a imponer de forma bastante rápida en el desarrollo iOS futuro y es vital conocerla en profundidad.
Aprovecharemos para aprender otra framework de Apple llamada Combine, que sustituye a RXSwift y que es el complemento perfecto para SwiftUI.
Desarrollarás una App multiplataforma para iOS y WatchOS.
Fastlane, App Store & Google Play
De poco sirve tener una App si no sabes subirla a la App Store o a la Google Play y posicionarla correctamente allí. Aquí aprenderás a aplicar CI / CD en proyectos mobile con la herramienta estándar del momento, Fastlane.
Firebase
Firebase es un conjunto de herramientas de Google, absolutamente esenciales para cualquier desarrollador mobile (y también web). Te permite crear desde backends sencillos para tus Apps (MBaaS), CMS para apps móviles, y algo absolutamente vital: instrumentar tu código para recabar información de errores de apps en producción, mediante crashlytics.
Si sacas tu app al mercado sin crashlytics (o un servicio similar), negaremos haberte conocido.
El track Android es algo más corto que el de iOS, porque muchos de los conceptos son los mismos y ya han sido vistos en iOS, lo que nos permite tener un ritmo algo más ágil. El lenguaje (Kotlin) es parecido, la arquitectura es la misma (MVVM) y los mecanismos de persistencia (Room) y algunas frameworks son casi iguales (SwiftUI vs Combine, AutoLayout vs ConstraintLayout).
Fundamentos Android
Similar al de iOS y de igual importancia, sino más. Android tiene ciertas características que lo distinguen de cualquier otro SO del mercado y es vital entender esa filosofía diferente para crear Apps para él.
Veremos una primera aproximación a Kotlin, ciclo de vida de las Apps y todos los componentes del SDK de Android (Activities, Fragments, tipos de vistas) así como el conjunto esencial de herramientas de Google conocido como JetPack (LiveData, etc), que nos permitirá (entre otras cosas) consumir REST APIs de forma sencilla. También aprenderemos la inyección de dependencias en Android y porqué es esencial en esta plataforma y no en iOS.
Fundamentos de Constraint Layout
Módulo corto y online, similar al de AutoLayout para iOS. Lo necesitarás para Apps más complejas.
Android Avanzado: Persistencia & Concurrencia
En este módulo veremos cómo implementar persistencia local avanzada en Android, con Room. También veremos en profundidad el modelo de concurrencia de Kotlin mediante corrutinas. Esto es esencial, no sólo para la programación concurrente, sino de cara a futuro ya que va a sustituir algunos elementos de JetPack (LiveData) y también para iOS: se estima que pronto Swift también pase a usar corrutinas.
UI Avanzado: Compose , Localización & Mapas
En este módulo veremos una intro a Compose (el equivalente a SwiftUI, aunque está mucho más verde) así como creación de vistas customizadas, localización y mapas.
Master Class de Testing Avanzado
El testing y TDD es algo que veremos en todos los módulos, pero en esta masterclass se profundizará mucho más, incluyendo el concepto de Screenshot Testing, para testar las UIs. Es una práctica esencial en Apps complejas y un conocimiento que te separa del resto de candidatos en una entrevista de trabajo.
Aunque se ve en Android es 100% aplicable a iOS.
Aunque la mayoría de los proyectos reales se hacen 100% nativos, es cierto que hay un nicho para el desarrollo multiplataforma. Hemos seleccionado dos plataformas, una que aún se usa bastante (React Native) y otra que está creciendo como la espuma (Flutter).
Fundamentos React Native
En este módulo aprenderás lo básico para desarrollar una App con React Native. El conocimiento adquirido aquí podrá servir también en caso de querer aprender React o Apps de escritorio con Electron.
Fundamentos de Flutter
Flutter es el repo que más crece en GitHub y el lenguaje (Dart) es el que más ha crecido en el año pasado.
Se empieza a usar para aplicaciones complejas (a veces con componentes nativos integrados, en Swift & Kotlin) por parte de grandes empresas, como eBay, Google, Tencent y startups como NuBank.
El momento de situarse como experto es ahora, y un desarrollador con conocimientos de desarrollo nativo y Flutter es un “unicornio” en el mercado actual.