Especialización 6 meses

DESARROLLO DE APLICACIONES MÓVILES PARA ANDROID, IOS E HÍBRIDOS


Desarrolla e implementa aplicaciones móviles nativas para Android, iOS e híbridos

Inicio 3 de septiembre 2025

Organiza

Online en vivo

6 meses – 3 horas semanal

Lunes y Miércoles 8:00 a 9:30 pm

168 horas académicas

Esta especialización incluye

  • icono modulo 3 cursos
  • icono examen 3 proyectos (1 proyecto por curso)
  • icono proyecto Asesoría del profesor en clase
  • icono aula virtual Aula virtual con acceso a la grabación de las clases y archivos de estudio
  • icono proyecto Archivos complementarios de estudio
  • icono modulo Doble certificación, por la Universidad San Martin de Porres y Andes – Centro de Negocios Tecnológicos

GRATIS
MASTER CLASS ONLINE

Acerca de la especialización

Esta especialización diseñada para formar profesionales altamente capacitados en el desarrollo de aplicaciones móviles modernas utilizando tecnologías nativas (Android con Kotlin y Jetpack Compose, iOS con Swift y SwiftUI) y tecnología multiplataforma (Flutter).
Asimismo ofrece una formación práctica y profunda que cubre desde los fundamentos hasta la publicación de apps, siguiendo las mejores prácticas de arquitectura, diseño de interfaces, consumo de APIs y funcionalidades nativas.
Conocimientos básicos de programación orientada a objetos y estructuras de control. Se recomienda tener nociones de Git, APIs REST y arquitectura MVC, aunque no son obligatorias.
Organiza Universidad de San Martín de Porres y Andes – Centro de Negocios Tecnológicos.

Cursos de la especialización

Los cursos se podrán llevar de manera flexible, en cualquier orden. Los cursos son independientes con objetivos de aprendizaje que se complementan.

  • Curso 1: Desarrollo Móvil Nativo Android

(2 meses y medio, 70 horas académicas)
Lunes y Miércoles 8:00 pm a 9:30 pm

  • Curso 2: Desarrollo Móvil Nativo iOS

(2 meses y medio, 70 horas académicas)
Lunes y Miércoles 8:00 pm a 9:30 pm

  • Curso 3: Desarrollo Móvil Híbrido Flutter

(1 mes, 28 horas académicas)
Lunes y Miércoles 8:00 pm a 9:30 pm

Dirigido a

  • Desarrolladores de software que desean especializarse en tecnologías móviles
  • Profesionales del área de sistemas con conocimientos básicos en programación orientada a objetos
  • Empresas y startups que buscan formar equipos técnicos con habilidades en aplicaciones móviles
  • Estudiantes avanzados de ingeniería de software o afines que deseen insertarse en el mercado mobile

Plan de estudio

Curso 1: Desarrollo Móvil Nativo Android con Kotlin y Jetpack Compose

Aprenderás el desarrollo de aplicaciones nativas modernas para Android utilizando Kotlin y Jetpack Compose, el nuevo sistema declarativo de interfaces. Aprenderás a estructurar proyectos con arquitectura MVVM, integrar servicios del dispositivo como GPS, notificaciones y Firebase, y aplicar buenas prácticas para una experiencia de usuario fluida y profesional

Módulo 1: Fundamentos de Android y Jetpack Compose

  • Instalación de Android Studio y configuración del SDK
  • Estructura del proyecto (Gradle, carpetas, módulos)
  • Configuración de emuladores y dispositivos físicos
  • Creación de un proyecto inicial con Jetpack Compose
  • Declaración de UI con funciones @Composable
  • Jerarquía de componentes y recomposición automática
  • Aplicación de Material Design y uso de previews
  • Creación de componentes reutilizables
  • Uso de remember, mutableStateOf y State
  • Control de recomposición y ciclo de vida
  • Comunicación de estados entre componentes
  • Uso de efectos: LaunchedEffect, SideEffect, derivedStateOf
  • Configuración de Navigation Compose
  • Definición de rutas y paso de argumentos
  • Navegación anidada y control del back stack
  • Integración con ViewModel y eventos de navegación

Módulo 2: Arquitectura y lógica de negocio

  • Principios de arquitectura MVVM
  • Uso de ViewModel y exposición de estados con StateFlow
  • Comparación entre LiveData y Flow
  • Manejo del ciclo de vida del ViewModel
  • Introducción a la inyección de dependencias
  • Configuración de Hilt en un proyecto Android
  • Uso de módulos, qualifiers y scopes
  • Inyección en ViewModels y repositorios
  • Diseño de la capa de dominio
  • Definición y responsabilidades de los UseCases
  • Separación de lógica de negocio y UI
  • Uso de Flows en la capa de dominio
  • Implementación del patrón Repository
  • Separación de origen remoto/local
  • Inyección de dependencias en pruebas
  • Mocks y fakes para pruebas unitarias

