75

Building cross platform mobile web apps

Embed Size (px)

Citation preview

Page 1: Building cross platform mobile web apps
Page 2: Building cross platform mobile web apps

James Pearce Director, Developer Relations @ jamespearce [email protected]

Page 3: Building cross platform mobile web apps

Sencha

Page 4: Building cross platform mobile web apps

Create amazing apps built on web standards

Page 5: Building cross platform mobile web apps

Web FrameworksToolsLabs

Services

Page 6: Building cross platform mobile web apps

Frameworks

Sencha Touch

Ext JS

Ext GWT

Ext Core

Page 7: Building cross platform mobile web apps

Ext JS

http://www.sencha.com/products/extjs/examples/

Page 8: Building cross platform mobile web apps

Ext JS 4

http://dev.sencha.com/deploy/ChartsDemo/

Page 9: Building cross platform mobile web apps

Ext GWT

http://www.sencha.com/products/extgwt/examples/

+

Page 10: Building cross platform mobile web apps

Ext Core

http://www.sencha.com/products/extcore/MIT

Page 11: Building cross platform mobile web apps

Tools

Ext Designer

Sencha Animator

Page 12: Building cross platform mobile web apps

Ext Designer

http://www.sencha.com/products/designer/

Page 13: Building cross platform mobile web apps

Sencha Animator

http://www.sencha.com/products/animator/demos/

Page 14: Building cross platform mobile web apps

Labs

jQTouch

Raphaël

Connect

InfoVis

PhiloGL

Android tools

http://www.sencha.com/company/

Page 15: Building cross platform mobile web apps

Building Cross-Platform Mobile Web Apps

with

CSSHTML JS

Page 16: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 17: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 18: Building cross platform mobile web apps

2008

We must have aniPhone App!

Page 19: Building cross platform mobile web apps

2009

We must have anAndroid App!

Page 20: Building cross platform mobile web apps

2010

We must have aniPad App!

Page 21: Building cross platform mobile web apps

2011

We must have a...

Page 22: Building cross platform mobile web apps
Page 23: Building cross platform mobile web apps

omfg

Page 24: Building cross platform mobile web apps

PalmMicrosoft

Apple

Android

RIM RIMAndroidAppleMicrosoftPalm

Top U.S. Smartphone Platforms,3 Month Average Ending December 2010comScore MobiLens 2010

Java

J2ME

Air

C++

C#

Obj-C

JS

Page 25: Building cross platform mobile web apps
Page 26: Building cross platform mobile web apps
Page 27: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 28: Building cross platform mobile web apps

Cross-platformFamiliar skills & toolsDecentralizedEasily updatedIndexedWell-understood technologies

The Mobile Web

Page 29: Building cross platform mobile web apps

ApplicationsDocuments

Programmatic DOMDeclarative HTML

APIsThemes

ArgumentsURLs

SynchronizationRequest/Response

Thick clientThin client

The Web is Evolving...

Page 30: Building cross platform mobile web apps
Page 31: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 32: Building cross platform mobile web apps
Page 33: Building cross platform mobile web apps
Page 34: Building cross platform mobile web apps

A New Mobile App Stack

Javascript

Semantic HTML

CSS Styling & Layout

WebFonts Video Audio Graphics

Worker Parallel

Processing

File SystemsDBs

App Cache

x-AppMessaging

Device Access

Camera

Location

Contacts

SMS

Orientation

Gyro

Server & Services

HTTP

AJAX

Events

Sockets

SSL

More...

Page 35: Building cross platform mobile web apps

Rich Media & StylingFull Resource Access

Parallel ProcessingInter-App Communication

Full Offline Capability COMPLETE MODERN APP PLATFORM

Page 36: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 37: Building cross platform mobile web apps
Page 38: Building cross platform mobile web apps
Page 39: Building cross platform mobile web apps
Page 40: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 41: Building cross platform mobile web apps

WebKit FOEs

Page 42: Building cross platform mobile web apps

HTML5 SupportIE 10 PR Chrome 10 Safari 5 Firefox 4 iOS4.31 Playbook Honeycomb

@font-faceCanvasHTML5 Audio & Videorgba(), hsla()border-image:border-radius:box-shadow:text-shadow:opacity:Multiple backgroundsFlexible Box ModelCSS AnimationsCSS ColumnsCSS GradientsCSS ReflectionsCSS 2D TransformsCSS 3D TransformsCSS TransitionsGeolocation APIlocal/sessionStorageSVG/SVG ClippingSMILInline SVGDrag and DrophashchangeX-window MessagingHistory ManagementapplicationCacheWeb SocketsWeb WorkersWeb SQL DatabaseWebGLIndexedDB

