Temario del curso
Introducción
Semana 1: Introducción a Mobile Development
- Ecosistema y tendencias de aplicaciones móviles
- Introducción al panorama de las aplicaciones móviles (iOS y Android)
 - Diferencias entre aplicaciones nativas, híbridas y multiplataforma
 - Descripción general del flujo de trabajo y las herramientas de desarrollo de aplicaciones móviles
 
 - Desarrollo nativo vs multiplataforma
- Diferencias clave entre el desarrollo de aplicaciones para una sola plataforma (nativa) y varias plataformas (multiplataforma)
 - Ventajas y desventajas de cada enfoque
 - Descripción general de las plataformas nativas comunes (iOS, Android) y las herramientas multiplataforma (React Native, Flutter)
 
 - Introducción a JavaScript Programming
- Sintaxis básica y estructura de JavaScript
 - Variables, constantes y tipos de datos (número, cadena, booleano, objeto)
 - Operadores y expresiones
 - Caudal de control: 
if,else,switch - Introducción a las funciones y el ámbito (ámbito global frente a local)
 
 - Configuración de Xcode para el desarrollo iOS
- Introducción al IDE de Xcode: interfaz, herramientas y flujo de trabajo
 - Instalación de Xcode y ejecución del simulador iOS
 - Introducción al lenguaje de programación Swift
 - Escribir una aplicación básica Swift y ejecutarla en el simulador iOS
 
 - Configuración de Android Studio para Android desarrollo
- Instalación de Android Studio y configuración del entorno
 - Configuración y uso del emulador Android
 - Introducción al lenguaje de programación Kotlin y sintaxis básica
 - Escribir una app básica Kotlin y ejecutarla en el emulador Android
 
 - Configuración de React Entorno de desarrollo nativo
- Instalación de Node.js y React CLI nativa
 - Introducción a Expo y creación de un proyecto con Expo
 - Ejecutar una aplicación "Hello World" simple en emuladores iOS y Android
 
 
Semana 2: iOS y Android Fundamentos
- Introducción a Swift y Xcode IDE
- Variables y tipos de datos en Swift (Int, Float, String, Bool, etc.)
 - Constantes con 
lety variables convar - Instrucciones de flujo de control (
if,switch, bucles) - Funciones y parámetros en Swift
 - Manejo de errores en Swift
 
 - Diseño de interfaz de usuario en iOS
- Introducción a los guiones gráficos y al Generador de interfaces de Xcode
 - Diseño de diseños de aplicaciones mediante el diseño automático y las restricciones
 - Adición de componentes de la interfaz de usuario: botones, etiquetas, campos de texto, imágenes
 - Manejo de interacciones y eventos del usuario (por ejemplo, clics en botones)
 - Creación de un formulario de inicio de sesión simple y validación de la entrada del usuario
 
 - Introducción a Kotlin y Android Studio IDE
- Sintaxis básica Kotlin (variables, tipos de datos y funciones)
 - Descripción de las clases de datos y seguridad nulas de Kotlin
 - Introducción a Android la arquitectura y los componentes de la aplicación (Activities, Fragmentos)
 - Controlar el ciclo de vida de la actividad en Android apps
 
 - Diseño de interfaz de usuario en Android
- Diseño de Android interfaces de usuario mediante XML archivos de diseño
 - Trabajar con gestores de diseño (LinearLayout, RelativeLayout, ConstraintLayout)
 - Adición de componentes interactivos (botones, vistas de texto, edición de textos)
 - Uso de Java/Kotlin para controlar las entradas del usuario y las transiciones de actividad
 - Creación de un formulario de inicio de sesión con validación de entrada
 
 - Conceptos básicos de depuración en Xcode y Android Studio
- Uso de puntos de interrupción, registros y la consola del depurador
 - Herramientas y técnicas de depuración comunes para iOS (Xcode Instruments, Simulator)
 - Herramientas de depuración comunes para Android (Logcat, Android Debug Bridge)
 
 - Probar y ejecutar aplicaciones en dispositivos reales
- Conexión de dispositivos físicos a Xcode y Android Studio
 - Implementación de aplicaciones en dispositivos físicos (iPhones y Android teléfonos)
 - Simulación de diferentes condiciones de red, niveles de batería y métricas de rendimiento
 
 
Semana 3: Desarrollo multiplataforma con React Native
- Introducción a React Native y JavaScript para dispositivos móviles
- ¿Qué es React Native y por qué usarlo?
 - Descripción general de cómo React Native traduce JavaScript en código nativo
 - Sintaxis de JSX: Escribir estructuras similares a HTML en JavaScript
 - React componentes: Componentes funcionales frente a componentes basados en clases
 - Estado y props: Gestión del flujo de datos dentro de React componentes nativos
 
 - Estilo en React nativo
- Introducción a Flexbox y su importancia en el diseño de maquetaciones
 - Creación de diseños responsivos para iOS y Android
 - Aplicación de estilos específicos de la plataforma mediante el 
Platformmódulo de React Native 
 - React Navegación para aplicaciones multiplataforma
- Introducción a React Navegación y contenedores de navegación
 - Creación de navegación de pila para transiciones de pantalla
 - Implementación de la navegación por pestañas y cajones para aplicaciones más complejas
 - Pasar datos entre pantallas y administrar los estados de navegación
 
 - Accessing Características nativas del dispositivo
- Uso de funciones del dispositivo, como la cámara y la ubicación en React Nativo
 - Integración de API como Geolocalización, Cámara y AsyncStorage
 - Manejo de permisos para acceder al hardware del dispositivo (diferencias iOS y Android)
 - Almacenamiento de datos localmente con AsyncStorage e integración de bibliotecas de terceros para la persistencia
 
 - Preparación de aplicaciones para la implementación
- Configuración de los ajustes de la aplicación para producción en Xcode y Android Studio
 - Compilar APK para Android y probarlos en dispositivos reales
 - Preparación de iOS aplicaciones para el envío a la App Store (iconos de aplicaciones, certificados de firma)
 - Finalización de React proyectos nativos para la implementación de producción en ambas plataformas
 
 - Presentación del Proyecto Fin de Carrera
- Mostrando la última aplicación nativa multiplataforma React a la clase
 - Recopilación de comentarios y discusión de posibles mejoras
 - Sesión final de preguntas y respuestas y palabras de clausura
 
 
Resumen y próximos pasos
Requerimientos
- Comprensión básica de los conceptos de programación
 
Audiencia
- Desarrolladores móviles
 - Programadores
 
Testimonios (5)
Informaciones adicionales muy útiles
Grzegorz - Comp S.A.
Curso - BLoC Pattern
Traducción Automática
Edward es un facilitador increíble
Zibusiso Ncube - Agricatural Research Council
Curso - Ionic 4 and Angular for Developers
Traducción Automática
Tal vez más ejercicios podrían ser mejores para aprender, pero el tiempo era demasiado pequeño
Gianpiero Arico' - Urmet Spa
Curso - Embedded Linux Systems Architecture
Traducción Automática
El conocimiento de Miguel sobre el tema era extenso. Hizo que la formación fuera fácil de entender y el ritmo fue equilibrado, añadiendo nuevas características a cada sección cuando era necesario. Cubrió todo lo que se le pidió y respondió cada una de las preguntas de manera exhaustiva. Fue una experiencia muy agradable.
Paul Coaton - SEMPCheck Services
Curso - Flutter Development Bootcamp with Dart
Traducción Automática
El entrenador fue entusiasta, amable y apasionado por el tema
Isaac Murphy - Royal New Zealand Airforce
Curso - Build Native iOS and Android Apps with Flutter
Traducción Automática