45
Cross-platforms for Mobile Development Vũ Phượng Hoàng 08/2013

Cross platform mobile approaches

Embed Size (px)

DESCRIPTION

Comparison between cross-platforms methods for mobile development: WebApp, PhoneGap, Titanium, Xamarin, Applause!

Citation preview

Page 1: Cross platform mobile approaches

Cross-platforms for Mobile Development

Vũ Phượng Hoàng 08/2013

Page 2: Cross platform mobile approaches

Content

• What is cross-platforms development?

• Why do we need cross-platforms?

• How to go with cross-platforms?

• Comparisons

• Conclusions

• Q & A

• Resources

Page 3: Cross platform mobile approaches

What is cross-platforms development?

• Develop for multiple platforms

• Simultaneous (or not)

• Mobile platforms:

• Android

• iOS

• Windows Phone

Page 4: Cross platform mobile approaches

Why do we need cross-platforms?

• More customers, more $$$

• Short time to market

• Synchronization

• Simpler workflow

• Can be less headache for developers?

Page 5: Cross platform mobile approaches

How to go with cross-platforms?

Page 6: Cross platform mobile approaches

Plan Business Logic

Code

Compile

Test

Deploy

When do cross-platforms participate?

Page 7: Cross platform mobile approaches

Plan Business Logic

Code

Compile

Test

Deploy

When do cross-platforms participate?

Web App

Hybrid App

Interpreted App

Page 8: Cross platform mobile approaches

Plan Business Logic

Code

Compile

Test

Deploy

When do cross-platforms participate?

Web App

Hybrid App

Interpreted App

Cross-Compiled App

Page 9: Cross platform mobile approaches

Plan Business Logic

Code

Compile

Test

Deploy

When do cross-platforms participate?

Web App

Hybrid App

Interpreted App

Cross-Compiled App

Generated App

Page 10: Cross platform mobile approaches

Java Code-Base Objective C Code-Base C# Code-Base

