Swift vs React Native : A performance comparison for automatization of gamification using QR-codes

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Abstract: In the world of mobile applications, there is no lack of frameworks and languages to use for development. One of the most used frameworks is React Native, which builds on React for web browsers. The React Native framework allows the developer to write the application in JavaScript, and run the application on iOS or Android devices. As the market for mobile applications expands, the time it takes to develop an application is under pressure, and a framework allowing for one codebase for two applications can save time and money. Deedster is a company that provides a mobile application where the user can learn about climate change and perform small tasks, deeds, that give a positive impact on the environment. A common request from the users is the automatization of completion of deeds. This thesis creates two implementations of a QR-code scanning application for completion of deeds, one with Swift and one with React Native, and compares the experiences during development and the results of the implementation. The evaluation uses both a quantitative and a qualitative analysis. The produced application fulfilled most of the requirements, including the scanning of a QR-code to open the application, an authentication process and the completion of a deed with confirmation for the user. The execution times for the two implementations did not differ largely, but the measurements of the application launch time proved flawed in design due to the difference in measurement technique between the two implementations. When it came to the development process, the React Native framework provided major difficulties with configuration and dependencies, resulting in difficulties when locating the source of errors. The launching process for the Swift application required some manual configurations that proved difficult such as creating certificates, while the React Native implementation used Expo to convert the project to a launchable file format which created all required files for the developer. While the usage of Expo was smooth once it worked, build errors and lacking bridges appeared which proved hard to solve. In conclusion, while the process for React Native was smooth once all dependencies were figured out, the time it took to get all configurations in place consumed a large chunk of the project’s time budget while the Swift implementation provided steady progress with few unexpected errors.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)