Módulo 3: Persistencia local y APIs

  • Configuración de Room en Android
  • Definición de entidades, DAOs y relaciones
  • Integración con Flow para observar cambios
  • Buenas prácticas y manejo de migraciones
  • Comparación entre Room y SharedPreferences
  • Uso de SharedPreferences para datos simples
  • Alternativa moderna: DataStore Preferences
  • Seguridad y encriptación de preferencias
  • Configuración de Retrofit con Kotlin
  • Definición de servicios y modelos de datos
  • Manejo de errores con sealed class o Result
  • Interceptores, logging y headers personalizados
  • Observación de datos desde ViewModel
  • Estados de carga: loading, success, error
  • Renderizado condicional en Compose
  • Pruebas con Fake APIs o MockWebServer

Módulo 4: Funcionalidades del dispositivo

  • Manejo de permisos en tiempo de ejecución
  • Uso de FusedLocationProviderClient
  • Lectura de sensores (acelerómetro, proximidad)
  • Validación y fallback ante errores de ubicación
  • Diferencias entre servicios y WorkManager
  • Uso de CoroutineWorker con restricciones
  • Ejecución de tareas periódicas
  • Ejemplos prácticos: sincronización o subida de datos
  • Canales de notificación y prioridades
  • Implementación de Firebase Cloud Messaging (FCM)
  • Notificaciones locales con AlarmManager
  • Acciones desde notificación y navegación a pantalla
  • Autenticación con correo y Google
  • Lectura/escritura de documentos en Firestore
  • Subida y descarga de archivos en Storage
  • Reglas de seguridad y control de acceso

Módulo 5: Experiencia de usuario y publicación

  • Uso de animate*AsState y updateTransition
  • Animaciones de entrada/salida con AnimatedVisibility
  • Creación de animaciones personalizadas
  • Optimización de rendimiento y buenas prácticas
  • Soporte para pantallas múltiples y plegables
  • UI responsiva con BoxWithConstraints y Modifier
  • Accesibilidad: contrastes, etiquetas y talkback
  • Soporte para modo oscuro y localización
  • Introducción a pruebas unitarias con JUnit
  • Pruebas de UI con Compose Testing
  • Mocks, fakes y pruebas de flujo de datos
  • Cobertura de pruebas y buenas prácticas
  • Generación de archivo .aab y firma con Keystore
  • Configuración de Google Play Console
  • Checklist de políticas y requisitos
  • Mantenimiento, actualizaciones y versiones beta

Curso 2: Desarrollo Móvil Nativo iOS con Swift y SwiftUI

Aprenderás el desarrollo de aplicaciones nativas para iOS utilizando Swift y SwiftUI, con un enfoque moderno y modular. Explorarás el uso de MVVM, Combine para la gestión reactiva de datos, integración con servicios del sistema como cámara, GPS y notificaciones, así como persistencia con CoreData y UserDefaults. Se cubren también pruebas, accesibilidad y publicación en App Store

Módulo 1: Fundamentos de iOS y SwiftUI

  • Instalación de Xcode y herramientas de línea de comando
  • Estructura de carpetas y archivos en un proyecto iOS moderno
  • Gestión de targets, build settings y simuladores
  • Creación del primer proyecto con SwiftUI
  • Declaración de vistas en SwiftUI
  • Uso de @State, @Binding y control del estado
  • Navegación con NavigationStack y NavigationLink
  • Modularización de vistas y navegación jerárquica
  • App lifecycle en SwiftUI vs UIKit
  • Uso de @main, App y Scene
  • Integración con UIKit mediante UIViewControllerRepresentable
  • Manejo de estados globales y SceneDelegate
  • Uso de Modifiers para personalización de vistas
  • StackViews: HStack, VStack, ZStack
  • Aplicación de temas, tipografía y colores
  • Previews dinámicos y adaptabilidad visual

Módulo 2: MVVM y organización del código

  • Patrón MVVM aplicado a SwiftUI
  • Definición de ObservableObject y uso de @Published
  • Comunicación entre vistas mediante @Binding
  • Ejemplo completo de ViewModel reactivo
  • Organización de carpetas por feature
  • Separación de lógica de negocio y UI
  • Coordinadores y navegación limpia
  • Buenas prácticas para escalabilidad
  • Fundamentos del framework Combine
  • Uso de Publisher, Subscriber y operadores
  • Binding entre Combine y SwiftUI
  • Cancelables y manejo de memoria
  • Abstracción de acceso a datos con protocolos
  • Implementación de repositorios concretos (API, CoreData)
  • Uso de inyección de dependencias
  • Pruebas unitarias con repositorios mock

Módulo 3: Persistencia y APIs

  • Introducción y configuración de CoreData
  • Definición de entidades y relaciones
  • Uso de @FetchRequest y contexto
  • Persistencia reactiva y actualización en tiempo real
  • Uso de UserDefaults para datos simples
  • Encapsulamiento de preferencias con wrappers
  • Seguridad de datos y migración
  • Alternativas modernas: AppStorage y SceneStorage
  • Consumo de APIs REST con URLSession
  • Decodificación de JSON con Codable
  • Manejo de errores HTTP y timeouts
  • Pruebas con respuestas mock
  • Uso de Result y Error personalizado
  • Control de estados en la UI (loading, error, success)
  • Mensajes de error amigables al usuario
  • Reconexión y manejo de errores comunes

