Temario del curso
Introducción
Semana 1: Conceptos avanzados de Swift, Kotlin y JavaScript
- Swift (iOS)
- Funciones avanzadas: Clausuras (closures), captura de valores, funciones de orden superior
- Programación orientada a protocolos y genéricos
- Gestión de memoria con ARC (Conteo de Referencia Automático)
- Kotlin (Android)
- Funciones de extensión y biblioteca estándar de Kotlin
- Corutinas para programación asíncrona
- Clases selladas, enums y manejo avanzado de errores
- JavaScript (React Native)
- Características avanzadas de ES6+: Desestructuración, async/await, promesas
- Conceptos de programación funcional en JavaScript
- Trabajo con bibliotecas de terceros en React Native
Semana 2: Arquitectura y patrones de diseño para aplicaciones móviles
- MVVM (Modelo-Vista-ViewModel) para iOS y Android
- Comprensión de la arquitectura MVVM para iOS (Swift) y Android (Kotlin)
- Implementación de ViewModels y observación de datos con LiveData (Android) y Combine (iOS)
- Programación reactiva con RxSwift y RxKotlin
- Arquitectura basada en componentes en React Native
- Comprensión de los ciclos de vida de los componentes y los hooks
- Mejores prácticas para gestionar el estado y las props a gran escala
- Uso de la API de Contexto de React para la gestión global del estado
Semana 3: Conceptos avanzados de red
- Red en iOS (Swift)
- Trabajo con URLSession para solicitudes de red personalizadas
- Llamadas a APIs REST avanzadas y manejo de errores
- Uso de Codable y análisis de JSON
- Mejores prácticas para comunicación segura de APIs (inmutabilidad de SSL, OAuth)
- Red en Android (Kotlin)
- Retrofit para realizar llamadas a APIs y manejar respuestas
- Manejo avanzado de errores de API y mecanismos de reintento
- Uso de Gson o Moshi para análisis de JSON
- Comunicación segura mediante HTTPS y autenticación OAuth
Semana 4: Red en React Native
- Integración de APIs con Axios y Fetch
- Integración avanzada de APIs con Axios y Fetch
- Estrategias de manejo de errores y reintentos en solicitudes de red
- Trabajo con autenticación (JWT, OAuth)
- WebSockets y comunicación en tiempo real
- Introducción a WebSockets en React Native
- Construcción de funciones de chat o notificaciones en tiempo real con conexiones WebSocket
- Gestión de conexiones persistentes y actualizaciones de datos
Semana 5: Técnicas avanzadas de persistencia de datos
- Core Data y SQLite (iOS)
- Relaciones, consultas y extracciones avanzadas en Core Data
- Uso directo de SQLite para aplicaciones iOS y gestión de conexiones a la base de datos
- Manejo eficiente de datos y optimización
- Persistencia Room y SQLite (Android)
- Relaciones avanzadas y consultas en bases de datos Room
- Gestión de conjuntos de datos grandes y optimización del rendimiento de la base de datos
- Uso de ProGuard para proteger las estructuras de la base de datos
- Firebase para almacenamiento en la nube (iOS y Android)
- Integración con Firebase para la gestión de bases de datos en tiempo real
- Mejores prácticas para sincronizar datos locales y en la nube
Semana 6: Gestión avanzada del estado en React Native
- Redux para la gestión del estado
- Conceptos avanzados de Redux: Middlewares, Thunks y Sagas
- Optimización de Redux para rendimiento y escalabilidad
- Recoil para la gestión del estado
- Introducción a Recoil: Una alternativa más flexible a Redux
- Gestión del estado a gran escala a través de componentes
- Actualizaciones eficientes del estado y gestión atómica del estado
Semana 7: Animaciones avanzadas en iOS y Android
- iOS (Swift)
- Core Animation: Animación de vistas, capas y transiciones
- UIKit Dynamics: Creación de animaciones basadas en física
- Transiciones y animaciones personalizadas entre controladores de vista
- Android (Kotlin)
- MotionLayout para crear animaciones complejas
- TransitionManager y transiciones de elementos compartidos
- Animaciones de propiedades para escala, rotación y cambios de opacidad en vistas
Semana 8: Animaciones y UI/UX en React Native
- Animaciones en React Native
- Uso de la API Animated y Reanimated para animaciones complejas
- Implementación de gestos e interacciones usando React Native Gesture Handler
- Mejores prácticas para animaciones con alto rendimiento en React Native
- Creación de componentes UI personalizados
- Construcción de componentes reutilizables y personalizables en React Native
- Implementación de diseños responsivos mediante media queries y flexbox
Semana 9: Integración de módulos nativos y funciones del dispositivo
- Acceso a funciones nativas del dispositivo
- Uso avanzado de la cámara, geolocalización, Bluetooth y sensores
- Creación de módulos nativos en Swift y Kotlin para su integración con React Native
- Integración de ARKit para realidad aumentada en iOS
- Integración de CameraX y ARCore para realidad aumentada en Android
- Bridge de React Native y módulos nativos
- Construcción de módulos nativos personalizados para integrar funcionalidad específica de la plataforma
- Creación de puentes Java y Swift para aplicaciones React Native
- Mejores prácticas para gestionar código nativo en un entorno multiplataforma
Semana 10: Pruebas y depuración de aplicaciones avanzadas
- Pruebas en iOS (Swift)
- Escritura de pruebas unitarias con XCTest y pruebas de interfaz de usuario para iOS
- Uso de Xcode Instruments para perfileo de rendimiento y detección de fugas de memoria
- Integración continua y flujos de trabajo de pruebas con Jenkins y CircleCI
- Pruebas en Android (Kotlin)
- Pruebas avanzadas de JUnit y Espresso para aplicaciones Android
- Perfileo del rendimiento e identificación de cuellos de botella utilizando Android Profiler
- Uso de Firebase Test Lab para pruebas automatizadas en múltiples dispositivos
- Pruebas en React Native
- Pruebas unitarias con Jest y pruebas de componentes con Enzyme
- Pruebas de extremo a extremo utilizando Detox y configuraciones de prueba automatizadas
- Perfileo del rendimiento usando React Native Debugger y Flipper
Semana 11: Despliegue de aplicaciones e integración continua
- Despliegue en App Store (iOS)
- Preparación de su aplicación para la entrega: certificados de App Store, perfiles de aprovisionamiento y pruebas beta con TestFlight
- Uso de Fastlane para automatizar el despliegue de aplicaciones iOS
- Gestión de App Store Connect y configuración de procesos de revisión de aplicaciones
- Despliegue en Google Play (Android)
- Preparación del APK y firma para su envío a Google Play
- Automatización del despliegue de aplicaciones Android con Fastlane y Gradle
- Uso de Google Play Console para revisión de aplicaciones y pruebas beta
- Configuración de pipelines CI/CD
- Configuración de Jenkins, GitHub Actions o CircleCI para pipelines automatizados de compilación y despliegue
- Uso de Fastlane para flujos de trabajo CI/CD tanto en iOS como en Android
- Mejores prácticas para manejar versiones, números de compilación y canales de lanzamiento
Semana 12: Proyecto Final
- Desarrollo del Proyecto Final
- Diseñar y desarrollar una aplicación completamente funcional que incorpore las funciones avanzadas aprendidas a lo largo del curso.
- Implementar UI/UX personalizada, animaciones avanzadas, gestión del estado, integración de módulos nativos y comunicación con APIs en tiempo real.
- Optimizar la aplicación para el rendimiento e implementarla en App Store y Google Play.
Resumen y Próximos Pasos
Requerimientos
- Sólida comprensión de los conceptos de programación, especialmente en Swift, Kotlin y JavaScript
- Experiencia previa construyendo aplicaciones básicas de iOS, Android o React Native
- Conocimiento de patrones de diseño como MVC o MVVM y experiencia con gestión básica del estado
Audiencia Objetivo
- Desarrolladores móviles
- Programadores
Reseñas (4)
Todo está bien.
Adrian Rybka - SEOyon
Curso - Flutter Development Bootcamp with Dart
Traducción Automática
Información adicional muy útil
Grzegorz - Comp S.A.
Curso - BLoC Pattern
Traducción Automática
Desarrollando la aplicación de autenticación de usuario y la actividad Kahoot (me aseguré de absorber las lecciones de capacitación :) ¡y es divertido!)
Jhoanne - Pag-IBIG Fund
Curso - .NET MAUI Fundamentals
Traducción Automática
La temática en general, la dinámica del grupo,