Tecnologías del lado del cliente. HTML5
Formatos para el intercambio de información
- Herramientas desarrollo
- HTML 5, CSS 3, Javascript ES2016, JSON
- Frameworks: jQuery, React JS, Vue.js, Bootstrap
Desarrollo de webapps con HTML5
- Websockets
- API geolocalización
- API orientación
- Navegación offline
- Otras APIs
Introducción al desarrollo de aplicaciones web híbridas con Ionic
- Introducción a Angular
- Desarrollo de aplicaciones con Ionic 4
- PWA con Ionic
Tecnologías del lado del servidor. Cloud
Formatos para el intercambio de información
- Procesamiento JSON
- Procesamiento XML
Servicios REST
- APIs RESTful
- Framework: componentes y arquitectura
- Validación
- Persistencia
- Arquitectura servidor
- Cache
- i18n
- Testing
- Despliegue
- Hypermedia y HATEOAS
- Tendencias
Cloud Native Applications
- Arquitectura de aplicaciones cloud nativas
Paas e IaaS
- Introducción a los conceptos de plataforma e infraestructura como servicio
- Desarrollo, despliegue y testing the applicaciones en CloudFoundry
- Análisis de servicios y arquitectura de aplicaciones en Amazon Web Services y Google Compute Platform
Containers
- Introducción a los contenedores
- Docker y su ecosistema
- Orquestación de contenedores
Desarrollo de aplicaciones iOS
Introducción al desarrollo de aplicaciones en iOS
- Arquitectura iOS. Modelo Vista Controlador (MVC)
- Descripción del entorno de desarrollo. xCode
- El lenguaje de programación Swift
Aspectos generales de programación en iOS
- Elementos básicos del UIKit: UIButton, UIImage, UITextField, UILabel, UISlider, UISwitch, UISegmentedControl
- Controladores. Ciclo de vida de un controlador
- Vistas. Jerarquía de vistas. Geometría de la vista
- Controladores de controladores. UINavigationController, UITabBarController
- Otros elementos del UIKit: UIPickerView, UIAlertController
- Reconocimiento de gestos
- Persistencia. XML y JSON
- Configuración. NSUserDefault
- Ficheros
- SwiftUI
Desarrollo de aplicaciones iOS
- Combine
- Servicios web. NSURLConnection, AFNetworking y Alamofire
- Multimedia, animaciones, bloques
- Autolayout
- iPad y aplicaciones universales
- Colecciones de vistas y tablas: UICollectionView y UITableView
- CoreData
- Localización, manejo de mapas
- Sensores
- Notificaciones locales, notificaciones push
- Compras desde la aplicación (In-App).StoreKit
- iCloud
Desarrollo de aplicaciones Android
Introducción al desarrollo de aplicaciones Android
- Entorno de desarrollo
- Estructura de una aplicación Android
- Componentes y ciclo de vida de una aplicación Android
- La interfaz de usuario: layouts, controles básicos, recursos
- Listas y adapters
- Diálogos y menús
- Intents
Internet, almacenamiento, comunicaciones y servicios en Android
- Broadcast receivers
- Servicios
- Hilos
- Notificaciones y alarmas
- Persistencia
- Loaders
- Web services
- Fragmentes
- Location & Maps
- Custom Views
- Estilos y Temas
Localización, librería de compatibilidad, elementos gráficos personalizados y publicación de aplicaciones
- Gradle
- Librería de soporte
- Empaquetado y despliegue
Desarrollo de aplicaciones cross platform
Introducción a Xamarin Studio y Visual Studio
- Aspectos fundamentales del IDE (Xamarin Studio y Visual Studio)
- Lenguaje C#
- Introducción y conceptos básicos de XAML
- Data Binding, Patrón MVVM y ReactiveUI
Xamarin Forms
- Diferentes layout que existen y como utilizarlos
- Ciclo de vida de Xamarin Forms
- Animaciones y recursos gráficos
- Integración de librerías de terceros
- Creación y manejo de BD local
- Consumir servicios Rest
- Acceso al hardware del dispositivo
React Native
- Introducción a React y React Native
- Conceptos básicos: JSX, hojas de estilos...
- Ciclo de vida de apps en React Native
- Componentes básicos
- Componentes personalizados
- Navegación
- Animaciones
- Módulos nativos
Tendencias en el desarrollo de apps
Fundamentos de arquitecturas
- ¿Qué es una arquitectura mantenible y testable?
- Principios básicos de diseño de componentes de una arquitectura: SOLID, Herencia vs. Composición, Diseño por contrato
- Modelización y manipulación de datos: Objects vs Data clases; Mutabilidad vs Inmutabilidad; Modelos ricos vs anémicos
- Patrones de diseño orientados a las arquitecturas: patrones, antipatrones, service locator, dependency injection
- Arquitecturas clean
Arquitecturas para iOS
- Inyección de dependencias
- Model View Controller (MVC)
- Model View ViewModel (MVVM)
- VIPER
- Route Coordinators
Arquitecturas para Android
- Inyección de dependencias
- Model View Presenter (MVP)
- MVVM + DataBinding
- Modelos de arquitectura, Arquitectura en 3 capas (Clean Architecture)
Metodologías ágiles de desarrollo
- SCRUM para la planificación de proyectos
- eXtreme Programming (XP)
Seguridad
- Introducción: factores a proteger y estrategias
- Seguridad aplicaciones móviles
- Riesgos en API y Cloud
- Seguridad en la infraestructura y en la cloud