Multi-platform Mobile App. Development with Apache Cordova

Similar documents
Mobile Development June 2015, TEIATH, Greece

By Stephen Cavell, Kerry Ellwanger, and Jack Livingston

Mobile Development with Visual Studio 2015

Software Architecture Documentation for the JRC MYGEOSS app for Invasive Species project

Classification and Selection of Cross-Platform Tools. Michiel Willocx 17/06/2015

Mobile Technologies. Types of Apps

Ionic Tutorial. For Cross Platform Mobile Software Development

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 05 May p-issn:

Exploring Cross-platform Tools For Mobile Development: Lessons Learned. mlearning: Tips and Techniques for Development and Implementation

Mobile Application Development

Building Native Apps with ArcGIS API for JavaScript Using PhoneGap and jquery. Andy Gup, Lloyd Heberlie

Hybrid mobile apps with Ionic and AngularJS. Jeremy Wilken. FOREWORD BY Adam Bradley MANNING

Mobile Development A Whirlwind Tour!

HTML5 Mobile App Development

2015 NALIT Professional Development Seminar September 30, Tools for Mobile App Development

The C-Suite Guide to Mobile Technologies for mhealth Development. Medical Web ExpertsTM

13/03/2017. Author Bartosz Zurawski (C ) Project Coordinator Joseph K. Research

Choose OS and click on it

Build a Mobile App in 60 Minutes with MAF

VS005 - Cordova vs NativeScript

Mobile Application Strategy

Ios Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<<

Designing for the Mobile Web Lesson 4: Native Apps

First Results of the Performance Analysis

Build a Mobile App in 60 Minutes with MAF

What Mobile Development Model is Right for You?

HTML5 for mobile development.

HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN

Annals of the University of North Carolina Wilmington Master of Science in Computer Science and Information Systems.

Index. Elad Elrom 2016 E. Elrom, Pro MEAN Stack Development, DOI /

D Integrated. Development. Environments. D Mobile Application. Development. Platforms. D Mobile Backend as a Service. Development.

Cross Platform Development (Hybrid vs Native)

Framework7 and PhoneGap. By Lars Johnson

Connect and Transform Your Digital Business with IBM

Mobilize Your Users Now with Oracle Mobile Application Framework (MAF)

Oracle Utilities Customer Self Service

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

SEEM4570 System Design and Implementation. Lecture 0 Introduction

There are two main workflows for working with Cordova projects, Web focused and Platform focused.

Ios Sdk Documentation For Windows 7 32 Bit Full Version

Certified Cordova Developer VS-1124

Steps to Set Up the Environment of Xamarin in Visual

Astervander Technical Document

MOBILE DEVELOPER GUIDANCE

Beginner s Guide to Cordova and Mobile Application Development

WebStorm, intelligent IDE for JavaScript development

opensap Developing Mobile Apps with SAP HANA Cloud Platform Setting Up Your Development Environment


Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

PhoneGap. Andrew Lunny, Adobe. Monday, 23 July, 12

Advance Mobile& Web Application development using Angular and Native Script

Pro Events. Functional Specification. Name: Jonathan Finlay. Student Number: C Course: Bachelor of Science (Honours) Software Development

Case study on PhoneGap / Apache Cordova

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

Present and Future of the RhoMobile platform. Migrating legacy applications, Node.js on mobile devices right now and more

Oracle Utilities Customer Self Service

Review of Mobile Web Application Frameworks

BPM + Mobile Building a hybrid mobile app for BPM IBM Corporation

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

Participant Handbook

Challenge. Solution. Key Results. Multi Platform App Development Native A Case Study on Multi Platform App Development by Rawzor Technologies, India.

Introduction to Xamarin Cross Platform Mobile App Development

Supported Devices, OS, and Browsers

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

A Quantitative Assessment of Performance in Mobile App Development Tools

Why attend a Lianja training course? Course overview. Course Details

Mobile development initiation

Developing Applications for ios

Native Mobile Apps in JavaScript

IBM Skills Academy. For <<Academy>> Career-based Education

CSS JavaScript General Implementation Preloading Preloading in the Design Thinking Process Preloading in the Summary View Android UI Design Design

