Michael Gonsalves MS Thesis
Total Page:16
File Type:pdf, Size:1020Kb
EVALUATING THE MOBILE DEVELOPMENT FRAMEWORKS APACHE CORDOVA AND FLUTTER AND THEIR IMPACT ON THE DEVELOPMENT PROCESS AND APPLICATION CHARACTERISTICS A Thesis Presented to the Faculty of California State University, Chico In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science by © Michael Gonsalves 2018 Fall 2018 EVALUATING THE MOBILE DEVELOPMENT FRAMEWORKS APACHE CORDOVA AND FLUTTER AND THEIR IMPACT ON THE DEVELOPMENT PROCESS AND APPLICATION CHARACTERISTICS A Thesis by Michael Gonsalves Fall 2018 APPROVED BY THE INTERIM DEAN OF GRADUATE STUDIES: Sharon Barrios, Ph.D. APPROVED BY THE GRADUATE ADVISORY COMMITTEE: Tyson Henry, Ph.D. Bryan Dixon, Ph.D., Chair Graduate Coordinator Kevin Buffardi, Ph.D. PUBLICATION RIGHTS No portion of this thesis may be reprinted or reproduced in any manner unacceptable to the usual copyright restrictions without the written permission of the author. iii TABLE OF CONTENTS PAGE Publication Rights ...................................................................................................... iii List of Tables ............................................................................................................. vi List of Figures ............................................................................................................ vii Abstract ...................................................................................................................... viii CHAPTER I. Introduction ................................................................................................ 1 Background ........................................................................................... 1 Statement of the Problem ...................................................................... 2 Purpose of the Study ............................................................................. 4 Organization of the Study ..................................................................... 4 II. Review of Related Works .......................................................................... 6 Background ........................................................................................... 6 Cross-Platform Development Approaches ........................................... 7 Evaluating Cross-Platform Development Frameworks ........................ 10 III. Methodology .............................................................................................. 13 Overview ............................................................................................... 13 Task Station .......................................................................................... 14 Development Hardware Devices .......................................................... 22 Development Framework Environments .............................................. 23 Source Code Evaluation ........................................................................ 24 Application Characteristics and Performance Profiling ....................... 25 Development Process Qualitative Differences ..................................... 31 Summary ............................................................................................... 31 iv CHAPTER PAGE IV. Results and Discussion ............................................................................. 33 Overview ............................................................................................... 33 Source Code Evaluation ........................................................................ 34 Application Characteristics and Performance Profiling ....................... 39 Development Process Qualitative Differences ..................................... 47 Summary ............................................................................................... 70 V. Summary and Recommendations.............................................................. 72 Summary ............................................................................................... 72 Limitations and Recommendations for Future Research ...................... 73 References .................................................................................................................. 78 v LIST OF TABLES TABLE PAGE 1. Source Code Lines of Code, Number of Files and Dependencies ................... 35 2. Source Code Comparison of Native vs. Cross-Platform ................................. 35 3. Android Application Package Size and Installed Size ..................................... 41 4. iOS Application Package Size and Installed Size ............................................ 41 5. Android Application Menu RAM Usage ......................................................... 42 6. Android Application View Tasks RAM Usage ............................................... 42 7. iOS Application Menu RAM Usage ................................................................ 43 8. iOS Application View Tasks RAM Usage ...................................................... 43 9. Android Application Startup Times ................................................................. 45 10. Android Application View Transition Times .................................................. 45 11. iOS Application Startup Times ........................................................................ 46 12. iOS Application View Transition Times ......................................................... 46 13. Languages and Testing Tools .......................................................................... 60 vi LIST OF FIGURES FIGURE PAGE 1. Transition Diagram of Task Station ................................................................. 15 2. Menu Page of The iOS Flutter Application ..................................................... 16 3. View Tasks Page of the iOS Flutter Application ............................................. 17 4. Task Details Page of The iOS Flutter Application .......................................... 19 5. Add/Edit Task Page of the iOS Flutter Application ........................................ 21 6. Android Native Screenshots ............................................................................ 49 7. iOS Native Screenshots.................................................................................... 50 8. Android Flutter Screenshots ............................................................................ 51 9. iOS Flutter Screenshots.................................................................................... 52 10. Android Cordova/Ionic Screenshots ................................................................ 54 11. iOS Cordova/Ionic Screenshots ....................................................................... 55 12. Flutter widget tree example ............................................................................. 57 13. Ionic Framework HTML example ................................................................... 58 vii ABSTRACT EVALUATING THE MOBILE DEVELOPMENT FRAMEWORKS APACHE CORDOVA AND FLUTTER AND THEIR IMPACT ON THE DEVELOPMENT PROCESS AND APPLICATION CHARACTERISTICS by © Michael Gonsalves 2018 Master of Science in Computer Science California State University, Chico Fall 2018 Mobile application development is an area of software engineering with its own unique development approaches and challenges. The market for mobile applications is highly fragmented, not only across different mobile operating system platforms but also across devices and operating system versions within the same platform. The goal of any application developer is to reach the largest possible audience while minimizing development time, cost, and effort. The current market consists of two major platforms, Android and iOS. Without the use of cross-platform tools it would be necessary to produce the same application twice to reach both marketplaces. viii A number of cross-platform development frameworks are available to developers and each one has its own benefits and drawbacks. This paper details a comparison between two cross-platform development frameworks, Google’s Flutter and Apache Cordova with the Ionic framework. In order to compare the two frameworks against each other and against the experience of developing native applications for each platform, an application prototype was developed using four different frameworks. A task management application was developed as a native Android application, a native iOS application, a Flutter cross-platform application, and an Apache Cordova cross-platform application using the Ionic user interface framework. A series of source code and application performance profiling evaluations were performed in order to determine the impact of choosing a cross-platform development framework on both the development experience and the performance and perceived quality of the deployed applications. Several areas of qualitative differences between the development experiences of Flutter and Cordova are also detailed. ix CHAPTER I INTRODUCTION Background Mobile application development is a relatively newer field in software engineering with a potential target audience of billions of users. Statista estimates that around 1.5 billion Android or iOS smartphones were sold globally in 2016 [1]. Such a large possible market makes the development of mobile applications a desirable focus for software developers. A total of 197 billion applications are estimated to have been downloaded in 2017 alone [2]. Unfortunately, the worldwide market for mobile applications is extremely