Comparação do desempenho de diferentes abordagens para o desenvolvimento de aplicações móveis - Anacleto, Ricardo Santos (2018)
Esta dissertação teve como objectivo principal a comparação de diversas tecnologias existentes para o desenvolvimento de aplicações móveis e componentes associados. Para o efeito foram definidos diversos testes com métricas e objectivos concretos. O resultado destes testes deu origem a um conjunto de recomendações que servem de base tanto ao projecto associado (VitaSenior) como a futuros projectos de software. Tendo sempre como principal foco a satisfação das necessidades do respectivo projecto, foram delineados alguns testes a realizar para então após os testes se conseguir fazer uma escolha assertiva da tecnologia a desenvolver a presença mobile do mesmo. Os testes seleccionados e respectivas finalidades foram então os seguintes:  Medição do tempo em milissegundos da execução de pedidos para as rotas de login e registo da interface de programação de aplicações (do inglês Aplication Programing Interface – API) com a finalidade de medir os tempos médios necessários à realização de uma operação de rotina da aplicação.  Medição do tempo em milissegundos da execução de uma tarefa de uso intensivo do processador, quer numa única thread como em múltiplos threads, com a finalidade de verificar diferenças de desempenho caso seja necessária efectuar tal operação.  Medição do tempo em milissegundos do carregamento de imagens com endereçamento local e remoto, de modo a determinar a detentora da melhor performance.  Medição do tempo de execução em milissegundos de uma série de pedidos encadeados de forma a verificar a performance média de execução de pedidos à API.  Medição do consumo de memória e verificação do mecanismo de gestão de memória.  Medição do consumo de bateria máximo estimado. Sendo também efectuada uma análise da simplicidade e facilidade de manutenção de código bem como uma comparação da usabilidade entre nativo e uma outra tecnologia/framework abordada. vi Relativamente aos pedidos de rede, foi também avaliada a capacidade de resposta da API a utilizar no projecto do VITASENIOR, onde foram efectuados todos os pedidos de rede realizados, sendo realizados testes de carga com a aplicação JMeter, determinando então o número de pedidos médio a que a interface de programação de aplicações (do inglês Aplication Programing Interface – API) e diversas rotas utilizadas é capaz de dar resposta sem interferir na performance da aplicação. Para a realização das diversas aplicações de teste foram seleccionadas após um estudo inicial das tecnologias/frameworks existentes, Android nativo, aplicação web progressiva (do inglês Progressive Web App - PWA) com interface gráfica desenvolvida com a framework VueJS e desenvolvimento recorrendo a uma tecnologia de desenvolvimento hibrido neste caso IONIC, com código elaborado com recurso a AngularJS. Após a elaboração de todos os testes e análises verificou-se que Android nativo apresenta uma melhor performance em termos gerais, sendo que a PWA apresenta um melhor equilíbrio entre performance, simplicidade de código, facilidade de manutenção e permite obter presença em todas as plataformas com apenas uma base de código desenvolvida. Verificou-se ainda que a usabilidade nativa de Android pode ser replicada na PWA, sendo também o consumo de bateria máximo expectável equivalente. Constatou-se contudo que o browser onde a PWA corre terá também impacto na sua performance, sendo no entanto esta a escolha para um cenário onde o pretendido é um equilíbrio entre todos os factores mencionados e testados.