Mestrado | Informática

Aplicações Web Móveis

Área Científica

Ciências Informáticas

Duração

Semestral

ECTS

5

Horas de Contacto Teórico Práticas

35h

OBJETIVOS DA APRENDIZAGEM

O1 – Conhecer os conceitos, características e tecnologias que suportam as aplicações web móveis;
O2 – Compreender o potencial das aplicações web móveis como alternativa multiplataforma às aplicações nativas;
O3 – Identificar as vantagens e desvantagens do desenvolvimento de aplicações web móveis por oposição ao desenvolvimento de aplicações nativas;
O4 – Conhecer principais frameworks de desenvolvimento javascript;
O5 – Desenvolver aplicações móveis com base nos conceitos apreendidos e através da tecnologia Angular.

PROGRAMA

1 – Introdução às tecnologias web móveis

2 – Desenvolvimento multiplataforna

3 – Introdução às Progressive Web Applications

3.1 O que são PWA e características
3.2 PWA vs native apps
3.3 Manifest
3.4 Cache
3.5 Application Shell
3.6 Service Workers
3.7 App Shell
3.8 Acesso a conteúdo dinâmico com AJAX
3.9 Modo offline e gestão da cache
3.10 Adicionar ao ecrã principal
3.11 Notificações push

4 – Principais frameworks javascript: Angular, React, Vue

5 – Desenvolvimento de aplicação web móvel progressiva

5.1 Ambiente de desenvolvimento
5.2 Javascript e TypeScript
5.3 Hello World
5.4 Desenvolvimento de um componente
5.5 Binding
5.6 Eventos
5.7 Diretivas
5.8 Templates

DEMONSTRAÇÃO DE COERÊNCIA ENTRE CONTEÚDOS PROGRAMÁTICOS E RESULTADOS DA APRENDIZAGEM

Cinco bilhões de pessoas têm hoje acesso a dispositivos móveis ultrapassando os computadores pessoais com um mercado de 56%. A forma de utilização destes dispositivos é baseada na instalação e utilização de aplicações nativas desenvolvidas e disseminadas em lojas de aplicações para cada um dos sistemas operativos. Aplicações nativas obrigam ao desenvolvimento compatível com um único sistema e alguns dispositivos limitando a utilização por todos os dispositivos e aumentando o custo da necessidade de desenvolvimento para cada plataforma. As aplicações web móveis oferecem a possibilidade de desenvolver aplicações compatíveis com qualquer dispositivo, sistema operativo ou dimensão sendo hoje considerado uma ameaça ao ecossistema tradicional das aplicações nativas.
Por constituir a forte base de motivação deste paradigma, é essencial que o aluno compreenda as diferenças, vantagens e desvantagens do desenvolvimento nativo face ao desenvolvimento de aplicações multiplataforma. No âmbito do desenvolvimento de aplicações multiplataforma, o aluno deverá ainda compreender a importância da web como plataforma de desenvolvimento destas aplicações pela maturidade e disseminação desta tecnologia.
As aplicações web progressivas estão hoje em intenso desenvolvimento pelos principais browsers firefox, chrome ou edge sendo a Google hoje o principal motor de avanços desta tecnologia havendo, no entanto ainda desafios de compatibilidade ou funcionalidade. O aluno deve conhecer o paradigma das aplicações web móveis progressivas e conceitos base que as suportam e distinguem das aplicações web convencionais, nomeadamente a possibilidade de instalação no dispositivo, a interatividade e funcionamento offline. Deve ainda conhecer o estado-da-arte atual da tecnologia no que diz respeito às limitações, desenvolvimentos e desafios atuais.
Existem hoje diversas tecnologias disponíveis ao desenvolvimento de aplicações móveis sendo importante para um programador conhecer e saber escolher as ferramentas mais adequadas. No âmbito da unidade curricular, o aluno deverá conhecer as principais tecnologias de desenvolvimento de aplicações web móveis. Deverá ainda ser capaz de desenvolver uma aplicação web progressiva e saber como converter uma aplicação web tradicional numa aplicação web progressiva.

METODOLOGIA DE ENSINO E AVALIAÇÃO

