mobile development choices: native apps vs. web apps at jax 2011

60
Mobile Development Choices: Native Apps vs. Web Apps Max Katz, Exadel May 4, 2011

Upload: max-katz

Post on 05-Dec-2014

3.895 views

Category:

Technology


0 download

DESCRIPTION

Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011 conference

TRANSCRIPT

Page 1: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Mobile Development Choices: Native Apps vs. Web Apps

Max Katz, Exadel

May 4, 2011

Page 2: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Max Katz

● Senior Systems Engineer at Exadel

● JSF, RichFaces, Java EE consulting, and training

● Manages exadel.org – Exadel's open source projects and community

● Community manager for gotiggr.com – tool for creating and sharing interactive web and mobile HTML prototypes

Page 3: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Author of Practical RichFaces

(Apress)

4

Lead-author of Practical RichFaces, 2/e

(Apress, June 2011)

Summer 2011

Page 4: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Published April 11, 2011

Page 5: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

mkblog.exadel.com

@maxkatz

Page 6: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Exadel is a global software engineering company.● Founded in 1998,

headquarters in San Francisco Bay Area

● 7 development offices in Europe

● 350+ employees

Page 7: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

5

Minsk

Homyel

Kharkov

Donetsk

Ekaterinburg

Moscow

Exadel Offices

Munich

Page 8: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Open Source with JBoss

Page 9: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Exadel Products● Open Source with JBoss

◦ RichFaces

◦ JBoss Tools/JBoss Developer Studio

● exadel.org

◦ Flamingo

◦ Fiji

◦ jsf4birt

◦ JavaFX Plug-in for Eclipse

● gotiggr.com– build and share Web and mobile HTML prototypes

Page 10: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Exadel Services

● Professional services

● Rich enterprise application development

● Eclipse development

● Custom rich component development

● Mobile development

● Training

Page 11: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Building Ajax Applications with JSF 2 and New RichFaces 4

05/05/201110:15-11:15

Page 12: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Source: Flickr photo by sridgway: http://www.flickr.com/photos/stephanridgway/4468403556/

Let's start

Page 13: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Over 4 billion phones in the

world(that's half the

population)

Source: http://www.flickr.com/photos/wwworks/2222523486/

Page 14: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Forecast for total

smartphone sales in 2010: 250,000,000+

Source: http://www.gartner.com/it/page.jsp?id=1434613Source: http://www.flickr.com/photos/wwworks/2222523486/

Page 15: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

By 2013 mobile devices will overtake PCs as the

preferred way of accessing the Internet.

Source: http://www.mobilecommercedaily.com/why-a-mobile-strategy-for-retailers-matters-more-than-ever

Page 16: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

1. Platform

2. App discovery, monetization, support

3. User experience

4. Device features

5. Enterprise development

Page 17: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Source: Flickr photo by markhillary: http://www.flickr.com/photos/markhillary/514555513/

Platforms

Page 18: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Where is Symbian, MeGoo?

(Fragmentation)

Page 19: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Source: Flickr photo by mckaysavage: http://www.flickr.com/photos/mckaysavage/843953060/

App discovery, monetization,

support

Page 20: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

App discovery

● Enter URL or search

● Web stores like Chrome App Store

● Standard App Store by placing the Web app inside a native wrapper (Hybrid App)

● App Store – proven and very popular

Native Web

Page 21: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

App approval

App is published to an App Store; goes through review process before being approved

Instant, no approval process; just enter the URL

Steve can't say no

Native

App approval

Web

Page 22: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

App installation

Downloaded from app market and installed

Open URL in a mobile browser

Create a shortcut on the phone's screen

Native Web

Page 23: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

App update

Updated app goes through review process, then downloaded and installed

No approval process. Just update the mobile web app and everyone gets the new version.

Native Web

Page 24: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

App support, maintenance, adding new features

The more platforms, the more challenging it is

Not uncommon to have different “versions” for iOS and Android

Simple (almost). Write once, deploy anywhere

Native Web

Page 25: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

App monetization

App Store - proven monetization strategy. Works very well

Native

Page 26: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

App monetization

● Each app has its own monetization strategy

● HTML App Store, like Google Chrome Web Store

● Standard App Store – putting apps inside a native wrapper/shell (Hybrid Apps)

● Selling access or token in standard App Store and then getting access to mobile app

Web

Page 27: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Porting to new platform

● Build once, run anywhere (almost)

● Tweak the UI to fit platform

● Difference in browsers and supported features

Native Web● Need to learn another

mobile platform

● Learn platform's UI approach

Page 28: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Source: Flickr photo by jpctalbot: http://www.flickr.com/photos/laserstars/908946494/

User experience

Page 29: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Speed

Faster for some UI functions, especially when heavy graphics are involved

HTML5/JavaScript rendering bring performance “almost” on par with native

Native Web

Page 30: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

User experience

● Very fast

● UI effects

● More developed UI “logic”

● Can be “very good”

● For example, an app like Gmail

