Programa 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
let
y 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
Platform
mó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)
Los ejercicios, la aplicación práctica de los temas
Leonardo Pérez Tays - INSTITUTO MEXICANO DEL PETRÓLEO
Curso - Advanced .NET MAUI
Edward es un facilitador increíble
Zibusiso Ncube - Agricatural Research Council
Curso - Ionic 4 and Angular for Developers
Traducción Automática
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Curso - Flutter Development Bootcamp with Dart
The trainer was enthusiastic, kind, and loved the topic
Isaac Murphy - Royal New Zealand Airforce
Curso - Build Native iOS and Android Apps with Flutter
Learning the steps required to implement the MVVM model.