mobile app development 101

25
MOBILE APP DEVELOPMENT 101 BY VŨ ĐỨC TUYẾN @KANVUDUC

Upload: tuyen-vu-duc

Post on 13-Feb-2017

558 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Mobile App Development 101

MOBILE APP DEVELOPMENT 101

BYVŨ ĐỨC TUYẾN

@KANVUDUC

Page 2: Mobile App Development 101

AGENDA

• OPENING• NATIVE APP DEVELOPMENT• HYBRID APP DEVELOPMENT• XAMARIN APP DEVELOPMENT• REACT-NATIVE APP DEVELOPMENT• TESTING• UX• RESOURCES

Page 3: Mobile App Development 101

OPENING

View NewsfeedPost new StatusView Profile

… Access data through API

Allow user to pick gallery imageAllow user to pick locationAllow offline working

…Run on multiple platforms

Page 4: Mobile App Development 101

OPENNING – APP ARCHITECTUREPr

esen

tati

onLa

yer

View

Model Controller

Busi

ness

Laye

r

BusinessWorkflow

BusinessComponents

Application Facade

BusinessEntities

Data

Acc

ess

Laye

r DB AccessComponents

API AccessComponents

CROS

S-CU

TTIN

G

Securi

ty

Logg

ing

Exce

ptio

n Hand

ling

Page 5: Mobile App Development 101

NATIVE

• USE PROGRAMMING LANGUAGE NATIVE TO THE DEVICE AND THE OS• OBJECTIVE-C/SWIFT TO DEVELOP IOS APP• JAVA TO DEVELOP ANDROID APP

• USE DEVELOPMENT TOOLS NATIVELY PROVIDED BY THE OS MANUFACTURERS• XCODE IS THE IDE TO DEVELOP IOS APP• ANDROID STUDIO IS THE IDE TO DEVELOP ANDROID APP

Page 6: Mobile App Development 101

APP

View

Model Controller

BusinessWorkflow

BusinessComponents

Application Facade

BusinessEntities

DB AccessComponents

API AccessComponents

Secu

rity

Loggin

g

Except

ion Ha

ndling

UIKitAndroid View

UIViewControllerActivity

Page 7: Mobile App Development 101

APP

Model

BusinessWorkflow

BusinessComponents

Application Facade

BusinessEntities

DB AccessComponents

API AccessComponents

Secu

rity

Loggin

g

Except

ion Ha

ndling

UIKit Android View

UIViewController Activity

iOS Android

Page 8: Mobile App Development 101

NATIVE - TOOLS

Page 9: Mobile App Development 101

NATIVE

PROS• FLUID USER INTERFACE• GREAT USER EXPERIENCE• GREAT PERFORMANCE• FULL CUSTOMIZATION AND ACCESS

CONS• NO CODE SHARING ACROSS

PLATFORMS• NEEDS TOTALLY INDEPENDENT TEAMS • MORE TIME ON TESTING & BUG

FIXING• MORE MAINTENANCE COST

Page 10: Mobile App Development 101

HYBRID

• BUILD UP APP USING HTML5/CSS3 & JAVASCRIPT• ACCESS DEVICE AND OS FEATURE VIA NATIVE WRAPPER

Page 11: Mobile App Development 101

APP

WEBVIEW

Model

BusinessWorkflow

BusinessComponents

Application Facade

BusinessEntities

DB AccessComponents

API AccessComponents

Securi

ty

Logg

ing

Exce

ptio

n Hand

ling

View

Controller

NATIVE WRAPPER

Accelerometer Contacts

Camera Geolocation

Media Network

Storage …

Page 12: Mobile App Development 101

HYPRID APP DEVELOPMENT - TOOLS

Page 13: Mobile App Development 101

HYBRID

PROS• WRITE ONCE, RUN ANYWHERE• LESS DEVELOPMENT TIME• SINGLE TEAM• EASE OF UPDATE

CONS• LACK OF PLATFORM EXPERIENCE• STILL NEEDS NATIVE STUFF • NOT VERY FLUID UI• NOT VERY GOOD PERFORMANCE

Page 14: Mobile App Development 101

XAMARIN

ANYTHING YOU CAN DO IN OBJECTIVE-C, SWIFT, OR JAVA CAN BE DONE IN C# WITH XAMARIN USING VISUAL STUDIO

Page 15: Mobile App Development 101

APP

Model

BusinessWorkflow

BusinessComponents

Application Facade

BusinessEntities

DB AccessComponents

API AccessComponents

Secu

rity

Logg

ing

Except

ion Ha

ndling

UIKit Android View

UIViewController Activity

iOS Android

Page 16: Mobile App Development 101

XAMARIN - TOOLS

Page 17: Mobile App Development 101

XAMARIN

PROS• ALL NATIVE PROS• SINGLE LANGUAGE/TOOL• SINGE TEAM• FREE & POWERED BY MICROSOFT

CONS• BIGGER APP SIZE• TOOLS NOT AS GOOD AS NATIVE

Page 18: Mobile App Development 101

REACT NATIVE

BUILD A REAL MOBILE APP THAT'S INDISTINGUISHABLE FROM AN APP BUILT USING OBJECTIVE-C OR JAVA. REACT NATIVE USES THE SAME FUNDAMENTAL UI BUILDING BLOCKS AS REGULAR IOS AND ANDROID

APPS. YOU JUST PUT THOSE BUILDING BLOCKS TOGETHER USING JAVASCRIPT AND REACT.

Page 19: Mobile App Development 101

APP

UIKit

Wrapper Class

iOSAndroid View

Wrapper Class

Android

Model

BusinessWorkflow

BusinessComponents

Application Facade

BusinessEntities

DB AccessComponents

API AccessComponents

Securi

ty

Logg

ing

Exce

ptio

n Ha

ndling

Controller

React View

JavaScript Engine

APP

Model

BusinessWorkflow

BusinessComponents

Application Facade

BusinessEntities

DB AccessComponents

API AccessComponents

Securi

ty

Logg

ing

Exce

ption

Handli

ng

UIKit Android View

UIViewController Activity

iOS Android

Page 20: Mobile App Development 101

REACTIVE - TOOLS

Page 21: Mobile App Development 101

REACT NATIVE

PROS• ALL NATIVE PROS• SINGLE LANGUAGE/TOOL• SINGE TEAM• FREE & POWERED BY FACEBOOK

CONS• A LITTLE BIGGER APP SIZE• TOOLS NOT AS GOOD AS NATIVE• MIX OF NATIVE & JAVASCRIPT• NO NATIVE ACCESS FROM JAVASCRIPT

Page 22: Mobile App Development 101

TESTING

• UNIT TEST IS DEFAULT• AUTOMATION TEST IS A MUST

• > 4000 ANDROID UNIQUE DEVICES• ~10 IOS DEVICES

Page 23: Mobile App Development 101

UX

Page 24: Mobile App Development 101

RESOURCES

Page 25: Mobile App Development 101

THANK YOU!