● Will continue to improve and get better.

Native Web

Page 31: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Page 32: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Page 33: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

User perception

Many associate mobile apps with native apps today

Will be improvingNative Web

Page 34: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Source: http://www.flickr.com/photos/sanberdoo/510894918/

Devicefeatures

Page 35: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Native Web

Video/audio Built-in HTML5

Off line Possible HTML5

Full screen Built-inHiding browser

address bar

Accelerometer Built-in HTML5

Push Possible Possible (HTML5)

Page 36: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Off line, connectivity

● Speed:

◦ EDGE (slow)

◦ 3G (faster)

◦ 4G (very fast)

◦ WiFi (very fast)

● Users “don't like” to see the browser loading

● More OK with native app loading

Native and Web

Page 37: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Integration with phone services

Full access to phone services:

● Contacts

● Calendar

Limited; but more and more apps get data from the cloud

Do you really need access?

Native Web

Page 38: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Integration with phone hardware

Full integration with phone hardware

● Camera/Video

● GPS

Some support via

HTML5 is now available for camera/video

Native Web

Page 39: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

5

Source:http://www.flickr.com/photos/worldeconomicforum/2889019945/

Enterprise

Page 40: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

● iOS (Objective C)

● Android (Java)

● BlackBerry (Java)

● webOS (HTML/JavaScript)

● Windows Phone (Silverlight, .NET)

Plus, every platform has its own approach to UI development

Native

Developer skills

Page 41: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

HTML, JavaScript, CSS

But, training is needed to adapt exiting HTML/JavaScript/CSS skills to mobile development

Web

Developer skills

Page 42: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Expensive, as still relatively small number of developers master mobile development skills

Native

Cost

Page 43: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

● Can be significantly cheaper

● Large number of developers already posses HTML, JavaScript, CSS skills

● But, some training might be needed to learn how to

develop UI for mobile apps

Cost

Web

Page 44: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Every platform has its own SDK:

● iOS (Objective C)

● Android (Java)

● BlackBerry (Java)

● webOS (HTML/JavaScript)

● Windows Phone (Silverlight, .NET)

Native

Mobile development frameworks

Page 45: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

A number of options available today for building Web mobile apps:

● Take “do it yourself approach”

● Adapt any existing framework to work on mobile web

● jQuery Mobile

● Sencha

Web

Mobile development frameworks

Page 46: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

A number of tools to build hybrid apps:

● Tiggr Mobile (coming up, demo)

● PhoneGap

● Open plug

● Adobe Flex Mobile

● Titanium Appcelerator

● Corona SDK

Hybrid

Mobile development frameworks

Page 47: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Existing infrastructure could be reused but also need service layer to communicate between client (mobile) and server

● REST

● SOAP

● Hessian

● Protocol Buffers

Native

Server integration

Page 48: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

For the most part, existing infrastructure can be reused

Web

Server integration

Page 49: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Time to market

● Slow, unless have access to experts

● Need strong experts; hard to find

● Number of platforms supported

● Can be fast

Native Web

Page 50: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

http://gotiggr.com

Page 51: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

● Build and share interactive HTML prototypes

● Highly-interactive, define events/actions

● View, test in any browser, get feedback

Tiggr Prototypes Tiggr Mobile● First of a kind, Web-

based IDE for building and deploying hybrid mobile apps

● Connect and invoke remote services

Page 52: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Tiggr Mobile Demo*http://gotiggr.com

*Preview version

Page 53: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Device Access

Speed App Store ApprovalUpdate,

new features

Cost

Full Very fast Available RequiredCan be

challenging$$$

Some Fast Possible None Easy $

Native

Web

Page 54: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Device Access

Speed App Store ApprovalUpdate,

new features

Cost

Full Very fast Available RequiredCan be

challenging$$$

FullCan be

very fastAvailable Required Easy $

Some Fast Possible None Easy $

Native

Web

Hybrid

Page 55: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

● Does everything need a native app? “App overload”

● Do you want users to download an app for anything they do on mobile devices?

◦ Not uncommon to download and never use an app

● Do you need access to device features?

Other things to consider

Page 56: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Source: http://www.flickr.com/photos/drachmann/327122302/

Anything I missed?

Page 57: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

● Games

● Full access to device features

● Very high performance

● Specialized apps with rich graphics

● Targeting just one platform

● Off line

● Support all or most platforms

● Easy update, maintenance

● Time to market

● Cost

Native Web/Hybrid

Page 58: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

There is no right answer.

Flickr photo by faungg: http://www.flickr.com/photos/44534236@N00/3255156612/

> Target audience

> App features

> Resources (skills, time, money)

> Mobile platforms

Page 59: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

Flick photo by Arts Comments: http://www.flickr.com/photos/artcomments/382732967/

History repeats itself?

Page 60: Mobile Development Choices: Native Apps vs. Web Apps at JAX 2011

Exadel

mkblog.exadel.com

@maxkatz

[email protected]

gotiggr.com

Thank you!