Native Applications on Modern Devices Master's Thesis

Total Page:16

File Type:pdf, Size:1020Kb

Native Applications on Modern Devices Master's Thesis Native applications on modern devices Master's thesis Simen Hasselknippe 4/22/2014 This page is intentionally left blank DEVELOPING NATIVE APPLICATIONS ON MODERN DEVICES: A CROSS-PLATFORM APPROACH A Xamarin product research Keywords Xamarin, MvvmCross, MonoGame, Mono, Native, App, App-development, C#, devices, cross- platform, iOS, Android, Windows Phone, Windows 8 Simen Hasselknippe [email protected] This page is intentionally left blank Abstract This paper is a part of my master thesis at the University of Oslo. It introduces concepts, theories, and patterns related to cross-platform development on mobile devices. It discusses what applications programmers can develop, what devices are important to target, and how to develop mobile applications with a cross-platform approach. During this thesis, I have used various tools and products, including Xamarin.iOS, Xamarin.Android Xamarin Studio, Visual Studio, MvvmCross, MonoGame, iOS, Android and Windows Phone. This page is intentionally left blank Table of Contents Preface............................................................................................................................................. 7 List of figures .................................................................................................................................. 9 List of tables .................................................................................................................................. 11 Introduction ................................................................................................................................... 13 1 Background material .......................................................................................................... 17 1.1 The history of cross-platform development ................................................................... 17 1.2 Modern devices .............................................................................................................. 19 1.3 Devices are a big deal..................................................................................................... 20 1.4 Modern applications ....................................................................................................... 21 1.5 Application packages ..................................................................................................... 25 1.6 Application lifecycle ...................................................................................................... 26 1.7 Game lifecycle................................................................................................................ 28 1.8 Interaction-based taxonomy of mobile applications ...................................................... 30 1.9 Application Types .......................................................................................................... 30 1.10 Research question ........................................................................................................... 33 2 General discussion ............................................................................................................. 35 2.1 Feature based taxonomy of mobile applications ............................................................ 35 2.2 Types of tools to enrich mobile development ................................................................ 36 2.3 Code-sharing strategies .................................................................................................. 50 2.4 Cross-platform architecture ............................................................................................ 54 3 Experiments ....................................................................................................................... 57 3.1 Experiment 1 – LittleWishList ....................................................................................... 58 3.2 Experiment 2 – Quizter .................................................................................................. 72 3.3 Experiment 3 – MovieSeeker ......................................................................................... 80 3.4 Experiment 4 – Brickasa ................................................................................................ 82 3.5 Experiment 5 – PropertyCross ....................................................................................... 89 4 Analysis.............................................................................................................................. 95 4.1 Tools ............................................................................................................................... 95 4.2 Native look and feel ....................................................................................................... 96 4.3 Architecture .................................................................................................................... 97 4.4 Ecosystem....................................................................................................................... 98 4.5 Code sharing strategies................................................................................................. 100 4.6 Sharable code ............................................................................................................... 101 4.7 Development ................................................................................................................ 102 4.8 Features ........................................................................................................................ 103 4.9 Limitations ................................................................................................................... 104 5 Further work..................................................................................................................... 105 6 Conclusion ....................................................................................................................... 107 7 Looking back ................................................................................................................... 109 8 Appendix .......................................................................................................................... 111 8.1 Screenshots ................................................................................................................... 111 8.2 Code ............................................................................................................................. 115 9 References ........................................................................................................................ 117 Preface Developing applications is both challenging and fun. I choose this topic because I am interested in developing applications on many platforms. I wanted to learn about methods, architectures and tools that could remove some of the pain related to app development. This paper is intended to educate in application development as well as provide a good overview of applications and devices. I started my work by defining a few research questions. These questions were divided into theories. I then started planned experiments to check if they were valid. As time has passed, the experiments have led to more theories, which required a periodic re-evaluation of the research questions to keep them updated and in-line with path of the research. Special thanks go to both of my supervisors—Dag Langmyhr at the University of Oslo, who has given me great advice in terms of spelling, content and information, and Tomas Jansson at Bekk Consulting AS, who has given the perfect combination of editing and technical assistance. Finally, big thanks to my family for endless encouragement and support through all my years of studies. 7 This page is intentionally left blank 8 List of figures Figure 1 - Web application running on iPhone, Android, and Windows Phone ..................... 17 Figure 2 - iOS lifecycle ............................................................................................................ 26 Figure 3 - Game loop ............................................................................................................... 28 Figure 4 - jQuery mobile theme roller ..................................................................................... 37 Figure 5 - Dojo toolkit demo ................................................................................................... 38 Figure 6 - Kendo UI on iOS, Android and Windows Phone ................................................... 39 Figure 7 - Topcoat list view ..................................................................................................... 39 Figure 8 - PhoneGap project running in visual studio ............................................................. 41 Figure 9 - Telerik AppBuilder ide ........................................................................................... 42 Figure 10 - Xamarin project Structure for file linking ............................................................. 50 Figure 11 - Add linked file in Visual studio ............................................................................ 51 Figure 12 - Add linked file in Xamarin studio ......................................................................... 51 Figure 13 - Linked file Visual Studio ...................................................................................... 52 Figure 14 - Portable class library ............................................................................................
Recommended publications
  • Blotch3d User Manual with Just a Few Lines Code You Can Create Real-Time 3D Apps for Multiple Platforms
    Blotch3D User Manual With just a few lines code you can create real-time 3D apps for multiple platforms. QUICK START INTRODUCTION PROJECT STRUCTURE DEVELOPMENT MAKING 3D MODELS DYNAMICALLY CHANGING A SPRITE’S ORIENTATION AND POSITION MATRIX INTERNALS A SHORT GLOSSARY OF 3D GRAPHICS TERMS TROUBLESHOOTING RIGHTS Quick start (This quick start section is for Windows. See below for other platforms, like Android, etc.) 1. Get the installer for the latest release of MonoGame from http://www.monogame.net/downloads/ and run it. (Do NOT get the current development version nor the NuGet package.) 2. Get the Blotch3D repository zip from https://github.com/Blotch3D/Blotch3D and unzip it. 3. Open the Visual Studio solution file. 4. Build and run the example projects. 5. See IntelliSense comments for reference documentation. Introduction Blotch3D is a C# library that vastly simplifies many of the fundamental tasks in development of 3D applications and games. Examples are provided that show how with just a few lines of code you can… • Load standard file types of 3D models as “sprites” and display and move them in 3D with real- time performance. • Set a model’s material, texture, and how it responds to lighting. • Load textures from standard image files. • Show 2D and in-world (as a texture) text in any font, size, color, etc. at any 2D or 3D position, and make text follow a sprite in 2D or 3D. • Attach sprites to other sprites to create associated structures of sprite trees as large as you want. Child sprite orientation and position is relative to its parent sprite’s orientation and position, and can be changed dynamically.
    [Show full text]
  • An Independent Look at the Arc of .NET
    Past, present and future of C# and .NET Kathleen Dollard Director of Engineering, ROICode [email protected] Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time. Changes in .NET paralleled changes in the languages we’ll reflect on how far C# and Visual Basic have come and how they’ve weathered major changes in how we think about code. Looking to the future, you’ll see both the impact of functional approaches and areas where C# probably won’t go. The story would not be complete without cruising through adjacent libraries – the venerable ASP.NET and rock-star Entity Framework that’s recovered so well from its troubled childhood. You’ll leave this talk with a better understanding of the tool you’re using today, and how it’s changing to keep you relevant in a constantly morphing world. Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time.
    [Show full text]
  • DELL EMC VMAX ALL FLASH STORAGE for MICROSOFT HYPER-V DEPLOYMENT July 2017
    DELL EMC VMAX ALL FLASH STORAGE FOR MICROSOFT HYPER-V DEPLOYMENT July 2017 Abstract This white paper examines deployment of the Microsoft Windows Server Hyper-V virtualization solution on Dell EMC VMAX All Flash arrays, with focus on storage efficiency, availability, scalability, and best practices. H16434R This document is not intended for audiences in China, Hong Kong, Taiwan, and Macao. WHITE PAPER Copyright The information in this publication is provided as is. Dell Inc. makes no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose. Use, copying, and distribution of any software described in this publication requires an applicable software license. Copyright © 2017 Dell Inc. or its subsidiaries. All Rights Reserved. Dell, EMC, Dell EMC and other trademarks are trademarks of Dell Inc. or its subsidiaries. Intel, the Intel logo, the Intel Inside logo and Xeon are trademarks of Intel Corporation in the U.S. and/or other countries. Other trademarks may be the property of their respective owners. Published in the USA 07/17 White Paper H16434R. Dell Inc. believes the information in this document is accurate as of its publication date. The information is subject to change without notice. 2 Dell EMC VMAX All Flash Storage for Microsoft Hyper-V Deployment White Paper Contents Contents Chapter 1 Executive Summary 5 Summary .............................................................................................................
    [Show full text]
  • Building Android Apps with HTML, CSS, and Javascript
    SECOND EDITION Building Android Apps with HTML, CSS, and JavaScript wnload from Wow! eBook <www.wowebook.com> o D Jonathan Stark with Brian Jepson Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo Building Android Apps with HTML, CSS, and JavaScript, Second Edition by Jonathan Stark with Brian Jepson Copyright © 2012 Jonathan Stark. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: Brian Jepson Cover Designer: Karen Montgomery Production Editor: Kristen Borg Interior Designer: David Futato Proofreader: O’Reilly Production Services Illustrator: Robert Romano September 2010: First Edition. January 2012: Second Edition. Revision History for the Second Edition: 2012-01-10 First release See http://oreilly.com/catalog/errata.csp?isbn=9781449316419 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Building Android Apps with HTML, CSS, and JavaScript, the image of a maleo, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein.
    [Show full text]
  • Cross Platform Development Frameworks for Start-Ups. Research for an E-Learning Platform, Lecter
    Aalto University School of Science Degree Programme of Computer Science and Engineering Lodewijck Vogelzang Cross platform development frameworks for start-ups. Research for an e-learning platform, Lecter Master's Thesis Espoo, October 12, 2016 Supervisor: Professor Petri Vuorimaa Instructor: Professor Petri Vuorimaa Aalto University School of Science ABSTRACT OF Degree Programme of Computer Science and Engineering MASTER'S THESIS Author: Lodewijck Vogelzang Title: Cross platform development frameworks for start-ups. Research for an e-learning platform, Lecter Date: October 12, 2016 Pages: vii + 51 Professorship: WWW Applications Code: T-111 Supervisor: Professor Petri Vuorimaa Instructor: Professor Petri Vuorimaa There are solutions to target the vast majority of mobile platforms in one single project. The different strategies to develop an app for multiple platforms are compared based on a case study: Lecter. Lecter is going to be an e-learning platform that is accessible from mobile devices. At least iOS and Android are targeted, in order to target the vast majority of mobile platforms. Xamarin Forms, React Native and PhoneGap are three free frameworks to create an app for Android and iOS in a single project. Based on implemented prototypes of Lecter with use of the three mentioned frameworks, Xamarin is the closest to native development and PhoneGap is the closest to web development. When adopting cross-platform development, the decision between the frameworks affects the app development, the product performance and the business. Xamarin Forms is recommended to use for Lecter based on the skill set of the development team and the unlimited possibilities of Xamarin Forms. Keywords: Cross platform development, Xamarin, React Native, Phone- Gap, iOS, Android, Cloud Computing, AWS Language: English ii Acknowledgements I would like to thank everyone who supported me during the two years of my double degree master's programme.
    [Show full text]
  • T-Mobile and Metropcs Continue to Expand Consumer Choice, Will Offer New Windows Phone 8.1 on Nokia’S Upcoming Lumia 635
    T-Mobile and MetroPCS Continue to Expand Consumer Choice, Will Offer New Windows Phone 8.1 on Nokia’s Upcoming Lumia 635 BELLEVUE, Wash. – April 2, 2014 – Immediately on the heels of Microsoft’s Windows Phone 8.1 unveiling today, T-Mobile US, Inc. (NYSE: TMUS) has announced the company will offer up its Redmond neighbor’s latest mobile OS as part of its ongoing commitment to deliver greater freedom and choice for American wireless consumers – starting with Nokia’s new Lumia 635 coming this summer. The Lumia 635 will be the first device sold in the United States powered out of the box by the very latest Windows Phone 8.1 operating system, introduced earlier today at Microsoft’s 2014 Build developers conference in San Francisco. T-Mobile US today also announced that, come summer, T-Mobile and MetroPCS will be the best places to get the very first smartphone with the new Windows Phone OS for a low upfront cost and with zero service contract, zero overages (while on its wicked-fast network), zero hidden device costs, and zero upgrade wait. And only T-Mobile and MetroPCS customers can experience the next-gen Lumia 635 on America’s fastest nationwide 4G LTE network. “The Un-carrier’s all about removing crazy restrictions and delivering total wireless freedom and flexibility,” said Jason Young, senior vice president of Marketing at T-Mobile. “With Windows Phone, we can offer customers another great choice in mobile platforms. And we’re excited to bring to both T- Mobile and MetroPCS customers the combination of next-gen software, great features and fresh design that Nokia’s latest Windows Phone has to offer.” The Lumia 635 will build on all the qualities and benefits that made its predecessor – the Lumia 521 – so popular among American wireless customers.
    [Show full text]
  • Desirable Requirements of Cross Platform Mobile Development Tools
    Desirable Requirements of Cross Platform Mobile Development Tools Lamia Gaouar, Abdelkrim Benamar, Fethi Tarik Bendimerad University Abou Bekr Belakid Tlemcen Algeria [email protected], [email protected], [email protected] ABSTRACT: The ubiquity of mobile devices is the result of increasing popularity of mobile applications that are becom- ing more diverse and intuitive. The mobile device market is composed of several mobile platforms such as Android and iOS, so it is important to be able to deliver applications available for more than one platform in less time. But it is becoming increasingly difficult with the incompatibility between platforms and their SDK. To solve that, cross platform mobile development solutions have been investigated. Although each of such tools allows developing cross-platform mobile applications, the result can sometimes be unsatisfactory in comparison to a native application. In this paper, we present existing cross platform approaches. We discuss the general architecture of cross platform mobile applications. Then, we propose the desirable requirements in cross platform frameworks. Some existing solutions will be evaluated based on these requirements. We conclude the paper by some future perspectives. Keywords: Cross-platform Tools, Mobile Application, Cross-platform Development, Requirements Received: 1 October 2015, Revised 29 October 2015, Accepted 4 November 2015 © 2016 DLINE. All Rights Reserved 1. Introduction Our lives have become more mobile and the near ubiquity of mobile devices (e.g. smart phones and tablets) and the internet have contributed to this effect. Due to the features they offer (GPS, accelerometer, Music, Camera, etc.), mobile devices have becoming more a necessary than need. These kinds of functionalities are provided by all the major mobile Operating Systems such as Android, iOS and Windows Phone.
    [Show full text]
  • UI Design and Interaction Guide for Windows Phone 7
    UI Design and Interaction Guide 7 for Windows Phone 7 July 2010 Version 2.0 UI Design and Interaction Guide for Windows Phone 7 July 2010 Version 2.0 This is pre-release documentation and is subject to change in future releases. This document supports a preliminary release of a software product that may be changed substantially prior to final commercial release. This docu- ment is provided for informational purposes only and Microsoft makes no warranties, either express or implied, in this document. Information in this document, including URL and other Internet Web site references, is subject to change without notice. The entire risk of the use or the results from the use of this document remains with the user. Unless otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in examples herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this docu- ment. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
    [Show full text]
  • Electronic Diagnostics
    ELECTRONIC DIAGNOSTICS otctools.com QUESTIONS? otctools.com 888 789 2602 PROTECT YOUR INVESTMENT ELECTRONIC DIAGNOSTICS PROTECT YOUR INVESTMENT REPAIR TRACK AND TOOLGUARD™ SERVICE COVERAGE PACKAGES YOU CAN COUNT ON At OTC, we recognize that your purchase of OTC tools and equipment is an important investment in your business. The service information provided below demonstrates our commitment to you with online support and extended service coverage you can count on. Warranty Registration Warranty registration is the most important step in providing exceptional customer service. Registration is available online at https://register.servicesolutionsportal.com or call us at 1-800-533-6127 and follow the prompt for OTC technical assistance. Repair TRACK RepairTrack offers you the ability to manage your repair experience with OTC products by providing you with an easy way to send your product in for repair and track it. • From the moment it leaves your facility to the moment it returns, you will have the latest information. • Generate a Repair Return Authorization by printing out a UPS tracking number directly from this site. • Review and approve Repair Estimates online. • Make Credit Card payments for your Repairs online. • Up to date warranty and service information include any special programs that exist with your product. • Find out the latest repair policies and procedures, and where to go for additional information. • Don’t miss this valuable service. For technical support or repair service on your OTC tools or equipment, log on to repairtrack.bosch-automotive.com or call us at 1-800-533-6127 and follow the prompt for OTC technical assistance.
    [Show full text]
  • Game-Based Learning
    Game-based Learning Motion-based Educational Game Per Olav Flaten Henrik Reitan Master of Science in Informatics Submission date: June 2016 Supervisor: Alf Inge Wang, IDI Norwegian University of Science and Technology Department of Computer and Information Science Problem Description Title: Game-based Learning Sub-title: Motion-based Educational Game This project focuses on the development, testing and experimentation with motion-based educational games. The games will use body movement as input to provide a natural user interface and will provide learning through gesture based movement. The project consists of a state-of the-art study, prototyping and develop- ment, testing and experimentation with real users, and analysis of the ex- perimental data. The project will utilize technology like Kinect or similar. Assignment given: 13:01.2015 Supervisor: Alf Inge Wang Abstract This master's project is dedicated to investigate the potential for educa- tional games with a motion controller based interface. Through professor Alf Inge Wang at NTNU we were assigned the task of brainstorming and developing a concept that would utilize motion controllers, more speci- cally the Microsoft Kinect, and investigate if it could be useful outside of a traditional game setting. Additionally it was expressed a desire to have em- phasis on reusable software that would benet future projects investigating the same area or using the same technology. Throughout our research period we have discovered several interesting things. We found that although the Kinect failed to gain any traction on its in- tended area of use, it is a very impressive piece of aordable technology that is worth investigating further.
    [Show full text]
  • Studying and Enabling Reuse in Android Mobile Apps Andrew Steven Holtzhauer College of William & Mary - Arts & Sciences
    W&M ScholarWorks Dissertations, Theses, and Masters Projects Theses, Dissertations, & Master Projects 2014 Studying and Enabling Reuse in android Mobile Apps andrew Steven Holtzhauer College of William & Mary - Arts & Sciences Follow this and additional works at: https://scholarworks.wm.edu/etd Part of the Computer Sciences Commons Recommended Citation Holtzhauer, andrew Steven, "Studying and Enabling Reuse in android Mobile Apps" (2014). Dissertations, Theses, and Masters Projects. Paper 1539626959. https://dx.doi.org/doi:10.21220/s2-0fsx-bc44 This Thesis is brought to you for free and open access by the Theses, Dissertations, & Master Projects at W&M ScholarWorks. It has been accepted for inclusion in Dissertations, Theses, and Masters Projects by an authorized administrator of W&M ScholarWorks. For more information, please contact [email protected]. Studying and Enabling Reuse in Android Mobile Apps Andrew Steven Holtzhauer Stafford, VA Bachelor of Science, College of William and Mary, 2012 A Thesis presented to the Graduate Faculty of the College of William and Mary in Candidacy for the Degree of Master of Science Department of Computer Science The College of William and Mary August 2014 COMPLIANCE PAGE Research approved by Protection of Human Subjects Committee Protocol number(s): PHSC-2013-06-07-8782 Date(s) of approval: 2013-06-14 APPROVAL PAGE This Thesis is submitted in partial fulfillment of the requirements for the degree of Master of Science Andrew Steven Holtzhauer Approved by the Committee, August 20T4 littefe Cfiair Assistant Professor Denys feoshyvanyk, Computer Science The College of William and Mary Associate Professor Peter Kemper, Computer Science The College of William and Mary fessor Collin McM+tfar/Computer Science University of Notre Dame ABSTRACT In the recent years, studies of design and programming practices in mobile development are gaining more attention from researchers.
    [Show full text]
  • The App Design Handbook
    THE APP DESIGN HANDBOOK App Icon & Splash Image Table of contents Design and Usability: The perfect mix for app What is a splash image? success How can splash images help my app? Why app icons are so important? Purposes and tips The impact on users App icon size criteria for the stores DOs and DON’Ts to design great app icons Easily recognizable images Keep it simple Be consistent Use a simple colour scheme Avoid text Avoid using photos Avoid replicas of hardware products Avoid transparency Follow us on or visit our official blog Design and Usability: The perfect mix for app success Getting your application published in the major app stores can often be a complex and frustrating process to carry out. Given the number of restrictions and guidelines set by each store, it is not unusual to see your own app being rejected for unforeseen bugs or design features not compliant with the store guidelines. Design plays a key role in the app store acceptance process, so much so that Apple released what is called The Human Interface Guidelines which describe the principles to design a perfectly user-friendly interface compliant with Apple requirements. In this ebook we will focus on the main design principles to keep in mind when creating your app icon and splash im- age, to boost your chances of getting your app published in the stores and provide a superlative user experience at the same time. Did you know that... When developing your app through AppsBuilder, you can edit your content, layout, menu and page icons as many times as you want without having to resubmit your app to the stores.
    [Show full text]