Xamarin Mobile Application Development Cross Platform C And Xamarin Forms Fundamentals

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Overview of BlackBerry Dynamics Platform

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

An Empirical Analysis of Energy Consumption of Cross-platform Frameworks for Mobile Development

ArcGIS for Developers: An Introduction. Moey Min Ken

Developing a hybrid mobile application with Ionic

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella

National Health Service

Finally JavaScript Is Easy, with Oracle JET! Geertjan Wielenga Product Manager Oracle Developer Tools

Introduction to Mobile Development

How to Convert a Simple Web Site into a Mobile App. Using PhoneGap Build, PhoneGap Desktop, PhoneGap CLI. Use Android Studio

Smartphone Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

Java Plugin Update Windows 7 32 Bit To 64 Bit

Real World Development using OpenEdge Mobile some advanced features. Brian C. Preece Ypsilon Software Ltd

CROSS PLATFORM APPLICATION DEVELOPMENT WITH COMPATIBLE GUI SOLUTIONS

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already.

Come and Get Excited about Azure Mobile Services and Xamarin.Forms

Comparing performance parameters of mobile app development strategies

RhoMobile Overview and Update Mark Kirstein

Mobile Web Appplications Development with HTML5

Introduction to Worklight Integration IBM Corporation

Programming The Mobile Web Ebooks Free

Oracle Real-Time Scheduler

Oracle Mobile Application Framework

The paper shows how to realize write-once-run-anywhere for such apps, and what are important lessons learned from our experience.

Secure Storage and Protecting Data at Rest

Mobile Development With C#: Building Native IOS, Android, And Windows Phone Applications By Greg Shackles READ ONLINE

Transcription:

Multi-platform Mobile App. Development with Apache Cordova MTAT.03.262 2017 Fall Jakob Mass jakob.mass@ut.ee 27.10.2017 MTAT.03.262

Introduction Fragmented market Developers have limited resources Platform Market Capture* Language IDE Market Platform Android 85% Java, Kotlin Android Studio Google Play Store ios 14.7% Objective-C, Swift XCode itunes App Store Windows Phone 0.1% C# with.net Visual Studio Windows Phone Store Others 0.1% - - - * Q1 2017, according to IDC 27.10.2017 MTAT.03.262 2

Cross-Platform Development Principle The alternative to native app development Cross-Platform Tools (CPT) Share a code base between platforms As large as possible develop once, run anywhere Thus, decrease dev. and maintenance cost of applications Can you name any well-known multiplatform technologies? 27.10.2017 MTAT.03.262 3

Web-based CPT UI implemented with HTML + CSS Functionality with Javascript Two hosting/deployment strategies: Normal webpage scenario: Load the application from a remote webserver Hybrid Application: Webpage contained locally on the device, using a web-to-native wrapper Uses Platform s built-in browser engine Can be distributed on the platform s application markets 27.10.2017 MTAT.03.262 4

Alternative CPT approaches While Web-based approach is the most widely used, there are lots of alternative: Interpreted Approach (e.g. Titanium) Cross compiled others [1] (e.g. Xamarin, Mono) [1] El-Kassas, Wafaa S., et al. "Taxonomy of cross-platform mobile applications development approaches." Ain Shams Engineering Journal 8.2 (2017): 163-190. Table: Ciman, M. et al. An empirical analysis of energy consumption of cross-platform frameworks for mobile development, In Pervasive and Mobile Computing, Volume 39, 2017 27.10.2017 MTAT.03.262 5

Comparison of CPT-s Over 100 existing CPT-s! [2]...Which are the best? Development time consumption, learning curve How many platforms does it support? Feature/functionality support and coverage Gestures Native API-s Application performance, UI responsiveness UX, conformance to Native design experience [2] Vision Mobile. Cross-platform developer tools 2012: Bridging the worlds of mobile apps and the web.february, 2012. 1. Dhillon, Sunny & Mahmoud, Qusay. (2013). An Evaluation Framework for Cross-Platform Mobile Application Development Tools. Software: Practice and Experience. 45 2. Matteo Ciman, Ombretta Gaggi, An empirical analysis of energy consumption of cross-platform frameworks for mobile development, In Pervasive and Mobile Computing, Volume 39, 2017, Pages 214-230 3. Xanthopoulos, Spyros, and Stelios Xinogalos. "A comparative analysis of cross-platform development approaches for mobile applications." Proceedings of the 6th Balkan Conference in Informatics. 27.10.2017 MTAT.03.262 6

