En la actualidad podemos encontrar gran variedad de tecnologías para el desarrollo de aplicaciones móviles. Cada tecnología está diseñada para una plataforma móvil determinada, lo cual dificulta sobremanera el desarrollo de aplicaciones móviles portables.
Una web app es una aplicación web específicamente diseñada para correr en dispositivos móviles, integrándose estrechamente con la plataforma y ofreciendo una experiencia al usuario cercana a una aplicación nativa. Las ventajas con respecto a otras soluciones son claras:
- portabilidad, la misma aplicación correrá en cualquier plataforma móvil
- reutilización de habilidades, cualquier programador con conocimientos de tecnologías web se convertirá en un potencial desarrollador de aplicaciones móviles
- migración de aplicaciones, resulta sumamente sencillo adaptar viejas aplicaciones web a los nuevos dispositivos móviles.
En este curso efectuamos un breve repaso sobre las tecnologías web esenciales, y desvelamos cómo utilizar dichos recursos para desarrollar aplicaciones móviles multiplataforma que se integren perfectamente con el dispositivo.
Por otro lado y en este contexto, las arquitecturas basadas en servicios son una realidad hoy. Los proveedores de servicios ya no diseñan aplicaciones monolíticas con interfaces de usuario gráficas, que esperan ser consumidas por usuarios finales. En su lugar, los servicios son ofrecidos por medio de interfaces automatizadas (APIs) y consumidos por otros servicios y aplicaciones a lo largo y ancho de Internet.
De este modo, una aplicación móvil típicamente accede a un conjunto de servicios publicados en Internet e integra la información obtenida ofreciendo una interfaz homogénea y atractiva al usuario final del dispositivo. Para ello, el servicio debe estar siempre disponible (24×7), típicamente alojado en infraestructuras Cloud.
En este curso reflexionamos sobre las nociones y tecnologías básicas que dan soporte al concepto de servicio, y desvelamos las herramientas necesarias para acceder a servicios desde dispositivos móviles.
La generalización del acceso a la red de redes exige nuevos niveles de calidad en los servicios suministrados. Los servicios ofrecidos por Internet deben ser altamente disponibles (sin fallos y con un funcionamiento 24×7) y suministrar el rendimiento esperado. Garantizar estos niveles de calidad requiere un enorme esfuerzo por parte de los proveedores y exige nuevas soluciones que se adapten dinámicamente a los niveles de carga experimentados.
Estos requerimientos cobran especial relevancia con la popularización de los dispositivos móviles, que adquieren importantes dependencias con las plataformas on-line y que no pueden admitir fallos en determinados servicios.
Cloud Computing se erige como la solución actual a estos problemas. Una infraestructura Cloud Computing presenta un conjunto de recursos potencialmente infinitos (CPU, memoria, ancho de banda, …) que son facturados bajo demanda, conforme son utilizados. Además, el paradigma garantiza: (1) alta fiabilidad (libre de fallos, o con tasas de fallos irrisorias) y (2) rápida capacidad de reacción, ajustándose a los niveles de carga, en ocasiones de manera automática.
En este curso profundizamos en los conceptos básicos que soportan el paradigma de Cloud Computing, presentamos los principales modelos y experimentamos con algunas infraestructuras populares en el mercado.
Al finalizar la asignatura, el alumno deberá haber aprendido las siguientes competencias/objetivos:
- Conceptos básicos de programación web-
- Desarrollo de Web Apps.
- Desarrollo de WebApps con Toolkits
- Desarrollo de Web Apps nativas
- Introducción a SOA
- Construcción de Setvicios RESTful
- Consumo de Servicios RESTful
- Cloud Computing
- Plataformas de Cloud Computing
- Diseño de Aplicaciones en el Cloud
- Caso de estudio
Programa formativo Introducción a WebApps
El temario del curso integrará los siguientes contenidos:
- Conceptos básicos de programación web
- HTML5 & APIs
- Diseño de webapps
- Webapps híbridas
Programa formativo WebApps avanzadas
El temario del curso integrará los siguientes contenidos:
- Angular & Ionic
- Servicios REST escalables con Node.js
- Almacenes NoSQL con MongoDB.