23
Mobile App Development CSE 3203 Overview of Mobile Systems Jack G. Zheng Fall 2018

Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Mobile App Development

CSE 3203

Overview of Mobile Systems

Jack G. ZhengFall 2018

Page 2: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Content Overview

• Development choices

• Platforms and tools

• App development frameworks

• Services

2

Page 3: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

App Development Considerations

• Platform– A platform defines and supports all major app features and activities

– Usually includes hardware and operating systems

– Sometimes also includes application development and management frameworks

– Major mobile platforms: Android, Apple (iOS), Windows (mainly laptops)

• Development tools and frameworks. These include:– Programming language

– SDK (run time, compilers, etc.)

– Code editor or IDE

– App frameworks

– Libraries and services

• App distribution/update methods– App store: including official app store and third party app store

– Direct internet access or download

3

Page 4: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

App Development Choices

• Platform native app– These apps can only run on its target platform. The

development tools and frameworks for each platform is different and no compatible.

– Major development platforms: Android, Apple iOS, Windows

• Cross platform– Cross platform apps can run on multiple platforms

using one set of development tools and frameworks.

– Further categorized as • Cross platform native app

• Hybrid web app

• Web app (app like website) or mobile friendly website

4

Page 5: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Mobile App Development Options

5

https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:

_Understanding_Your_Mobile_Application_Development_Options

A program designed to run directly on a specific mobile operating system.

A web based application that runs in any web browser especially that designed for mobile devices.

Applications developed using Web development technologies and wrapped in a mobile app container

* New to the diagram: cross-platform native app

Page 6: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Optionshttp://www.telerik.com/blogs/everything-you-wanted-to-know-about-native-hybrid-and-web-apps-but-were-afraid-to-askhttp://www.sitepoint.com/native-hybrid-or-web-apps/http://www.ymedialabs.com/hybrid-vs-native-mobile-apps-the-answer-is-clear/

Comparison of the Three Development Options

Native Apps Mobile Web Hybrid

Device

features

Can fully utilize platform/OS

features if allowed, such as

GPU, camera, location,

sensors, and interactions

with file systems and other

apps.

Access to devices features

are limited to the browser

environment.

Can utilize platform/OS

features if provided by the

SDK, which are usually

provided as JavaScript

APIs.

UX/UI Best; smooth interaction as

UI is very responsive. Rich

interactivity and advance

graphics.

Not as good as native app;

may have delays.

Looks like an app, but may

have performance issues.

Development

Platform

Applications are platform

dependent. They have to be

written and/or compiled to a

specific OS*. Example:

- Andriod (Java) ( Android )

- iOS (Objective C, Swift)

