49
Using the Sencha Touch for Building Cross-Platform HTML5 Mobile Applications Presented By: Mukul Seth

Sencha Touch Intro - Toronto HTML5 User Group

Embed Size (px)

Citation preview

Page 1: Sencha Touch Intro - Toronto HTML5 User Group

Using the Sencha Touch for Building Cross-Platform HTML5 Mobile

Applications

Presented By:Mukul Seth

Page 2: Sencha Touch Intro - Toronto HTML5 User Group

Agenda

› Who we are and what we do› The Current HTML5/CSS3 Landscape› Why Sencha Touch?

› Getting Started › Working with Views – Demo› Working with Data – Demo

› Q/A

Page 3: Sencha Touch Intro - Toronto HTML5 User Group

Who we are

Page 4: Sencha Touch Intro - Toronto HTML5 User Group

Our Expertise

› Browser - HTML5, Branded Websites› iOS – Mobile and Tablet› Android – Mobile and Tablet› Windows Phone 7, Windows Tablet› BB6, BB7, PlayBook, WebKit, AIR, QNX› Microsoft Xbox Kinect› Google TV› more…

Page 5: Sencha Touch Intro - Toronto HTML5 User Group

In other words..

›Everything!

Page 6: Sencha Touch Intro - Toronto HTML5 User Group

Some of our clients

Page 7: Sencha Touch Intro - Toronto HTML5 User Group

MSN Video Portal (Win7 Slate)

Page 8: Sencha Touch Intro - Toronto HTML5 User Group

CBC Elections Map (iPad)

Page 9: Sencha Touch Intro - Toronto HTML5 User Group

McCain Menu Advantage (PlayBook)

Page 10: Sencha Touch Intro - Toronto HTML5 User Group

›What do these apps have in common?

Ans. __________

Page 11: Sencha Touch Intro - Toronto HTML5 User Group

›What do these apps have in common?

Ans. HTML5/CSS3

Page 12: Sencha Touch Intro - Toronto HTML5 User Group

HTML5/CSS3

Page 13: Sencha Touch Intro - Toronto HTML5 User Group

HTML5/CSS3

Page 14: Sencha Touch Intro - Toronto HTML5 User Group

Enter: Sencha Touch

Page 15: Sencha Touch Intro - Toronto HTML5 User Group

Why Sencha Touch?

Cross-platformFaster, cheaper, easier

Highly customizable

Page 16: Sencha Touch Intro - Toronto HTML5 User Group

Cross-platform

Page 17: Sencha Touch Intro - Toronto HTML5 User Group

Kitchen Sink Example

Page 18: Sencha Touch Intro - Toronto HTML5 User Group

Sample Apps

Page 19: Sencha Touch Intro - Toronto HTML5 User Group

API Documentation

Page 20: Sencha Touch Intro - Toronto HTML5 User Group

Skinning Engine

Page 21: Sencha Touch Intro - Toronto HTML5 User Group

LET’S GET READY TO…Demo Application

Page 22: Sencha Touch Intro - Toronto HTML5 User Group

LET’S GET READY TO…

FOOSBRAWL!Demo Application

Page 23: Sencha Touch Intro - Toronto HTML5 User Group

Demo Application

http://github.com/Digiflare/foosbrawl

Page 24: Sencha Touch Intro - Toronto HTML5 User Group

FOOSBRAWLIN’

Page 25: Sencha Touch Intro - Toronto HTML5 User Group

Getting Started

› What makes a Sencha Touch Application?› index.html› App.js› sencha touch libs (js files)› sencha touch resources (images/css/etc…)› Your js/css files and other assets(images, fonts,

etc…)

Page 26: Sencha Touch Intro - Toronto HTML5 User Group

index.html

Page 27: Sencha Touch Intro - Toronto HTML5 User Group

App.js

Page 28: Sencha Touch Intro - Toronto HTML5 User Group

Sencha Touch Libs and CSS

Page 29: Sencha Touch Intro - Toronto HTML5 User Group

Working with Views

› Sencha Touch UI Controls› UI Control Creation› UI Control Definitions› UI Control Customization› Container Layout Types› Method and property overrides› Sencha Touch Kitchen Sink

› One of your best friends. ;)

Page 30: Sencha Touch Intro - Toronto HTML5 User Group

Sencha Touch UI Controls

› Component – Essentially an HTML Container› Panel – Complex container, supports child items› List – Most commonly used DataView control› Button – pretty self-explanatory› TabPanel – A specialized panel, allows to easily

switch between child items using Tabs› Carousel – A specialized panel, allows to easily

switch between child items using swipe gestures› and more….

Page 31: Sencha Touch Intro - Toronto HTML5 User Group

UI Control Creation

Ext.create Shorthand equivalent

Page 32: Sencha Touch Intro - Toronto HTML5 User Group

UI Control Definition

Page 33: Sencha Touch Intro - Toronto HTML5 User Group

View/Control Customization

Page 34: Sencha Touch Intro - Toronto HTML5 User Group

Layout Types

fit card

Page 35: Sencha Touch Intro - Toronto HTML5 User Group

Card-based Controls

TabPanel Carousel

Page 36: Sencha Touch Intro - Toronto HTML5 User Group

Layout Types – cont’d

vbox hbox

Page 37: Sencha Touch Intro - Toronto HTML5 User Group

Vbox & Hbox Layouts - Flex

flex config config defaults

Page 38: Sencha Touch Intro - Toronto HTML5 User Group

Method Overrides

Page 39: Sencha Touch Intro - Toronto HTML5 User Group

Working with Data

› Data Models – define data schema› LocalStorage proxy example

› Data Stores – manage/store data instances› Manipulating Data and Stores› Binding data to DataView Controls (i.e. Lists)

Page 40: Sencha Touch Intro - Toronto HTML5 User Group

Data Classes

› Model – Used to define data types› Store – Used to store and manipulate

collections of models› Proxy – Data service layer – connects to a

persistence data layer

Page 41: Sencha Touch Intro - Toronto HTML5 User Group

Data Models

Page 42: Sencha Touch Intro - Toronto HTML5 User Group

Data Stores

Page 43: Sencha Touch Intro - Toronto HTML5 User Group

Manipulating Data

Model Creation Model Update

Page 44: Sencha Touch Intro - Toronto HTML5 User Group

Manipulating Stores – Filtering

Page 45: Sencha Touch Intro - Toronto HTML5 User Group

Binding Data

Page 46: Sencha Touch Intro - Toronto HTML5 User Group

DEMO!

Page 47: Sencha Touch Intro - Toronto HTML5 User Group

Q/A

?Mukul Seth

[email protected]@m_seth

Page 48: Sencha Touch Intro - Toronto HTML5 User Group

USER POLL

Page 49: Sencha Touch Intro - Toronto HTML5 User Group

Future HTML5 Presentation Topics?

› Theming/Skinning Sencha Touch Apps› Metro Style Apps for Windows 8› jQuery Mobile App Development› …› Any other ideas?