Apache Cordova aka Phonegap Open-source HTML5, CSS3, and JavaScript Applications You can also use all the common web development libraries such as AngularJS, jquery, jquery mobile Additionally, numerous community-created Cordova plugins execute within wrappers targeted to each platform rely on standards-compliant API bindings to access each device's capabilities such as sensors, data, network status, etc. Large community Contributors to the Apache Cordova project include Adobe, Blackberry, Google, IBM, Intel, Microsoft, Mozilla,... 27.10.2017 MTAT.03.262 7

Apache Cordova Platform Support - https://cordova.apache.org/docs/en/latest/guide/support/index.html 27.10.2017 MTAT.03.262 8

Image: https://cordova.apache.org/docs/en/latest/guide/overview/index.html 27.10.2017 MTAT.03.262 9

Web App Contains: Project files config.xml information about the app and specifies parameters affecting how it works, such as whether it responds to orientation shifts Image: https://cordova.apache.org/docs/en/latest/guide/overview/index.html 27.10.2017 MTAT.03.262 10

Plugins provide an interface for Cordova and native components to communicate with each other and bindings to standard device APIs Core Plugins Maintained by the project 3rd party Plugins Image: https://cordova.apache.org/docs/en/latest/guide/overview/index.html 27.10.2017 MTAT.03.262 11

Plugins provide an interface for Cordova and native components to communicate with each other and bindings to standard device APIs Core Plugins Maintained by the project 3rd party Plugins Image: https://cordova.apache.org/docs/en/latest/guide/overview/index.html 27.10.2017 MTAT.03.262 12

Cordova Development Workflows 2 Approaches: Cross-platform workflow Minimize platform-specific development CLI tool automates a low of tasks for, such as generating the app. binaries for each platform Recommended unless you have a specific need for platform-oriented functionalities Platform-centered workflow Gives you more control per-platform. Enables mixing custom native components with the web-based Cordova components As a downside, you have to manage the build cycles of the platform again! In the following, we will use the first (CLI) approach! 27.10.2017 MTAT.03.262 13

Cordova Dev. Environment Prerequisites: Node.js and NPM installed Cordova CLI: npm install -g cordova SDKs of the platforms you want to build for: - Android SDK - As of 26.10.2017, Cordova supports up to Android API v25 - Android Emulator for testing - ios SDK + Xcode - only runs on the OS X operating system! - For more details: - https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html - https://cordova.apache.org/docs/en/latest/guide/platforms/ios/index.html on Mac you also need: xcode-select --install npm install -g ios-deploy 27.10.2017 MTAT.03.262 14

Create an Android App $cordova create myapp com.mycompany.myapp myapp $ cordova platform add android $ cordova emulate android Project Structure --> 27.10.2017 MTAT.03.262 15

Let s re-create HA1 Slightly simplified Display contacts, send them e-mails First, on Android.. Since we want some functionality that relates to the smartphone platform API (contacts, e-mails), we should incorporate those using plugins. $ cordova plugin add cordova-plugin-contacts $ cordova plugin add cordova-plugin-email https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-contacts/ https://www.npmjs.com/package/cordova-plugin-email 27.10.2017 MTAT.03.262 16

..on ios 27.10.2017 MTAT.03.262 17

Conclusion Great for UI-driven applications without complex, smartphone-oriented functionality Proficiency with web technologies is a must Even with the multi-platform cordova workflow, always be alert for platform-specific quirks not all plugins behave the same on all platforms! CPT-s are still an actively evolving scene! Ionic 27.10.2017 MTAT.03.262 18

Going Further Ionic - platform based around Cordova Packages a lot of useful tools and libraries AngularJS, Cloud Designer https://www.safaribooksonline.com/library/view/learning-ionic/9781783552603/apas02.html 27.10.2017 MTAT.03.262 19

Thanks for your attention! 27.10.2017 MTAT.03.262 20