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?