Resumo: | 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.
|