Cross-Platform Mobile Development Frameworks: Choosing the Most Suitable Option for Selected Use Case
Total Page:16
File Type:pdf, Size:1020Kb
Lappeenranta University of Technology School of Engineering Science Software Engineering Master's Programme in Software Engineering and Digital Transformation Anna Osipova CROSS-PLATFORM MOBILE DEVELOPMENT FRAMEWORKS: CHOOSING THE MOST SUITABLE OPTION FOR SELECTED USE CASE Examiners: Associate professor Jouni Ikonen Assistant professor Antti Knutas Supervisors: Assistant professor Antti Knutas Associate professor Jouni Ikonen TIIVISTELMÄ Lappeenrannan teknillinen yliopisto School of Engineering Science Tietotekniikan koulutusohjelma Master's Programme in Software Engineering and Digital Transformation Anna Osipova Alustariippumattomat mobiilikehitysohjelmistokehykset: parhaan vaihtoehdon valitseminen tiettyyn käyttötapaukseen Diplomityö 94 sivua, 18 kuvaa, 9 taulukkoa, 1 liite Työn tarkastajat: Tutkijaopettaja Jouni Ikonen Apulaisprofessori Antti Knutas Hakusanat: ohjelmistokehitys, mobiilisovellukset, mobiilikehitys, ohjelmistokehykset Keywords: software engineering, mobile applications, mobile development, software frameworks Mobiilisovellusten kehitys on haastavaa johtuen laitteiden ja alustojen pirstoutumisesta. Tämä diplomityö tutkii vaihtoehtoisia ohjelmistokehysvaihtoja tiimille, joka tuottaa B2B mobiilisovelluksia Cordova:n avulla. Tavoitteena on valita ohjelmistokehys, joka parantaisi kehitysprosessia ja tuottaisi toiminnallisempia sovelluksia nopeammin. Kehitysprosessit arvioidaan tuottamalla sama demosovellus usealla eri ohjelmistokehyksellä. Ohjelmistokehykset arvioidaan niiden keskeisten ominaisuuksien ja demosovelluksen kehityksen tulosten perusteella. Lupaavimmat vaihtoedot esitellään. ABSTRACT Lappeenranta University of Technology School of Engineering Science Software Engineering Master's Programme in Software Engineering and Digital Transformation Anna Osipova Cross-platform mobile development frameworks: choosing the most suitable option for selected use case Master’s Thesis 94 pages, 18 figures, 9 tables, 1 appendix Examiners: Associate professor Jouni Ikonen Assistant professor Antti Knutas Keywords: software engineering, mobile applications, mobile development, software frameworks Mobile application development is challenging due to device and platform fragmentation. This thesis looks into alternative framework options for a team that develops B2B mobile applications using Cordova framework. The goal is to select a framework that would improve development process and provide more functional end applications faster. Development process of several frameworks is evaluated by implementing a similar demo application with each one. Frameworks are evaluated based on their key characteristics and demo application implementation results and the most promising options are presented. ACKNOWLEDGEMENTS I would like to express my deepest gratitude to my supervisors Antti Knutas and Jouni Ikonen for their help and support with this work and for sticking with me despite my terrible scheduling skills. Thanks goes to my family and friends who believed in me when I didn’t and kept kicking me until I did it. TABLE OF CONTENTS 1 INTRODUCTION ............................................................................................................ 6 1.1 MOTIVATION FOR THIS RESEARCH .................................................................. 6 1.2 SOLUTION TO THE DESCRIBED PROBLEM ...................................................... 8 1.3 RESEARCH METHODS ........................................................................................... 9 1.4 SCOPE ...................................................................................................................... 12 1.5 STRUCTURE OF THE THESIS .............................................................................. 12 2 LITERATURE REVIEW .............................................................................................. 13 2.1 EVOLUTION OF MOBILE DEVICES ................................................................... 13 2.2 MOBILE APPLICATIONS ...................................................................................... 15 2.3 MOBILE APPLICATION DEVELOPMENT AND RELATED CONCERNS ...... 16 2.4 MOBILE APPLICATION PLATFORMS ............................................................... 17 2.4.1 iOS platform .................................................................................................................................... 19 2.4.2 Android platform ............................................................................................................................. 21 2.5 CROSS-PLATFORM DEVELOPMENT APPROACHES...................................... 24 2.5.1 Hybrid approach .............................................................................................................................. 26 2.5.2 Interpreted approach ........................................................................................................................ 27 2.5.3 Cross compiled approach ................................................................................................................ 28 2.6 CPMDF POPULARITY AMONG DEVELOPERS ................................................ 29 2.7 COMPARISON AND SELECTION CRITERIA OF CPMDFS ............................. 34 2.8 RELATED RESEARCH .......................................................................................... 35 3 FRAMEWORK EVALUATION................................................................................... 39 3.1 DEMO APPLICATION ........................................................................................... 39 3.2 RUBYMOTION ....................................................................................................... 40 3.2.1 Advantages ...................................................................................................................................... 40 3.2.2 Disadvantages.................................................................................................................................. 41 1 3.2.3 Demo application ............................................................................................................................ 42 3.2.4 Reflections ....................................................................................................................................... 43 3.3 NATIVESCRIPT ...................................................................................................... 44 3.3.1 Advantages ...................................................................................................................................... 44 3.3.2 Disadvantages.................................................................................................................................. 45 3.3.3 Demo application ............................................................................................................................ 46 3.3.4 Reflections ....................................................................................................................................... 47 3.4 XAMARIN ............................................................................................................... 48 3.4.1 Advantages ...................................................................................................................................... 48 3.4.2 Disadvantages.................................................................................................................................. 49 3.4.3 Demo application ............................................................................................................................ 49 3.4.4 Reflections ....................................................................................................................................... 50 3.5 REACT NATIVE ..................................................................................................... 51 3.5.1 Advantages ...................................................................................................................................... 52 3.5.2 Disadvantages.................................................................................................................................. 53 3.5.3 Demo application ............................................................................................................................ 54 3.5.4 Reflections ....................................................................................................................................... 55 3.6 IONIC ....................................................................................................................... 55 3.6.1 Advantages ...................................................................................................................................... 56 3.6.2 Disadvantages.................................................................................................................................. 56 3.6.3 Demo application ............................................................................................................................ 57 3.6.4 Reflections ....................................................................................................................................... 58 3.7 CORDOVA ............................................................................................................... 58 3.7.1 Advantages .....................................................................................................................................