280 likes | 297 Views
This survey paper explores the usage of software reuse in cross-platform mobile application development, comparing native, web-based, and hybrid approaches. It analyzes the benefits, challenges, and trends in software reuse across different platforms.
E N D
Survey Paper & Manuscript A Study of Software Reuse in Cross-Platform Mobile Application Development T. Shah, Z. Ahmad National University of Sci & Tech Islamabad, Pakistan Injung Kim INK20@PITT.EDU
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-platformmobile application development • Native, Web-based, Hybrid Application Development (NAD, WAD, HAD) • And more… • Softwarereuse in NAD, WAD, HAD
Background Mobile/Tablet OS Market Share Worldwide usage, Oct, 2017 [1] www.netmarketshare.com
Android & iOS Platforms [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
Example of NAD [5] IBM
Example of WAD [5] IBM
Example of HAD [5] IBM
NAD, WAD, HAD NAD, WAD, HAD
NAD, WAD, HAD Brief Comparison of NAD, WAD, HAD [5] IBM
NAD, WAD, HAD Brief Comparison of NAD, WAD, HAD
NAD, WAD, HAD Detail Comparison of NAD, WAD, HAD # of platform Airplane mode?
NAD, WAD, HAD Detail Comparison of NAD, WAD, HAD
NAD, WAD, HAD And more… [4] A Comparative Analysis of Cross-platform Development Approaches for Mobile Applications
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
NAD, WAD, HAD Trends of Native vs. Cross-platform 0.5% 8% 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
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 possiblein 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 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
SW Reuse Native vs. Cross-Platform Code Sharing Nov, 2017 [2] www.netmarketshare.com
Conclusions • No! It depends on application types • 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
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