200 likes | 211 Views
Learn about cross-platform mobile software development, different types of mobile software, guidelines for developers, and the PhoneGap framework. Evaluate performance and explore references.
E N D
CS454: Software Engineering-3 Mobile Software Engineering Cross Platform Mobile Software Development
Software Engineering in Mobile Computing List of topics Introduction to cross-platform mobile S/W development Types of mobile software Guidelines for developers Requirements of cross-platform mobile S/W development General architecture of cross-platform mobile S/W development framework PhoneGap Performance evaluation of some tools
Software Engineering in Mobile Computing Introduction to cross-platform mobile development • A myriad of mobile platforms (Android, iOS, Blackberry, Windows Phone…). • It is required to provide an application to all or many platforms. • Developing a separate application for each platform is not viable. • Cross-platform comes to rescue! • It is the practice of writing a single piece of code that can be executed on different platforms that are not binary compatible.
Software Engineering in Mobile Computing Types of mobile software
Software Engineering in Mobile Computing Types of mobile software
Software Engineering in Mobile Computing Types of mobile software
Software Engineering in Mobile Computing Guidelines for developers • Native UX • Use native or hybrid • Offline/Online Usage • If offline use native or hybrid, If online use mobile web • Long-term Compatibility • Use mobile web • Access to Built-in Features • Use native or hybrid • Security • Use native or hybrid
Software Engineering in Mobile Computing Requirements of cross-platform development • Multiple mobile platform support • Specially Android and iOS • Rich UI • Cross-platform tools can not provide rich UI as native apps • Support for sophisticated graphics (2D, 3D), animation, multimedia • Back-end communication • support for backend communication protocols and data formats • Security • Applications developed by cross platform tools are not highly secure
Software Engineering in Mobile Computing Requirements of cross-platform development • Support for app-extensions • Power consumption • Accessing built-in features • Cameras, Sensors, GPS, etc… • Open source
Software Engineering in Mobile Computing General architecture of cross-platform development framework
Software Engineering in Mobile Computing PhoneGap • Open-source mobile development tool developed by Adobe System Inc. under Apache 2.0 license. • Permits the creation of applications for Android, Bada, BlackBerry, iOS, Symbian, webOS and Windows Phone OS’s. • Applications are developed using HTML5/CSS3/JavaScript and the PhoneGap framework APIs. • PhoneGap framework APIs provide access to device components (Camera, GPS, contact list, vibration…) via JavaScript. • Applications are compiled to a native platform package that consists of HTML pages and a native container.
Software Engineering in Mobile Computing PhoneGap • PhoneGap applications are hybrid, i.e., not purely native and not purely web-based • ”not purely native”: layout rendering is done via web-view instead of the native language of the OS • ”not purely web-based” not all functions are implemented in HTML • PhoneGap offers the possibility to extend the tool by developing plug-ins
Software Engineering in Mobile Computing PhoneGap Layers
Software Engineering in Mobile Computing PhoneGap Architecture
Software Engineering in Mobile Computing Performance Evaluation – Memory Usage • PhoneGap integrated with JQuery Mobile or Sencha Touch 2.0 is a complete environment for better UI development of applications • Proportional set size (PSS): is the amount of memory shared with other processes • Unique set size (USS): is the set of pages that are unique to a process
Software Engineering in Mobile Computing Performance Evaluation – CPU Usage • A CPU snapshot is taken at each state of the Activity life cycle (i.e. onCreate, onStart, onPause, onStop and onDestroy) of the apps
Software Engineering in Mobile Computing Performance Evaluation – Power Consumption • Power consumption is computed using "Power Tutor” Android app
Software Engineering in Mobile Computing Performance Evaluation – UI
Software Engineering in Mobile Computing References • I. Dalmasso, S. K. Datta, C. Bonnet and N. Nikaein, "Survey, comparison and evaluation of cross platform mobile application development tools," 2013 9th International Wireless Communications and Mobile Computing Conference (IWCMC), Sardinia, 2013, pp. 323-328. • M. Palmieri, I. Singh and A. Cicchetti, "Comparison of cross-platform mobile development tools," 2012 16th International Conference on Intelligence in Next Generation Networks, Berlin, 2012, pp. 179-186.
Thank you for yourattention.