Web-based Hybrid Mobile Apps: State of the Practice and Research Opportunities

Similar documents
SYST35300 Hybrid Mobile Application Development

Developing and deploying mobile apps

Whitepaper. Trans. for Mobile

Bridging the Gap: from a Web App to a Mobile Device App

the intro for RPG programmers Making mobile app development easier... of KrengelTech by Aaron Bartell

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved.

Native, web or hybrid mobile-app development

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

BELATRIX SOFTWARE. Why you should be moving to mobile Cross Platform Development? Introduction

Developing Cross-platform Mobile and Web Apps

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz Java Developer

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

A Way Out of the Mobile App Development Conundrum

The Suitability of Native Application for University E-Learning Compared to Web-Based Application

CROSS PLATFORM APP A COMPARATIVE STUDY

Build a Mobile App in 60 Minutes with MAF

Lecture 4 Cross-Platform Development. <lecturer, date>

How To Develop A Mobile App With Phonegap

Building native mobile apps for Digital Factory

Making Mobile a Reality

Retool your HTML/JavaScript to go Mobile

Analysis of Native and Cross-Platform Methods for Mobile Application Development. [ Whitepaper] Praveen Kumar S

Take full advantage of IBM s IDEs for end- to- end mobile development

ADF Mobile Overview and Frequently Asked Questions

QML and JavaScript for Native App Development

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

ORACLE ADF MOBILE DATA SHEET

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

ios SDK possibilities & limitations

BASIC COMPONENTS. There are 3 basic components in every Apache Cordova project:

Mobile App Design and Development

Navigating the Mobile App Development Landscape

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

Develop Hybrid Mobile Applications with Apache Cordova & PhoneGap Enterprise

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Cross-Platform Development

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

Creating Enterprise Mobile Apps with Red Hat

Native mobile apps: The wrong choice for business?

SAP Mobile Platform Intro

True Web Application Management: Fixing the Gaps in EMM Solutions

Cross-Platform Development: Target More Platforms and Devices with a Minimal Amount of Source Code

PEGA MOBILITY A PEGA PLATFORM WHITEPAPER

White Paper INTRODUCTION. In mobile development, there are three different types of applications: PRE-SMARTPHONE MOBILITY NATIVE MOBILE APPLICATIONS

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

Cross-Platform Phone Apps & Sites with jquery Mobile

Developing And Marketing Mobile Applications. Presented by: Leesha Roberts, Senior Instructor, Center for Education Programmes, UTT

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Porting Existing PhoneGap Apps to Tizen OS - Development Story

POINT-TO-POINT vs. MEAP THE RIGHT APPROACH FOR AN INTEGRATED MOBILITY SOLUTION

Here s how to choose the right mobile app for you.

Choosing a Mobile Application Development Approach

Accelerating Business Value by

What We Learned From Porting 50+ Cloud Apps to Tizen. Dima Malenko, Vlad Pavlov, rollapp Inc.

/// CHOOSING THE BEST MOBILE TECHNOLOGY. Overview

Lab: Developing Mobile Web Apps. Adage Technologies adagetechnologies.com

Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte

the future of mobile web by startech.ro

HTML5 the new. standard for Interactive Web

Introduction to IBM Worklight Mobile Platform

JavaScript By: A. Mousavi & P. Broomhead SERG, School of Engineering Design, Brunel University, UK

Develop a Native App (ios and Android) for a Drupal Website without Learning Objective-C or Java. Drupaldelphia 2014 By Joe Roberts

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

How to pick the right development model for your next mobile project

Rapid Game Development Using Cocos2D-JS

CROSS PLATFORM DEVELOPMENT The HTML5 Way

Evaluating Cross-Platform Development Approaches (WORA Tools ) for Mobile Applications

Mobile Performance: for excellent User Experience

Cross-Platform Tools

Client Overview. Engagement Situation

Not All Apps Are Created Equal. The key to a seamless app-building experience is to dig deep, ask questions and examine all variables at the onset.

THOUGHT LEADERSHIP PAPER

Cross-Platform Mobile Apps Solution

How To Develop A Mobile Application On An Android Device

Enterprise Mobile Web Development. Robert Altland Principal Consultant, Mobility Neudesic, LLC

Software Engineering for Mobile Application Development

How To Use Titanium Studio

Choosing a Mobile Strategy for Your Business

Transcription:

Web-based Hybrid Mobile Apps: State of the Practice and Research Opportunities Austin, 17 th May 2016 Ivano Malavolta Assistant professor, Vrije Universiteit Amsterdam i.malavolta@vu.nl

Roadmap Who is speaking? Web-based hybrid mobile apps Questions Hybrid apps in the Google Play store Interactive session with Apache Cordova Research opportunities and discussion

About me 2008 Started PhD Model-driven Engineering applied to software architecture 2009 2010 ios developer Android developer Had to design a course on mobile apps development 2011 2012 2014 Cross-platform developer Course started Started doing research on mobile apps TODAY Research on mobile-enabled systems (performance + security + sustainability)

Roadmap Who is speaking? Web-based hybrid mobile apps Hybrid apps in the Google Play store Interactive session with Apache Cordova Research opportunities and discussion

Developing a mobile strategy Mobile strategy = How much it will cost you to develop your app? How much time? How much effort? How much money?

Bursting the first myth Mobile design and development IS NOT CHEAP http://www.slideshare.net/fling/native-v-hybrid-v-web

Native VS web VS hybrid Native Web Hybrid NATIVE APP 01010101010101101010 1010101011011010 010101010101011101 010101010101011010 PLATFORM APIs BROWSER <html> <head> <script src=... /> </head> <body>... NATIVE WRAPPER <html> <head> <script src=... /> </head> <body>... PLATFORM APIs

Native PROS Lets you create apps with rich user interfaces and/or heavy graphics CONS Development time Development cost Ongoing maintenance No portability (apps cannot be deployed on other platforms) NATIVE APP 01010101010101101010 1010101011011010 010101010101011101 010101010101011010 PLATFORM APIs http://bit.ly/gwoap1

Main issue FRAGMENTATION à a native mobile app is written from scratch for each platform Objective -C code Swift code Java code C++ code C# code C++ cod e JS cod e XCode Eclipse Visual Studio

Examples of native apps http://www.whatsapp.com/ http://www.ea.com/it/ipad/nfs

Web PROS Offers fast development, simple maintenance, and full application portability One mobile web app works on any platform CONS BROWSER <html> <head> <script src=... /> </head> <body>... Can t handle heavy graphics Can t access low level features (e.g., camera) http://bit.ly/gwoap1

Examples of mobile web apps http://amazon.com http://asidemag.com

Hybrid PROS cross-platform portability reuse of existing knowledge of web developers simpler and less expensive development processes CONS NATIVE WRAPPER <html> <head> <script src=... /> </head> <body>... PLATFORM APIs restricted access to hardware features decrease in performance variations on user experience

Web-based hybrid mobile apps Single code base Recurrent architecture: apps are developed using standard web technologies on top of a hybrid development framework providing a native wrapper and a generic JavaScript API that bridges all the service requests to the corresponding platform API

Examples of hybrid apps http://sworkit.com https://play.google.com/store/apps/details?id=com.rormix&hl=it

Comparison

Another perspective http://goo.gl/kodxh

My vision Mobile web seems to be the only long-term commercially viable content platform for mobile devices FRAGMENTATION THE WEB USER EXPECTATIONS WEB UBIQUITY

My vision FRAGMENTATION When you go native there are too many platforms to be supported

My vision THE WEB The only medium for information and services that lasts from over 15 years The web is an advanced technology webgl Local storage management Positioning & mapping Real-time data Push,...

My vision USER EXPECTATIONS Users expect things to just work à they don t care about what platform they have à they simply expect that your app will be available for their device à YOU HAVE TO BE CROSS-PLATFORM

My vision WEB UBIQUITY The web is the only platform that works across devices apps share the same set of standards the same app can work also on a desktop

Wrap up Mobile app technologies are constantly moving targets... - new OSs, new versions of OSs, new UI patterns, new frameworks, etc. Choosing between native vs web vs hybrid depends on a lot of factors, such as Which type of app are you creating? When do you need it? What are your skills?

Roadmap Who is speaking? Web-based hybrid mobile apps Hybrid apps in the Google Play store Interactive session with Apache Cordova Research opportunities and discussion

Two empirical studies STUDY 1 STUDY 2 Developer creates App download & use End users S1 Are hybrid mobile apps published in the Google Play Store? What are their main traits? S2 What is the difference between hybrid and native mobile apps as perceived by end users?

Design of the study We analysed hybrid mobile apps in their actual context of use with a reproducible empirical strategy well-defined empirical protocol dataset comprising 11,917 real apps and 3,041,315 user reviews dedicated analysis process and tool Complete replication packages: http://cs.gssi.infn.it/ms_2015 http://cs.gssi.infn.it/hybrid googleplay analysis Analysis tool : http://github.com/gabmar/apkcategorychecker

Data extraction top-500 most popular free apps for each category of the Google Play Store Classified apps (hybrid vs native) Hybrid apps classifier Apps and reviews mining 50 pages (~255) of reviews for each app ~11k app binaries ~3M user reviews app scores Reviews analyzer perceived value: 0.5 users sentiment: 0.6 #reviews: 243 performance: 0.6 bugginess: 0.1 size: 3,456 kb

Where are hybrid mobile apps? Data-intensive mobile apps [2] Apps with closer interaction with the Android platform Winners, in line with informal claims

Results study 1

Results study 1

Results study 1

Results study 1

Results study 2

Results study 2

Results study 2

Results study 2

Results study 2

Wrap up 3.73 % hybrid apps (445 over 11917) Top: Apache Cordova (258) and AppceleratorTitanium (116) Developers reuse JavaScript frameworks already existing in the desktop web arena also MVC frameworks like Angular and Backbone Hybrid apps request the same permissions of native apps End users value hybrid and native apps similarly Hybrid may be good for data-intensive apps, whereas it performs poorly when dealing with low-level, platform-specific features In some categories, native apps are perceived as better with respect to performance and bugginess

References Ivano Malavolta, Stefano Ruberto, Valerio Terragni, Tommaso Soru, Hybrid Mobile Apps in the Google Play Store: an Exploratory Investigation. International Conference on Mobile Software Engineering and Systems (MOBILESoft), ACM, 2015. Ivano Malavolta, Stefano Ruberto, Valerio Terragni, Tommaso Soru, "End Users' Perception of Hybrid Mobile Apps in the Google Play Store. Mobile Services (MS), 2015 IEEE International Conference on. IEEE, 2015.

Roadmap Who is speaking? Web-based hybrid mobile apps Hybrid apps in the Google Play store Interactive session with Apache Cordova Research opportunities and discussion

PhoneGap VS Cordova PhoneGap is a distribution of Apache Cordova Adobe/Nitobi donated the PhoneGap codebase to the Apache foundation à wider audience and contributors à transparent governance Better documentation à easier contributions for companies Apache Licensing There was only one problem... trademark ambiguity à CORDOVA

Intuition The UI layer is a web browser 100% width 100% height Headless web browser No URL bar No decorations No zooming No text selection

How does Cordova work?

Cordova architecture

Cordova APIs

When Cordova APIs are not enough Sometimes Cordova is not enough as is for our purposes: unsupported feature heavyweight data processing is faster in native code ex. images manipulation background processing is better handled natively ex. files sync à You can develop a Cordova plugin

Jboss Hybrid Mobile Tools http://docs.jboss.org/tools/4.1.x.final/en/user_guide/html/chap-hybrid_mobile_tools_and_cordovasim.html

Example of Cordova API usage (1) var options = { enablehighaccuracy: true, maximumage: 3000, timeout: 5000 }; navigator.geolocation.getcurrentposition(win, fail, options); function win(pos) { var el = <div>latitude: + pos.coords.latitude + '</div> ; el += <div>longitude: + pos.coords.longitude + '</div> ; el += <div>timestamp: + pos.timestamp + '</div> ; $( #block ).html(el); } function fail(err) { console.log(err.code); } http://i0.wp.com/www.phonegap.co.in/wp-content/uploads/2015/07/device_axes.jpg

Example of Cordova API usage (2) var options = { frequency: 3000 }; var watchid = navigator.accelerometer.watchacceleration(win, fail, options); function win(acc) { if((acc.x === 0) && (acc.y === 0) && (acc.z === 9.81)) { console.log('i am on a table'); stop(); } else { console.log('please, leave me on the table'); } } function fail() { alert('error'); } function stop() { if(watchid) { navigator.accelerometer.clearwatch(watchid); watchid = null; } } http://i0.wp.com/www.phonegap.co.in/wp-content/uploads/2015/07/device_axes.jpg

Interactive session 1. Create a new Apache Cordova app 2. Install the Geolocation and Camera plugins 3. Call the Nestoria REST API for getting a list of apartment listings http://www.nestoria.co.uk/help/api 4. Develop a simple view for showing the apartments 5. Develop a simple view for adding a listing The source code of this session is available here: http://github.com/iivanoo/mobilesoft2016_interactivesession

Roadmap Who is speaking? Web-based hybrid mobile apps Hybrid apps in the Google Play store Interactive session with Apache Cordova Research opportunities and discussion

Cross-platform studies What are the traits of hybrid apps on different platforms? How the actual users perceive hybrid apps on different platforms? RESEARCH INSTRUMENT Cross-platform studies considering at least the three most popular app stores - Google Play - Apple itunes - Windows Phone

Investigate on extra-functional properties MobileSoft 2016 A. I. Wasserman. Software Engineering Issues for Mobile Application Development. In Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research, pages 397 400, 2010.

Performance issues? Are there recurrent design and code antipatterns impacting the performance of hybrid mobile apps? Do best practices for the desktop web apply here? RESEARCH INSTRUMENT (cross-platform) large-scale studies on apps already published in the app stores

Testing M.E.Joorabchi,A.Mesbah,andP.Kruchten. Real Challenges in Mobile App Development. In ESEM, 2013.

Behavioural consistency VS HCI guidelines M.E.Joorabchi,A.Mesbah,andP.Kruchten. Real Challenges in Mobile App Development. In ESEM, 2013.

Conclusions

Contact Ivano Malavolta Assistant professor Vrije Universiteit Amsterdam iivanoo i.malavolta@vu.nl www.ivanomalavolta.com