As sessões de natureza teórico-prática serão organizadas de forma a fomentar a participação contínua dos alunos incentivando ao espírito critico e à aplicação prática dos conceitos apreendidos.
É essencial a aprendizagem e sólida integração dos conceitos teóricos base que sustentam esta tecnologia de forma a permitir uma aplicação dos mesmos num contexto de desenvolvimento prático. A componente teórica será por isso introduzida através da apresentação e discussão dos conceitos com os alunos. Tratando-se de uma unidade curricular centrada no desenvolvimento de software, é crítica a existência de uma forte componente prática e da avaliação contínua da capacidade técnica e prática de programação dos estudantes. A componente prática será desenvolvida através de exercícios de configuração e desenvolvimento com recurso a computador e software adequados.
A avaliação será constituída por um processo de avaliação contínua com os seguintes componentes
– Participação ativa nas sessões (frequência, relevância e qualidade dessa participação);
– Testes de avaliação teórica;
– Projetos de avaliação prática;

DEMONSTRAÇÃO DE COERÊNCIA ENTRE METODOLOGIAS DE ENSINO E RESULTADOS DE APRENDIZAGEM

Tratando-se de uma unidade curricular cujo foco é fortemente prático, é crítico dotar os estudantes de uma sólida base de conceitos teóricos que sustentam o domínio e tecnologias de desenvolvimento de aplicações web móveis. Esta base teórica permitirá um rápido desenvolvimento e progressão dos alunos no desenvolvimento prático das aplicações e permitirá um fácil desenvolvimento pessoal de competências neste domínio ao longo das suas carreiras profissionais. A avaliação da aprendizagem destes conceitos será assim confirmada através de testes de avaliação adequados aos conteúdos expostos durante as sessões da unidade curricular.
A componente prática, sob a forma de exercícios práticos desenvolvidos durante as sessões e como trabalho de estudo em casa, permitirão aos alunos o necessário contacto e familiaridade com a tecnologia. Esta componente, avaliada sob a forma de projetos, permitirá avaliar o aluno relativamente à sua capacidade prática de desenvolvimento e configuração de aplicações web móveis.
Ao longo das sessões lecionadas no âmbito da unidade curricular será feita em permanência uma avaliação contínua dos alunos em que se pretende avaliar a sua assiduidade, aprendizagem, curiosidade e espírito crítico essencial numa unidade curricular de nível de mestrado.

BIBLIOGRAFIA

Archibald, J. (2016). Instant loading: Building offline-first progressive web apps.
Ater, T. (2017). Building Progressive Web Apps: Bringing the Power of Native to the Browser. O’Reilly.
Corral, L., Janes, A., and Remencius, T. (2012). Potential advantages and disadvantages of multiplatform devel- opment Frameworks–A vision on mobile environments. In Procedia Computer Science, volume 10, pages 1202– 1207. SciVerse ScienceDirect.
Edwards, A. R. (2016). The building blocks of progressive web apps – smashing magazine.
Gaouar, L., Benamar, A., and Bendimerad, F. T. (2016). Desirable requirements of cross platform mobile devel- opment tools. Electronic Devices, 5:14–22.
Gaunt, M. (2016). Service Workers: an introduction.
Gudla, S. K., Sahoo, J. K., Singh, A., Bose, J., and Ahamed, N. (2016). Framework to improve the web application launch time. In Proc. 2016 IEEE Int. Conf. on Mobile Services (MS), pages 73–78. IEEE Press.
Hume, D. A. (2017). Progressive Web Apps. Manning.
Joreteg, H. (2016). Installing web apps on phones (for real).
Latif, M., Lakhrissi, Y., Nfaoui, E. H., and Es-Sbai, N. (2016). Cross platform approach for mobile appli- cation development: A survey. In 2016 Int. Conf. on Information Technology for Organizations Develop- ment (IT4OD), pages 1–5. IEEE.
Majchrzak, T. A., Biørn-Hansen, A., and Grønli, T.-M. (2017). Comprehensive analysis of innovative cross- platform app development frameworks. In Proc. 49th HICSS. IEEE Computer Society.
Malavolta, I. (2016). Beyond native apps: Web technologies to the rescue! (keynote). Pro. 1st Int. Workshop on Mobile Development. ACM.
Osmani, A. (2015). Getting started with progressive web apps.
Osmani, A. and Gaunt, M. (2017). Instant loading web apps with an application shell architecture.
Smeets, R. and Aerts, K. (2016). Trends in web based cross platform technologies. International Journal of Computer Science and Mobile Computing, 5(6):190– 199.