Cross-Platform Mobile Development Frameworks: Choosing the Most Suitable Option for Selected Use Case

Total Page:16

File Type:pdf, Size:1020Kb

Cross-Platform Mobile Development Frameworks: Choosing the Most Suitable Option for Selected Use Case 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 .....................................................................................................................................
Recommended publications
  • Create an Uber Clone in 7 Days
    Create an Uber Clone in 7 Days Shai Almog 2018-07-22 Contents Preface. 1 Audience. 1 Prerequisites . 2 What you don’t need to Know . 2 Get this Book for FREE! . 2 How to Read this Book? . 3 Software Prerequisites . 4 Getting Help. 4 Using the Code. 4 Important Notice About Cloning and Copyrights . 5 Thanks and Acknowledgments . 5 1. Hello World . 7 1.1. What’s Codename One?. 7 1.1.1. Build Cloud . 8 1.2. Getting Started. 8 1.2.1. New Project. 8 Running . 11 The Source Code . 12 1.2.2. Run on Device . 18 Signing . 18 Build and Install . 25 1.3. How Does it Work? . 26 1.3.1. Mobile is Different . 26 Density (DPI/PPI) . 27 1.3.2. Performance. 29 App Size . 29 Power Drain . 30 1.3.3. Sandbox and Permissions . 30 1.4. Summary . 31 2. Core Concepts . 33 2.1. The Todo App. 33 2.2. Layouts and Hierarchy . 35 2.2.1. Layout Managers. 44 Terse Syntax . 47 2.2.2. Styles . 47 Designer Tool . 50 2.2.3. Event Handling . 68 Observers and Event Types . 69 Event Dispatch Thread. 71 2.2.4. IO and Storage . 72 2.3. Summary . 74 3. Spring Boot Overview . 75 3.1. What’s Spring Boot? . 75 3.2. Why Spring Boot . 76 3.3. What will we Use? . 76 3.4. Summary . 77 4. Day 1: The Mockup. 79 4.1. Deconstructing Uber . 79 4.1.1. Portrait Only UI . 81 4.1.2. iOS and Android Look Almost Identical .
    [Show full text]
  • Thaddeus Wakefield Batt Engineering Leader
    Thaddeus Wakefield Batt Engineering Leader Internet Technologist with deep experience in creating transformative digital solutions for companies from Personal Info startup to enterprise. DevOps and cloud services expert. Continuous integration, automation, and agile professional at web scale. Practical blockchain development, operations, and implementation. Creative and Address calm problem solver and leader. 7899 E. 25th PL Denver, Colorado 80238 Experience Phone 303.358.1005 11.2017 - Founder/CTO present Blockchain Industries Llc E-mail Denver, CO [email protected] WeChat / Keybase Development and Operations consultancy to blockchain industry projects. kantmakm • Architecture design and implementation of cloud infrastructure and deploy process for LinkedIn full-node Ethereum-like and Bitcoin-like blockchain assets for dedicated block explorers in linkedin.com/in/thaddeusbatt/ support of mobile and desktop multi-currency wallet applications. • EC2, ECS, EBS, RDS, Docker, Github, Ansible, Azure DevOps, Jenkins integration pipelines GitHub • Globally distributed agile development teams github.com/kantmakm/ • Range of established relationships with blockchain infrastructure providers including AWS, ENS Radar, IBM/RedHat and cross-vertical blockchain product development organizations like thaddeusbatt.eth BurstIQ, Ownum, TQ Tezos, Dapix, and Opolis 04.2019 - Blockchain Solutions Architect Skills present Colorado Governor's Office of Information Technology Atlassian Suite (Jira, Bitbucket, Denver, CO Confluence, Bamboo, Trello.)
    [Show full text]
  • Codename One and Phonegap, a Performance Comparison
    Codename One and PhoneGap, a performance comparison Andreas Arnesson Faculty of Computing Blekinge Institute of Technology SE-371 79 Karlskrona Sweden 1 Contact Information: Author: Andreas Arnesson [email protected] University advisor: Nina Dzamashvili Fogelström Department of Software Engineering Faculty of Computing Internet : www.bth.se Blekinge Institute of Technology Phone : +46 455 38 50 00 SE-371 79 Karlskrona Sweden Fax : +46 455 38 50 57 2 ABSTRACT Creating smartphone applications for more than one operating system requires knowledge of several code languages, more code maintenance, higher development costs and longer development time. To make this easier cross-platform tools (CPTs) exist. But using a CPT can decrease performance of the application. Applications with low performance are more likely to get uninstalled and this makes developers lose income. There are four main CPT approaches hybrid, interpreter, web and cross-compiler. Each has different disadvantages .and advantages. This study will examine the performance difference between two CPTs, Codename One and PhoneGap. The performance measurements, CPU load, memory usage, energy consumption, time execution and application size will be made to compare the CPTs. If cross-compilers have better performance than other CPT approaches will also be investigated. An experiment where three applications are created with native Android, Codename One and PhoneGap will be made and performance measurements will be made. A literature study with research from IEEE and Engineering village will be conducted on different CPT approaches. PhoneGap performed best with shortest execution time, least energy consumption and least CPU usage while Codename One had smallest application size and least memory usage.
    [Show full text]
  • Codename One
    Codename One #codename one Table of Contents About 1 Chapter 1: Getting started with Codename One 2 Remarks 2 Examples 2 Installation & Setup 2 Installation 2 Installing Codename One In NetBeans 2 Installing Codename One In Eclipse 5 Installing Codename One In IntelliJ IDEA 6 What is Codename One & How Does it Work? 6 How Does Codename One Work? 7 Why Build Servers? 8 Why ParparVM 9 Windows Phone/UWP 9 JavaScript Port 10 Desktop, Android, RIM & J2ME 10 Lightweight Components 10 Lightweight Architecture Origin 10 In Codename One 10 Versions In Codename One 11 Credits 12 About You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: codename-one It is an unofficial and free Codename One ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official Codename One. The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners. Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected] https://riptutorial.com/ 1 Chapter 1: Getting started with Codename One Remarks This section provides an overview of what codenameone is, and why a developer might want to use it.
    [Show full text]
  • VW Golf & Jetta Service and Repair Manual
    VW Golf & Jetta Service and Repair Manual I M Coomber and Christopher Rogers Models covered (1081 - 344 - 1AA11) VW Golf & Jetta Mk 2 models with petrol engines, including fuel injection, catalytic converter, Formel E, 16-valve and special/limited edition models 1043 cc, 1272 cc, 1595 cc & 1781 cc Covers mechanical features of Van. Does not cover Convertible, Rallye, Caddy, diesel engine, 4 -wheel drive, Mk 1 models or new Golf range introduced in February 1992 Printed by J H Haynes & Co. Ltd, Sparkford, Nr Yeovil, Somerset ABCDE FGHIJ BA22 7JJ, England KLMNO PQRST © Haynes Publishing 1997 1 2 3 Haynes Publishing Sparkford Nr Yeovil A book in the Haynes Service and Repair Manual Series Somerset BA22 7JJ England All rights reserved. No part of this book may be reproduced or Haynes North America, Inc transmitted in any form or by any means, electronic or 861 Lawrence Drive mechanical, including photocopying, recording or by any Newbury Park information storage or retrieval system, without permission in California 91320 USA writing from the copyright holder. Editions Haynes S.A. ISBN 1 85960 282 7 147/149, rue Saint Honoré, 75001 PARIS, France British Library Cataloguing in Publication Data Haynes Publishing Nordiska AB A catalogue record for this book is available from the British Library Fyrisborgsgatan 5, 754 50 Uppsala, Sverige Contents LIVING WITH YOUR VOLKSWAGEN GOLF OR JETTA Introduction Page 0•4 Safety First! Page 0•5 Roadside Repairs Introduction Page 0•6 If your car won’t start Page 0•6 Jump starting Page 0•7 Wheel changing Page
    [Show full text]
  • Ios Push Notification Badge Auto Increment
    Ios Push Notification Badge Auto Increment Stereographical Hebert usually climaxes some Agatha or demarks propitiously. Jasper barbers compliantly? Ammoniacal Dietrich eternizes that hardwood acquired elementarily and box incapably. IP addresses are not stored in any Localytics analytics databases, but the location data generated from an IP lookup is, by default, collected and stored. Do to want but continue? Ensure that following instance is added to your Info. When you send across push notification with custom actions buttons, you may redirect users to incorporate custom feat or view but your app by specifying deep links as custom actions button URLs. If being check mostly and shipping is not included, how determined I get for that? Messaging as follows: request a system font colors based in auto view controller class values recorded only notification badge auto increment ios badge? This key contains the deeplinking URL if deficient during the campaign creation. Who within those one who comments? This is probably part hit the Android Support library. So this fails with an exception. The Invaluable Price Archive for an expansive database of prices realized spanning decades of auction sales from all over our world. Development provisioning profile exists on relay system. This value form be explicitly checked. Android developer, note if not all Android flavors support badges. This will initiate the build on the Codename One build server. Because they was rich user data, profiles are wild for creating audiences to few with personalized messaging. Before switching to new app key, this method suspends the SDK and resumes it inside after. To trip off these changes, we started with the tools that our moderators and power users rely on wood make an Overflow the mint site for developers online.
    [Show full text]
  • Collection Titles
    Direct e-Learning Solutions for Today’s Careers CBT Direct’s IT Pro Collection Available: 7476 Collection Titles Coming Soon: 557 .NET 2.0 for Delphi Programmers Architecture Tivoli OMEGAMON XE for DB2 Performance .NET 3.5 CD Audio Player: Create a CD Audio 3D Computer Graphics: A Mathematical Expert on z/OS Player in .NET 3.5 Using WPF and DirectSound Introduction with OpenGL A Field Guide to Digital Color .NET Development for Java Programmers "3D for the Web: Interactive 3D animation using A First Look at Solution Installation for .NET Development Security Solutions 3ds max; Flash and Director " Autonomic Computing .NET Domain-Driven Design with C#: Problem - 3D Game Programming All in One A Guide to Global E-Commerce: Issues to Design - Solution 3D Graphics ReferencePoint Suite Consider When Selling Internationally Over the .NET E-Commerce Programming 3D Modeling in AutoCAD: Creating and Using Internet .NET Enterprise Development in C#: From 3D Models in AutoCAD 2000; 2000i; 2002; A Guide to MATLAB Object-Oriented Design to Deployment Second Edition Programming .NET Enterprise Development in VB.NET: From 3D Programming for Windows: Three- A Guide to Software Configuration Design to Deployment Dimensional Graphics Programming for the Management .NET for Visual FoxPro Developers Windows Presentation Foundation A Guide to Software Package Evaluation and .NET Framework ReferencePoint Suite 3ds max 5 Bible Selection .NET Framework Solutions: In Search of the 3ds max 5 For Dummies A Guide to the Project Management Body of Lost Win32 API
    [Show full text]
  • MVC -.::Ly Freitas
    MVC Origem: Wikipédia, a enciclopédia livre. Model-view-controller (MVC), em português modelo-vista-controlador, é um padrão de arquitetura de software (não confundir com um design pattern) que separa a representação da informação da interação do usuário com ele. É normalmente usado para o desenvolvimento de interfaces de usuário que divide uma aplicação em três partes interconectadas. Isto é feito para separar representações de informação internas dos modos como a informação é apresentada para e aceita Um diagrama simples exemplificando a relação entre Model, View e pelo usuário.[1][2] O padrão de projeto MVC separa estes componentes maiores Controller. As linhas sólidas indicam possibilitando a reutilização de código e desenvolvimento paralelo de maneira associação direta e as tracejadas eficiente. indicam associação indireta. O modelo (model) consiste nos dados da aplicação, regras de negócios, lógica e funções. Uma visão (view) pode ser qualquer saída de representação dos dados, como uma tabela ou um diagrama. É possível ter várias visões do mesmo dado, como um gráfico de barras para gerenciamento e uma visão tabular para contadores. O controlador (controller) faz a mediação da entrada, convertendo-a em comandos para o modelo ou visão. As ideias centrais por trás do MVC são a reusabilidade de código e separação de conceitos. Tradicionalmente usado para interfaces gráficas de usuário (GUIs), esta arquitetura tornou-se popular para projetar aplicações web e até mesmo para aplicações móveis, para desktop e para outros clientes.[3] Linguagens de programação populares como Java, C#, Ruby, PHP e outras possuem frameworks MVC populares que são atualmente usados no desenvolvimentos de aplicações web.
    [Show full text]
  • Codename Quoi En Savez Vous Que Maintenant Démarrage 1 Sur Le Bouton Installersur Lebouton Zone La Dans Affiché Trouvé Plug-In Et Le Fois Une Cherche
    e n o h P s w o d n i W t e y r r e B k c a l B , d i o r R d e préféré. Vous écrirez une Vous préféré. à apprendrez vous chaine application mobile à succès, nous allons démarrer. Dans ce premier chapitre, Maintenant que vous savez en quoi Codename One peut vous aider à créer la pro- Démarrage 1 sur lebouton cherche. Une fois le etplug-in trouvé affiché dans la zone puis dans la zone Lancez NetBeans. Allez dans le menu utiliser leplug-in. Attention > Sous NetBeans decet qui ouvrage. aété choisilesquelles c’est pour les exemples l’environnement prioritéquice en concerne etjour pour à mises les c’est autres les sur raisons des l’une Beans, Eclipse ou IntelliJ IDEA. Pour information, le plug-in de NetBeans a souvent la différents environnements de développement, mais reste simple que vous utilisiez Net- Le téléchargement du plug-in se fait directement en ligne. L’installation diffère selon les 1.1. Téléchargementetinstallationduplug-in inclus dansleplug-induframework. ticulier des applications Codename One et le mode de fonctionnement du simulateur application Codename One n k A o o , B S - O D i s r n u o o i Vous devez avoir la version 7.x ou version supérieure de NetBeans pour pouvoir installer et p t i a d v É INSTALLER a J 5 1 n 0 e 2 installer le plug-in le installer RECHERCHER r © e p p – o pourlancerl'installation. ensuite lesinstructions. Suivez l u e f première application première de test v o .
    [Show full text]
  • The New Mobile Development Landscape
    The New Mobile Development Landscape © 2017 Progress. All Rights Reserved. All Rights © 2017 Progress. 2018 EBOOK Table of Contents Introduction / 3 Mobile Development The Early Days / 4 Mobile Development Today / 5 Native Development / 6 Browser Development Evolves / 8 Mobile Application Development Platforms (MADP) / 11 Hybrid Mobile Apps / 14 JavaScript-Driven Native Apps / 18 Other Types of Native Apps / 22 Making The Transition / 23 Testing Your Apps / 24 Building Your Mobile App Back-End / 25 © 2018 Progress. All Rights Reserved. All Rights © 2018 Progress. Conclusion / 26 Progress 2 If you poke around on the Internet, you’ll find hundreds or even thousands of frameworks and platforms designed to make platform mobile development easy. There’s almost too many of them to keep track of, and nobody knows which ones are the best, and which ones are worthless. If you’re part of a one to five-person development shop, you can afford to play around at the options to see which works best for you and your apps, potentially even switching approaches between apps. Larger development shops have to think big; the decisions they make around development approach and platform or framework selection have a long term impact on the cost and effectiveness of their development effort. Changing course months or years later means considerable expense migrating off of a flawed or abandoned platform to the shiny new approach. Development organizations must be smart, making the right choice at the app’s creation, knowing that the approach they’ve selected works for the long haul. We’ve created this ebook to help you make smart choices about how you build modern mobile apps.
    [Show full text]
  • Scratching the Surface: Getting Started with PHP Fusebox Table of Contents
    By Mike Britton All materials Copyright © 1997−2002 Developer Shed, Inc. except where otherwise noted. Scratching the Surface: Getting Started with PHP Fusebox Table of Contents Introduction.........................................................................................................................................................1 Step 1: Setting Up the Core Files.......................................................................................................................2 The Core Files:.........................................................................................................................................2 What do the "core files" do?..............................................................................................................................3 A Word on FuseDocs..........................................................................................................................................5 Fusebox Naming Conventions...........................................................................................................................6 Picking Up Where We Left Off: Setting Up the Core Files............................................................................7 Using XFAs..........................................................................................................................................................9 What's an XFA?.......................................................................................................................................9
    [Show full text]
  • Customer Case Study
    Customer Case Study CODENAMEONE “Codename One is developed in NetBeans IDE and has a huge portion of its users within the NetBeans community. The speed with which we have been able to develop the Codename one plugin in the IDE is a testament to the efficiency of the tools it provides.” Company: Codename One Location: Tel Aviv, Israel Executive Summary Url: http://www.Codenameone.com Codename One is an open source platform that allows Java developers to build native mobile applications that run on all mobile devices, such as iOS, iPhone/iPad, Android, RIM, and Windows Phone. Codename One is the only Industry: Cloud Based solution that allows the "write once, run anywhere" experience for Java developers, Mobile Development without the limitations of HTML5 or web based technologies. Oracle Products & Services: Codename One integrates seamlessly with the NetBeans IDE to provide a familiar NetBeans IDE development environment for Java developers. Java Organization Java EE Codename One is a rapidly growing startup, while also boasting an open source Swing developer community that is responsible for code contributions and support. LWUIT Codename One has made its way into Fortune 500 companies, as well as multiple startups and independent developer hands. The Codename One product includes a service that supports Java developers when developing native applications using native platform tools. The Business Issue • Codename One needed a single tool that could help maintain its large code base for its GUI builder, the Codename One Designer. • Codename One had a strong requirement to develop code using an IDE, while also being able to customize their build scripts extensively for release distribution.
    [Show full text]