(Java) Binary (Objective C) Binary (C#) Binary

Back-End

compile compile compile

Native App

Eclipse XCode Visual Studio

Android iOS Windows Phone

Page 11: Cross platform mobile approaches

Native App Workflow

You must develop each by each platform…

Page 12: Cross platform mobile approaches

Eclipse

Code in Android SDK Build Setup UI

Test

Native App Workflow

Page 13: Cross platform mobile approaches

Eclipse

Code in Android SDK Build Setup UI

Test

XCode (Must be in MAC OS)

Code in iOS SDK Build Setup UI

Test

Native App Workflow

Page 14: Cross platform mobile approaches

Eclipse

Code in Android SDK Build Setup UI

Test

XCode (Must be in MAC OS)

Code in iOS SDK Build Setup UI

Test

Visual Studio (Must be in Windows)

Code in WP SDK Build Setup UI

Test

Native App Workflow

Page 15: Cross platform mobile approaches

Now, let’s have a look at cross-platforms methods!

Page 16: Cross platform mobile approaches

Plan Business Logic

Code

Compile

Test

Deploy

Cross-platforms at “Code” stage

Web App

Hybrid App

Interpreted App

Page 17: Cross platform mobile approaches

Browser

Common Front-End

Common UI

Back-End

use

render

Resources @ Server

Server-side WebApp (Normal Website)

Android iOS Windows Phone

Page 18: Cross platform mobile approaches

Eclipse

Code in Javascript Build Setup UI

Test

Test

Test

Test & Tweak

Server-side WebApp Workflow

Page 19: Cross platform mobile approaches

Client-side WebApp (Local HTML files)

Browser

Common Front-End

Common UI

Back-End

use

render

Resources @ Local

Android iOS Windows Phone

• How to make it

look like Native?

Page 20: Cross platform mobile approaches

Browser

Front-End (e.g: )

Back-End

use

render

Resources @ Local

Client-side WebApp (Local HTML files)

Android iOS Windows Phone

Android UI iOS UI Windows Phone UI

Page 21: Cross platform mobile approaches

Eclipse

Code in Build Setup UI

Test

Test

Test

Test & Tweak

Client-side WebApp Workflow

Page 22: Cross platform mobile approaches

Problems with WebApp

• Home screen shortcut?

• Native access?

Native

Web View (Browser)

Back-End

Javascript Code-Base

compile

Page 23: Cross platform mobile approaches

Wrapper (e.g

PhoneGap)

Web View (Browser)

Back-End

Java Library

Objective C Library

C# Library

Javascript Code-Base

use

use

use

compile

Javascript Bridge

use

Hybrid App (Website in a wrapper)

Android

iOS

Windows Phone

Page 24: Cross platform mobile approaches

Hybrid App Workflow

Eclipse

Code in Setup UI

Test

Test

Test

Test & Tweak

Test

Ripple

Build

Build

Build

Page 25: Cross platform mobile approaches

Eclipse

Code in Setup UI

Test

Test

Test

Test & Tweak

Test

Ripple

Download

Hybrid App Workflow (More convenient build version)

PhoneGap Build

Page 26: Cross platform mobile approaches

Javascript (or Lua) Code-Base

Java Bridge Objective C Bridge C# Bridge

Back-End

Abstract Layer

(e.g: )

use

use use use

Interpreted App (Abstract API Layer)

Android iOS Windows Phone

Page 27: Cross platform mobile approaches

Titanium Studio (Eclipse-based)

Code in Setup UI

Test

Test

Test

Build

Build

Build

Interpreted App Workflow

Page 28: Cross platform mobile approaches

Cross-platforms at “Compile” stage

Plan Business Logic

Code

Compile

Test

Deploy

Cross-Compiled App

Page 29: Cross platform mobile approaches

Cross-compiled App (Multiple Compilers)

This is what they advertise …

Page 30: Cross platform mobile approaches

C# code

(Java) Binary (Objective C) Binary (C#) Binary

Back-End

Android Compiler iOS Compiler WP Compiler

compile compile compile

Cross-compiled App (Multiple Compilers)

Android iOS Windows Phone

Page 31: Cross platform mobile approaches

Cross-compiled App (Multiple Compilers)

And this is what I had to do…

Page 32: Cross platform mobile approaches

Shared C# code

(Java) Binary (Objective C) Binary (C#) Binary

Back-End

Android Compiler

(e.g Xamarin.Android)

iOS Compiler

(e.g Xamarin.iOS)

WP Compiler

compile compile compile

C# Code for Android C# Code for iOS C# Code for WP

use use use

Cross-compiled App (Multiple Compilers)

Android iOS Windows Phone

Page 33: Cross platform mobile approaches

Xamarin Studio (Visual Studio-based)

Code Shared C# Setup UI

Test

Test

Test

Build Code in C#

Xamarin.Android

Re-use Shared C# Setup UI Build Code in C#

Xamarin.iOS

Re-use Shared C# Setup UI Build Code in C#

Normal C#

Cross-compiled App Workflow

Page 34: Cross platform mobile approaches

Plan Business Logic

Code

Compile

Test

Deploy

Generated App

Cross-platforms at “Logic” stage

Page 35: Cross platform mobile approaches

Java Code-Base Objective C Code-Base C# Code-Base

(Java) Binary (Objective C) Binary (C#) Binary

Back-End

Business Logic

Generated App (Code Generator)

Android iOS Windows Phone

Android iOS Windows Phone

• Why not utilize “Business Logic”?

compile compile compile

Page 36: Cross platform mobile approaches

Java Code-Base Objective C Code-Base C# Code-Base

(Java) Binary (Objective C) Binary (C#) Binary

Back-End

Code Generator

(e.g: Applause)

Model (DSL)

Generated App (Code Generator)

Android iOS Windows Phone

Android iOS Windows Phone

compile compile compile

Page 37: Cross platform mobile approaches

Generated App Workflow

XText (Eclipse-based)

‘Code’ in Setup UI

Test

Test

Test

Build

Build

Build

Page 38: Cross platform mobile approaches

Method SDK Native Access

Perfor-mance

Off -line

Sync Human

Resource Tools Time Ease

Native App #1 #1 #1 #6 3 teams Free? 3 unit #2

Web App Sencha iUI

#6 #5 #6? #1 1 team Free 1 unit #1

Hybrid App

PhoneGap Flash Trigger.IO

#3 #5 #5 #2 1,5 team Free 1,5 unit #3

Interpreted App

Titanium RhoMobile

#3 #4 #1 #5 1,5 team Free? 1,5 unit #4

Cross Compiling App

Xamarin Marmalade

Strawberry

#3 #3 #1 #2 1,5 team $$$ 1,5 unit #5

Generated App

Applause #2 #2 #1 #2 1 team

+ 3 teams Free

1 unit + 3 unit

#6

Comparisons

Page 39: Cross platform mobile approaches

Comparisons – Who uses which?

• Native App:

• Web App:

• Hybrid App:

• Interpreted App:

• Cross-Compiled Game:

• Generated App:

Page 40: Cross platform mobile approaches

Comparisons – Demo Statistics (Lower is better)

0

5000

10000

15000

20000

25000

30000

35000

Native App

Server-side Web App

Client-side Web App

PhoneGap

Titanium

Page 41: Cross platform mobile approaches

Native App Web App PhoneGap Titanium

Native Access Full API None Depend on framework Depend on framework

Performance Best Worst – Depend on browser

Worst – Depend on browser

Good

Cost Depend on # of platforms

1 team + quick development

1 team + quick development

1 team but Coded UI?

Doc & Support Full documentations Large communities

Full documentation Largest communities

Good documentation Open forum

Have documentation Open forum

GUI Design Acceptable Great & Many Great & Many 25$ for ForgedUI 20$ for VisualUI

Test Has debugging tools Has profiling tools

Great debugging tools Great profiling tools

Great debugging tools Great profiling tools

Has debugging tools Has profiling tools

Short list

Page 42: Cross platform mobile approaches

Conclusion (Now what?)

• Cross-platforms for developing mobile

applications are not mature yet

• Wise choices:

• Web App for simple products (prototype?)

• Native App for complex products

• Hybrid App for existed Web App

• Interpreted App is the market shortcut

Page 43: Cross platform mobile approaches

• Q: How about native libraries? A: Plugin Bridge for Cordova-based frameworks (OTT application demo) Titanium Modules for Titanium

• Q: Can I trust them? A: Behind PhoneGap is Adobe Titanium is trusted by ebay, Mitsubishi Xamarin is managed by GNOME co-founders

• ...

Q & A

Page 45: Cross platform mobile approaches

Thank you for listening!

[email protected]