Page 43: Building cross platform mobile web apps

Stay on top of diversityCan I Use?http://caniuse.com

Modernizrhttp://modernizr.com

DeviceAtlashttp://deviceatlas.com

Page 44: Building cross platform mobile web apps
Page 45: Building cross platform mobile web apps

ApplicationsDocuments

Programmatic DOMDeclarative HTML

APIsThemes

ArgumentsURLs

SynchronizationRequest/Response

Thick clientThin client

Page 46: Building cross platform mobile web apps

Sencha Touch support

Page 47: Building cross platform mobile web apps

Layouts & components Theming & icons Orientation & animationTouch events & scrollerData packageMVC framework

What’s in Sencha Touch?

Page 48: Building cross platform mobile web apps

Lists - Nested, Grouped, SortableCarouselPickerOverlaySliderForms & fieldsToolbars & buttonsHTML5 - Audio - Video - GeoLocation

Components

Page 49: Building cross platform mobile web apps

Forms

Page 50: Building cross platform mobile web apps

ScrollingMomentum/bounce physics

Hardware accelerated

Throughout all components: - Lists - Carousel - Pickers

Page 51: Building cross platform mobile web apps

Touch EventsBuilt on native events

Abstracted for performance

Additional events - Tap - Double tap - Tap and hold - Swipe - Rotate - Drag & drop

Page 52: Building cross platform mobile web apps

Data PackageModels, Stores, and Proxies - Associations - Validation - Local & server storage

Easily consume web services - JSON/P - XML - YQL

Page 53: Building cross platform mobile web apps

Use CSS3 & SASS - Flexible themes - Highly optimized

Theming

Page 54: Building cross platform mobile web apps

“The Kitchen Sink”

http://sencha.com/x/5e

Page 55: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 56: Building cross platform mobile web apps

Evolving a site for mobile

HTML, CSS...

Models

Controllers

Views

Page 57: Building cross platform mobile web apps

Evolving a site for mobile

Models

Controllers

Mobile

DesktopSw

itch

er HTML, CSS...

Page 58: Building cross platform mobile web apps

A dedicated mobile app

JSON

Models

Controllers

Mobile

DesktopSw

itch

ers

RESTonce

Page 59: Building cross platform mobile web apps

Thematic consistency

http://mysite.com/posts/123

http://mysite.com/#!/posts/123

Page 60: Building cross platform mobile web apps

The stack of the present

Storage

Business logic

User interfacereq/res

Rendering

Page 61: Building cross platform mobile web apps

A stack of the future

Storage

Security Business logic

User interfacesync

Storage

Page 62: Building cross platform mobile web apps

Thick client, thin server

The shortfall in the cloud

Page 63: Building cross platform mobile web apps

http://mysite.com/myimage.png

http://i.tinysrc.mobi/http://mysite.com/myimage.png

Page 64: Building cross platform mobile web apps

Location Services

Image Serving

AnalyticsAdaptation

Video Serving

Data SyncWeb Fonts

Ad Serving

Commerce$

Network APIs

Page 65: Building cross platform mobile web apps

Do we have time forsome code?

Page 66: Building cross platform mobile web apps
Page 67: Building cross platform mobile web apps

http://senchalearn.github.com/seattlebars/

Page 68: Building cross platform mobile web apps

The cloud at work...

Location API to get lat/long

MongoLabs to get city name

Yelp to get businesses

Page 69: Building cross platform mobile web apps

https://github.com/senchalearn/seattlebars

Page 70: Building cross platform mobile web apps
Page 71: Building cross platform mobile web apps

A platform that allows you to author native applicationswith web technologies and get access to device APIs

http://phonegap.com

PhoneGap

Page 72: Building cross platform mobile web apps

Device Access

FileGeolocationMediaNetworkNotificationStorage

AccelerometerCameraCompassContactsDeviceEvents

http://docs.phonegap.com

Page 73: Building cross platform mobile web apps

building( mobile.web().apps([ html5, css3, js ]).crossPlatform() );

Page 74: Building cross platform mobile web apps

Apps vs Web technologybuilt with

Page 75: Building cross platform mobile web apps

James Pearce Director, Developer Relations @ jamespearce [email protected]