Módulo 4: Funcionalidades nativas y Firebase

  • Uso de UIImagePickerController y AVFoundation
  • Acceso a la ubicación con CoreLocation
  • Lectura de fotos desde galería y cámara
  • Manejo de permisos sensibles en Info.plist
  • Registro y permisos de notificaciones
  • Envío de notificaciones locales con UNNotificationCenter
  • Configuración de Firebase Cloud Messaging (FCM)
  • Navegación desde notificaciones push
  • Autenticación con email, Apple y Google
  • Lectura y escritura en Firestore
  • Subida y descarga de imágenes en Storage
  • Reglas de seguridad y control de acceso
  • Introducción a BGTaskScheduler
  • Ejecución de tareas diferidas y periódicas
  • Configuración en Info.plist y app lifecycle
  • Buenas prácticas para tareas en segundo plano

Módulo 5: UI avanzada y publicación

  • Animaciones implícitas con .animation()
  • Animaciones explícitas con withAnimation
  • Uso de matchedGeometryEffect y transiciones
  • Creación de animaciones complejas y personalizadas
  • Layouts responsivos con GeometryReader
  • Compatibilidad entre iPhone, iPad y Mac (Catalyst)
  • Uso de @Environment para adaptabilidad
  • Buenas prácticas para diseño universal
  • Introducción a XCTest para pruebas unitarias
  • Pruebas funcionales de vistas y ViewModel
  • UI Testing con XCUITest
  • Automatización y generación de coverage
  • Configuración de certificados y provisioning profiles
  • Uso de App Store Connect y TestFlight
  • Revisión de requisitos de publicación
  • Subida y despliegue con Xcode

Curso 3: Desarrollo Móvil Híbrido Flutter con Dart

Aprenderás a desarrollar interfaces responsivas, manejar estados con Provider, consumir APIs, trabajar con sensores del dispositivo y desplegar aplicaciones para Android e iOS con una sola base de código

Módulo 1: Fundamentos y widgets

  • Directivas avanzadas y renderizado condicional
  • Uso de métodos, computed properties y watchers
  • Estructura de carpetas y archivos (lib, pubspec.yaml, build)
  • Creación de un proyecto base y ejecución en dispositivos
  • Uso de StatelessWidget y StatefulWidget
  • Estructuras de UI con Scaffold, AppBar, Text, Column, Row
  • Navegación con Navigator y rutas nombradas
  • Paso de datos entre pantallas y navegación condicional
  • Introducción al patrón Provider
  • ChangeNotifier y notificación de listeners
  • Consumo de estado con Consumer y Selector
  • Alternativas de manejo de estado: Riverpod, Bloc, MobX
  • Diseño adaptativo con MediaQuery y LayoutBuilder
  • Uso de Expanded, Flexible y Spacer
  • Implementación de UI para múltiples tamaños de pantalla
  • Responsive Design con flutter_screenutil o Sizer

Módulo 2: Integración y despliegue (online en vivo)

  • Uso de http para realizar peticiones REST
  • Decodificación con jsonDecode y jsonEncode
  • Uso de factory constructors y clases fromJson/toJson
  • Manejo de errores, estados de red y loading
  • Configuración de Firebase en proyectos Flutter
  • Autenticación con correo y Google usando firebase_auth
  • Lectura y escritura en cloud_firestore
  • Subida de archivos e imágenes con firebase_storage
  • Acceso a GPS con geolocator y permisos
  • Uso de cámara y galería con image_picker
  • Lectura de sensores (acelerómetro, brújula) con sensors_plus
  • Manejo de permisos en Android/iOS con permission_handler
  • Generación de APK/AAB y configuración de íconos/splash
  • Configuración de build.gradle y Info.plist para permisos
  • Optimización de rendimiento y manejo de assets
  • Buenas prácticas de publicación multiplataforma

Profesor

Proyectos del profesor

Metodología

Aprenderás con un enfoque práctico. Debes revisar los archivos de estudio y participar en las clases donde podrás realizar tus consultas al profesor. En cada módulo de estudio, rendirás un examen online y desarrollarás una actividad de tu proyecto del curso. Al finalizar cada curso, podrás exponer tu proyecto para recibir las recomendaciones finales del profesor.

Certificación

Se entregarán dos certificados por la especialización:

  • Certificado por haber participado, otorgado por Andes – Centro de Negocios Tecnológicos.
  • Certificado por haber aprobado, otorgado por la Universidad San Martín de Porres.

Garantía y Satisfacción

Podrás acceder a una próxima edición de la especialización para reforzar y actualizar tus conocimientos, o en caso no hayas podido asistir con regularidad a las clases. Es decir, podrás llevar la especialización por segunda vez desde 0 sin costo adicional.