Analyzing the Resource Usage Overhead of Mobile App Development Frameworks

Publication date

2023-06-14

Authors

Oliveira, Wellington
Moraes, Bernardo
Castor, FernandoORCID 0000-0002-6389-3630ISNI 0000000071758661
Fernandes, Joao Paulo

Editors

Advisors

Supervisors

Document Type

Part of book
Open Access logo

License

taverne

Abstract

Mobile app development frameworks lower the effort to write and deploy apps across different execution platforms. At the same time, their use may limit native optimizations and impose overhead, increasing resource usage. In this paper, we analyze the resource usage of Android benchmarks and apps based on three mobile app development frameworks, Flutter, React Native, and Ionic, comparing them to functionally equivalent, native variants written in Java. These frameworks, besides being in widespread use, represent three different approaches for developing multiplatform apps: Flutter supports the deployment of apps that are compiled and run fully natively, React Native runs interpreted JavaScript code combined with native views for different platforms, and Ionic is based on web apps, which means that it does not depend on platform-specific details. We measure the energy consumption, execution time, and memory usage of ten optimized, CPU-intensive benchmarks, to gauge overhead in a controlled manner, and two applications, to measure their impact when running commonly mobile app functionalities. Our results show that cross-platform and hybrid frameworks can be competitive in CPU-intensive applications. In five of the ten benchmarks, at least one framework-based version exhibits lower energy consumption and execution time than its native counterpart, up to a reduction of 81% in energy and 83% in execution time. Furthermore, in three other benchmarks, framework-based and native versions achieved similar results. Overall, Flutter, usually imposes the least overhead in execution time and energy, while React Native imposes the highest in all the benchmarks. However, in an app that continuously animates multiple images on the screen, without interaction, the React Native version uses the least CPU and energy, up to a reduction of 96% in energy compared to the second-best framework-based version. These findings highlight the importance of analyzing expected application behavior before committing to a specific framework.

Keywords

Taverne, Human-Computer Interaction, Computer Networks and Communications, Computer Vision and Pattern Recognition, Software, SDG 7 - Affordable and Clean Energy

Citation

Oliveira, W, Moraes, B, Castor, F & Fernandes, J P 2023, Analyzing the Resource Usage Overhead of Mobile App Development Frameworks. in Proceedings of EASE 2023 - Evaluation and Assessment in Software Engineering. ACM International Conference Proceeding Series, Association for Computing Machinery, pp. 152-161, 27th International Conference on Evaluation and Assessment in Software Engineering, EASE 2023, Oulu, Finland, 14/06/23. https://doi.org/10.1145/3593434.3593487, conference