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.
Original language | English |
---|---|
Title of host publication | EASE '23: Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering |
Pages | 152-161 |
DOIs | |
Publication status | Published - 14 Jun 2023 |
Externally published | Yes |
Event | 27th International Conference on Evaluation and Assessment in Software Engineering, EASE 2023 - Oulu, Finland Duration: 13 Jun 2023 → 16 Jun 2023 Conference number: 27 |
Conference
Conference | 27th International Conference on Evaluation and Assessment in Software Engineering, EASE 2023 |
---|---|
Abbreviated title | EASE 2023 |
Country/Territory | Finland |
City | Oulu |
Period | 13/06/23 → 16/06/23 |
Keywords
- n/a OA procedure