Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/95497
Title: Can web applications with all the right vitamins be as reliable as native applications?
Other Titles: Podem as aplicações web com as vitaminas certas ser tão confiáveis como as aplicações nativas?
Authors: Donato, José Maria Campos
Orientador: Ivaki, Naghmeh Ramezani
Antunes, Nuno Manuel dos Santos
Keywords: Benchmarking; Android; Aplicações móveis; Aplicações nativas; Applicações web; Benchmarking; Android; Web applications; Mobile applications; Native applications
Issue Date: 12-Jul-2021
Serial title, monograph or event: Can web applications with all the right vitamins be as reliable as native applications?
Place of publication or event: DEI- FCTUC
Abstract: During the last decade, the gap between native, hybrid, and web applications has been reducing. Push notifications, offline fallback, and other features enabled native-like applications that work directly on the browser. Since they can be accessed from the browser, web applications are not limited to a certain platform, which benefits both end-users and developers. Different types of development tools to produce applications are constantly and rapidly emerging. When engineers need to develop a native or web application, they are overwhelmed by the huge diversity of alternatives and lack the means to choose the solution that best fits their needs.In this work, we propose a novel framework to assess different development tools according to certain properties such as performance, reliability, and dependability. As it is not feasible to compare the development tools directly, we propose comparing them through representative applications. The framework defines the components and procedures required to define concrete benchmarks.To demonstrate the applicability of the proposed framework, it was instantiated in a concrete benchmark focused on the performance of entertainment and utility applications developed with JavaScript tools and Kotlin as a native reference. For this, we defined a representative set of features that each application must implement based on an analysis of popular apps. The relevant metrics to characterize performance were identified. For each tool, an application was developed with the defined set of features. A benchmarking campaign was executed, with the help of a supporting tool that automates the functional tests and collects the metrics. The campaign results were analyzed to compare the applications and the development tools that produced them.The results show that the framework can be used to assess and compare the development tools. We observed that even though Ionic uses more Memory and CPU than the native applications, it was the fastest to complete the tests. The observed differences between Expo and React Native are not significant, meaning that Expo is able to ease development and extend the cross-platform development without compromising performance. Finally, the results confirmed that web applications are already a competitive alternative in most mobile application scenarios.
Ao longo da última década, as diferenças entre as aplicações nativas, híbridas e web têm vindo a diminuir. Notificações, usabilidade mesmo sem conexão à internet, e outras funcionalidades permitiram a existência de aplicações que funcionam diretamente através do browser como se de nativas se tratasse. Dado que são acedidas pelo browser, estas não ficam limitadas a uma certa plataforma, o que constitui uma vantagem tanto para os utilizadores como para programadores. Para além disso, as ferramentas para desenvolver aplicações web e nativas têm vindo a aumentar exponencialmente e são hoje muito diversas. Consequentemente, os desenvolvedores sentem-se sufocados com tal diversidade e não têm meios para avaliar qual a melhorar solução para as suas necessidades.Neste trabalho é proposta uma framework para avaliar e comparar diferentes ferramentas de desenvolvimento, de acordo com certas propriedades, tais como performance, e confiabilidade. Dado que não é viável comparar as ferramentas diretamente, propomos compará-las através de aplicações representativas. Esta framework define um conjunto de components e procedimentos necessários para definir benchmarks concretos.Para demonstrar a aplicabilidade da framework, ela foi instanciada num benchmark concreto focado na performance de aplicações de utilidade e entertenimento desenvolvidas com ferramentas JavaScript e Kotlin como referência nativa. Definimos um conjunto representativo de funcionalidades que cada aplicação deve implementar com base na análise de aplicações populares. Identificámos métricas relevantes para definir a performance. Para cada ferramenta, uma aplicação foi desenvolvida com o conjunto de funcionalidades. Uma campanha de benchmark foi executada com o suporte de uma ferramenta para automatizar testes funcionais e recolher as métricas. Os resultados desta campanha foram analisados para comparar as aplicações e as ferramentas que as produziram.Os resultados mostram que a framework pode de facto ser utilizada para avaliar e comparar diferentes ferramentas de desenvolvimento. Observámos que Ionic apesar de utilizar mais recursos que as aplicações nativas, foi a mais rápida a completar os testes. As diferenças observadas entre Expo e React Native não são significantes o que demonstra que o Expo pode facilitar o desenvolvimento e suportar ainda mais plataformas sem comprometer a performance. Finalmente, os resultados confirmam que as aplicações web são já uma alternativa competitiva na maior parte dos cenários.
Description: Dissertação de Mestrado em Segurança Informática apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/95497
Rights: embargoedAccess
Appears in Collections:UC - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat
MSI_Jose_Donato.pdf3.75 MBAdobe PDFView/Open
Show full item record

Page view(s)

127
checked on Apr 16, 2024

Download(s)

90
checked on Apr 16, 2024

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons