Survey Paper & Manuscript

Slides:



Advertisements
Similar presentations
Mobile Application Development Keshav Bahadoor. Part 1 Cross Platform Web Applications.
Advertisements

UNIT-e futures and UNIT-e Mobile Ben Potter Systems Architect.
Mobile App Development Using: Presented by Tyler Richey Images from
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Component OneJQuery MobileVisual WebGUI Comparison of three mobile site development frameworks.
DEPARTMENT OF COMPUTER ENGINEERING
© 2009 Research In Motion Limited Methods of application development for mobile devices.
Mobile Application Development
Android An open handset alliance project Janice Garcia September 18, 2008 MIS 304.
Platform Independent Frameworks Contents Mobile App Developer’s challenges Platform Independent solutions – Mobile Web Based Apps – Cross.
Development of mobile applications using PhoneGap and HTML 5
Native vs hybrid vs web mobile Application
The PhoneGap History Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
To be Presented by, T.Sathishkumar [11mw07] 1. Synopsis Introduction Version Features License An Application Development Demo Possibilities Advantages.
Web Apps vs. Native Apps vs. Hybrid Apps vs. iBook Author Mobile Publishing:
What is HTML5? HTML5 is the new LEGO for both designers and programmers.
Mobile Web Applications
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Adobe Presentation Brijesh Patel | Working with AIR Native Extensions.
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Developing Enterprise Mobile Apps with Xamarin Loren Horsager CEO, Mobile Composer.
Mobile web Sebastian Lopienski IT Technical Forum 29 June 2012.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
Created by Presented by James Schultz Titanium. What is Titanium? An open, extensible development environment for creating beautiful native apps across.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
J.BHAVANA 3/4B.TECH CSE Ch.Rochasmathi 3/4B.tech CSE.
If you are thinking about developing mobile application for your customer, this is an important aspect to consider the platform.
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
Introduction to Mobile Computing Dr. Frank McCown Harding University Fall 2011 An Overview of Mobile Devices and Developing Mobile Applications This work.
PhoneGap / PhoneGap Build #CreateTheWeb Mihai Corlan / Adobe Web Evangelist
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
COMPARING CROSS-PLATFORM DEVELOPMENT APPROACHES FOR MOBILE APPLICATIONS Henning Heitkötter, Sebastian Hanschke and Tim A. Majchrzak Department of Information.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
#SummitNow Alfresco Mobile SDKs in Action 06 November, 2013 Mike Hatfield Lead Engineer Mobile Apps, Alfresco.
Phonegap API & Phonegap Bridge CIS 136 Building Mobile Apps 1.
TECH RELATED TOPIC PRESENTATION MICROPROCESSOR: CSE341 COURSE INSTRUCTOR DR. JIA UDDIN Assistant Professor Department of Computer Science and Engineering.
Google. Android What is Android ? -Android is Linux Based OS -Designed for use on cell phones, e-readers, tablet PCs. -Android provides easy access to.
Software Engineering in Mobile Application Development
The great debate… We will have this as an ongoing theme!
Mobile App Development Using:
Introduction to Mobile Computing
A little more App Inventor and Mind the GAP!
Computer System Structures
Mobi-sites and Apps for Mobile Devices “pros & cons of each”
Introduction to Xamarin C# Everywhere
ET-570 Smart Phone Apps.
CHALLENGES IN FRONT OF MOBILE APPLICATIONS DEVELOPMENT
Android Mobile Application Development
Becoming a Pro IN Mobile Applications Testing
Browsers and Web Platforms
Architecture of Android
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
Mobile App Development
Apache Cordova Overview
Dynamics of Mobile Application Testing
Multi-Device Hybrid Apps What, Why, and When to Use Hybrid Development Option Ervin Loh ALM Program Manager
Automatic Mobile App Generation
Contents: Introduction Different Mobile Operating Systems
CMPE419 Mobile Application Development
Who Am I? appMobi's lead HTML5 game developer / evangelist
Mobile App Development
Office 365 Development.
Java Programming Introduction
CMPE419 Mobile Application Development
Chapter 3 Software.
Presentation transcript:

Survey Paper & Manuscript A Study of Software Reuse in Cross-Platform Mobile Application Development Injung Kim INK20@PITT.EDU T. Shah, Z. Ahmad National University of Sci & Tech Islamabad, Pakistan

Supplementary Paper A Comparative Analysis of Cross-platform Development Approaches for Mobile Applications S. Xanthopoulos, S. Xinogalos Aristotle University of Thessaloniki / University of Macedonia, Greece

Motivation & Summary Rapid growth of the mobile application market Android, iOS, Windows, Blackberry Cross-platform mobile application development Native, Web-based, Hybrid Application Development (NAD, WAD, HAD) And more… Software reuse in NAD, WAD, HAD

Mobile/Tablet OS Market Share Background Mobile/Tablet OS Market Share Worldwide usage, Oct, 2017 [1] www.netmarketshare.com

Android & iOS Platforms 1 level : acts as an intermediate layer between the user applications and the underlying hardware components. includes all pre-installed and third-party applications that extend the functionality of the device. 2 layer : audio, video technologies that create multimedia experience. 3 layer :fundamental system services that all applications use directly or indirectly, such as security and data storage. 4 layer :necessary technologies and operating system interfaces that other layers need, such as files, drivers and memory management. [4] A Comparative Analysis of Cross-platform Development Approaches for Mobile Applications

NAD, WAD, HAD NAD Involves developing the application on a native mobile platform, which can be Android, iOS or Windows Phone. WAD Are browser-based applications that are developed using the HTML / JavaScript technologies HAD is a cross between NAD & WAD. HTML5 / JavaScript are used as development technologies and no detailed knowledge of the target platform is required Hybrid applications are closing the gap bet. Native and web-based application development

Example of NAD [5] IBM

Example of WAD [5] IBM

Example of HAD [5] IBM

NAD, WAD, HAD NAD, WAD, HAD

Brief Comparison of NAD, WAD, HAD [5] IBM

Brief Comparison of NAD, WAD, HAD

Detail Comparison of NAD, WAD, HAD Native App Mobile Web App Hybrid App Skills/Tools needed for cross-platform app development Objective-C, Java, C++, C#, VB.net HTML, CSS, JavaScript, Web programming language HTML, CSS, JavaScript, Web programming, mobile development framework Apps needed to reach all major smartphone platforms 4 1 Installed on device? Yes No Distribution App Store/Market Internet WAD: Rendering time Rendering Engine – this takes HTML code and interprets it into what you see visually. For instance, a tag would be interpreted by the rendering engine as a set of instructions to make the text inside of the element bold Partial device access # of platform Airplane mode?

Detail Comparison of NAD, WAD, HAD Native App Mobile Web App Hybrid App Device integration Full integration: (camera, microphone, GPS, gyroscope, accelerometer, file upload, contact list) Partial integration: (GPS, gyroscope, accelerometer, file upload) Full integration: (camera, microphone, GPS, gyroscope, accelerometer, file upload, contact list) Best used for Highly graphical apps Apps that need to reach a large consumer audience Data-driven apps B2B apps Internal business apps Cross-platform apps that need full device access Business apps that need app store distribution

NAD, WAD, HAD And more… In interpreted apps native code is automatically generated to implement the user interface. Generated apps are compiled just like a native app and a platform specific version of the application is created for each target platform Market place deployment (distribution). Evaluates whether and how easy it is to deploy apps to the app stores of mobile platforms, like Google Play or Apple’s iTunes. Widespread technologies: Evaluates whether apps can be created using widespread technologies, such as JavaScript. Hardware and data access: Evaluates whether apps have no access, limited or full access to the underlying device hardware and data. User interface and look and feel: Evaluates whether apps inherently support native UI components or native UI and look and feel is simulated through libraries, such as JQuery Mobile. User-perceived performance: Evaluates whether apps have low, medium or high performance as perceived by the end users (like loading time and execution speed) compared to a native app. [4] A Comparative Analysis of Cross-platform Development Approaches for Mobile Applications

Cross-platform App RSS feeds reader application NAD, WAD, HAD Cross-platform App RSS feeds reader application LOC <= 150, Every code line is pure JavaScript w/ no need of coding anything using a native language. [4] A Comparative Analysis of Cross-platform Development Approaches for Mobile Applications

Trends of Native vs. Cross-platform NAD, WAD, HAD Trends of Native vs. Cross-platform 8% 0.5% x16 2017 2017 Stackoverflow trend, May, 2017 [3] www.netmarketshare.com

Software Reuse Process of using existing software components to create new software systems Increase of productivity, quality, reliability Decrease of cost, implementation time

How Often? Single Platform Application Development SW Reuse How Often? Single Platform Application Development 18.75% of Android app classes inherit from a base class in Android API 35.78% of the classes inherit from a domain-specific base class 84.23% of classes across all categories of app occur in two or more app and 17,109 apps were a direct copy of another app Cross-Platform Application Development Software reuse is a big challenge due to different platforms using different programming languages, SDKs, IDEs. How much sw reuse is possible in case of NAD, WAD, HAD?

SW Reuse SW Reuse in NAD A single application is developed multiple times to support multiple mobile platforms. Need to work from scratch Impossible or challenging to port functionality Even if the programming languages may be the same Ex) Android and Blackberry both use Java for application development there is no or very little software reuse, which greatly increases the time, effort, budget required for the development and maintenance of an application.

SW Reuse SW Reuse in WAD A single application is developed in web technologies like HTML and JavaScript and used across multiple mobile platforms. write once and run everywhere Provide complete software reuse but still it carries some technical disadvantages & is not a choice of most of the developers

SW Reuse in HAD Provide complete software reuse Overcome the disadvantages of web-based applications Ex) lack of hardware access & lower performance) Generally a web-based application wrapped in a native shell

Native vs. Cross-Platform Code Sharing SW Reuse Native vs. Cross-Platform Code Sharing Nov, 2017 [2] www.netmarketshare.com

Conclusions Cross-platform mobile application development Software reuse in NAD, WAD, HAD Cross-Platform Applications Development is always good? Worldwide usage, Oct, 2017 [2] www.netmarketshare.com No! It depends on application types

Conclusions Cross-platform mobile application development Software reuse in NAD, WAD, HAD Cross-Platform Applications Development is always good? No! It depends on application types Security, Performance, Offline mode

Conclusions Cross-platform mobile application development Software reuse in NAD, WAD, HAD Cross-Platform Applications Development is always good? No! It depends on application types Security, Performance, Offline mode There is no or very little sw reuse in NAD for an app What about among different apps? Libraries, Stack overflow, etc.

References [1] Mobile/Tablet Operating System Market Share https://www.netmarketshare.com/operating- system-market-share.aspx?qprid=8&qpcustomd=1&qpct=3 [2] Native development vs cross-platform development: myth and reality https://www.mobindustry.net/native-development-vs-cross-platform-development-myth-and- reality/ [3] Stack overflow trends https://stackoverflow.blog/2017/05/16/exploring-state-mobile- development-stack-overflow-trends/ [4] S. Xanthopoulos, S. Xinogalos “A Comparative Analysis of Cross-platform Development Approaches for Mobile Applications” [5] IBM (Worklight Inc.) “Native, Web, or Hybrid Mobile Apps?” https://www.youtube.com/watch?v=Ns-JS4amlTc

Thank you. Question?