- Windows (.Net, C#)

- * Xamarin (all)

Web applications are cross

platform and can use standard

languages such as

HTML/CSS/JavaScript.

Programs runs in browsers,

although they may have

slightly differences in different

browsers.

Hybrid applications are

developed using standard

web technologies, but

complied to each specific

platform.

Distribution /

Installation

App Store, or direct

downloaded; need

installation

Web; no installation App Store, or direct

downloaded; need

installation

Page 7: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

How to Choose?

• Purpose of the app: does it use full OS and device support? Does it need active user interaction and performance, or reading focused?– Application complexity

– Richness/response of user interactivity

– Performance

– Device/OS feature access

• Installation and maintenance

• Platform target/requirement

• Development expertise and cost (including testing and maintenance effort)

7

Page 8: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

App or Web?

8

http://arc.applause.com/2015/09/2

8/digital-strategy-apps-vs-web/

I like to think of this way. The

mobile web is the window of

your store. Users window shop

on your mobile website.

Getting them to download and

install and use your mobile

app is like getting them to

come into the store. And that’s

where the action is long term.

Page 9: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

9

https://www.scnsoft.com/bl

og/mobile-web-app-types

Page 10: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Native Apps

• They’re great for frequent, heavy use tasks

like communicating with friends, family, and

colleagues — something we do multiple times

a day, every day.

• Apps like Snapchat, WhatsApp, and

Facebook Messenger need to access

cameras, microphones, and the OS directly.

10

Page 11: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Native App Development

11

http://shrinidhikaranth.blogspot.com/2015/01/comparison-between-mobile-platforms-for.html

http://www.androidauthority.com/developing-for-android-vs-ios-697304/

http://whallalabs.com/mobile-application-development-ios-vs-android-vs-windows-phone/

Page 12: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

iOS App

• Language: Objective C, Swift

• IDE: Xcode

• Distributed through Apple App Store only

12

Page 13: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Android App Development

• Language:

– Java: primary android development language.

– Kotlin: language from JetBrains which received first-party support from Google, announced in Google I/O 2017 https://www.androidauthority.com/kotlin-android-introduction-775678/

• IDE

– Android Studio: the official IDE from Google, based on IntelliJ IDEA. https://developer.android.com/studio/

– Eclipse: This open source IDE is the second most popular in the world https://www.developer.com/products/android-IDEs/eclipse-android-programming-ide-overview.html

13

Page 14: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Universal Windows Platform

• The Universal Windows Platform (UWP) is

the app platform for Windows 10. You can

develop apps for UWP with just one API set,

one app package, and one store to reach all

Windows 10 devices – PC, tablet, phone,

Xbox, HoloLens, Surface Hub and more.

• https://docs.microsoft.com/en-

us/windows/uwp/get-started/whats-a-uwp

14

Page 15: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Cross Platform App

• Advantages

– Greater reach

– Cost/effort effective

– Easier deployment/distribution/maintenance

• Types

– Web app (app like website) or mobile friendly

website

– Hybrid web app

– Cross platform native app

15

Page 16: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Mobile Web Dev Platform

• Major tools: web tech stack– Front end: HTML 5, CSS, JavaScript

– Back end: PHP, Java, ASP.Net, etc.

• Standardize mobile web development– Eliminates the need to create, maintain, and support apps for different

mobile platforms (native platforms)

• HTML 5 has provided a set of features and tools for building mobile apps– Mobile friendly tags – activate relevant phone features

– JavaScript APIs to devices features• Geolocation, Offline

• Web storage

• Touch events

• Drawing

16

<a href="tel:+14155557777">Order Pizza Now!</a>

<a href="sms:+14155558888?body=Hello">Text me!</a>

Page 17: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Hybrid Web Apps

• Hybrid apps are apps developed based on the web technologies (HTML, CSS, JavaScript) and wrapped in a platform specific native container– Similar to Java and .Net’s vision of Write-Once-Run-Anywhere

– Device features are exposed through JavaScript API

– The execution of the app relies on the browser engine of the OS it is installed in

• Gartner Says by 2016, More Than 50 Percent of Mobile Apps Deployed Will be Hybrid– http://www.gartner.com/newsroom/id/2324917

• Major framework: – Apache Cordova

– PhoneGap

– Appcelerator Titanium

– IBM MobileFirst

17

Page 18: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Cross-Platform Native App

• This solution uses a common development environment for all platforms, but wraps (compiles) them to a target platform.

– Wrapping all native OS libraries

– Similar to hybrid, but the apps are native apps, not relying on browser engines.

• Example development framework– Xamarin: Using C# and .Net for development

https://visualstudio.microsoft.com/vs/features/mobile-app-development/

– React Native https://facebook.github.io/react-native/

– https://www.altexsoft.com/blog/engineering/xamarin-vs-react-native-vs-ionic-cross-platform-mobile-frameworks-comparison/

• Is Xamarin hybrid?– The short answer is no.

– https://www.quora.com/Is-Xamarin-hybrid-development

– http://www.cygnet-infotech.com/blog/phonegap-or-titanium-or-xamarin-which-cross-platform-should-you-choose

• Others– http://www.appcelerator.com

– http://monocross.net

18

Page 19: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Application Framework

• The main aim of frameworks is to increase productivity by reducing efforts which eventually saves lot of time for developers to resolve any other important issues in the app or game. These frameworks provides inbuilt tools for developers to work instantly on difficult and lengthy part of coding.

• Vendor frameworks– Android SDK

– Cocoa Touch

• Major third party frameworks– Ionic

– jQuery mobile: http://jquerymobile.com

– Sencha Touch

– Titanium Appcelerator

– Framework7

– More: http://mobile-frameworks-comparison-chart.com

19

Page 20: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Services and Service Providers

• Mobile backend as a service (MBaaS), also known as "backend as a service" (BaaS) is a model for providing web app and mobile app developers with a way to link their applications to backend cloud storage and APIs exposed by back end applications while also providing features such as user management, push notifications, and integration with social networking services.

• Top providers– Kinvey

– Sencha

– Parse

– Azure https://docs.microsoft.com/en-us/azure/app-service-mobile/

20

Page 21: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Some services provided by cloud

based• Connect to your enterprise systems:

• Authentication and authorization: Support for identity providers, including Azure Active Directory for enterprise authentication, plus social providers such as Facebook, Google, Twitter, and Microsoft accounts. Mobile Apps offers an OAuth 2.0 service for each provider. You can also integrate the SDK for the identity provider for provider-specific functionality.

• Discover more about the authentication features.

• Data access: Mobile Apps provides a mobile-friendly OData v3 data source that's linked to Azure SQL Database or an on-premises SQL server. Because this service can be based on Entity Framework, you can easily integrate with other NoSQL and SQL data providers, including Azure Table storage, MongoDB, Azure Cosmos DB, and SaaS API providers such as Office 365 and Salesforce.com.

• Offline sync: The client SDKs make it easy to build robust and responsive mobile applications that operate with an offline dataset. You can sync this dataset automatically with the back-end data, including conflict-resolution support.

• Discover more about the data features.

• Push notifications: The client SDKs integrate seamlessly with the registration capabilities of Azure Notification Hubs, so you can send push notifications to millions of users simultaneously.

• Discover more about the push notification features.

21

Page 22: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Want to be an app developer?

• https://www.coursereport.com/blog/ultimate-

guide-to-mobile-development-bootcamps

22

http://www.businessofapps.com/guide/ios-android-developer-salary/

Page 23: Mobile App Development - Kennesaw State Universityksuweb.kennesaw.edu/~mhan9/ALG/it4323/3203/m5-appdev... · 2018-09-19 · • Platform native app –These apps can only run on its

Good Resources• Native, HTML5, or Hybrid

– https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Options

– https://www.mobiloud.com/blog/native-web-or-hybrid-apps/

– http://cacm.acm.org/magazines/2011/5/107700-mobile-application-development/fulltext

– https://www.cleveroad.com/blog/native-or-hybrid-app-development-what-to-choose

– http://inoutput.io/articles/development/choosing-the-right-mobile-app-for-your-project-native-vs-cross-platform-vs-hybrid

– http://www.sitepoint.com/native-hybrid-or-web-apps/

– https://readwrite.com/2015/02/27/native-vs-web-apps-ceasefire/

– http://www.ymedialabs.com/hybrid-vs-native-mobile-apps-the-answer-is-clear/

– http://gigaom.com/2012/12/19/why-the-mobile-web-vs-apps-debate-is-a-false-dichotomy/

• iOS app development vs. Android– https://thetool.io/2018/mobile-app-development-ios-vs-android

• http://mobile-frameworks-comparison-chart.com/

• https://dzone.com/mobile-app-developer-tutorials-tools-news

• Development process:– https://www.techinasia.com/talk/complete-overview-mobile-app-development-process-infographic

– https://thebhwgroup.com/blog/mobile-app-development-process

23