32
Tuesday, November 30, 2010

Developing in HTML5: Widgetbox & Sencha Touch

  • Upload
    sencha

  • View
    5.896

  • Download
    2

Embed Size (px)

DESCRIPTION

The future of mobile is with cross platform mobile web apps. In this session you'll discover how Widgetbox used Sencha Touch to rebuild their existing HTML5 mobile apps from the ground up. Using real-life product examples, we'll cover all aspects of developing on top of the Sencha framework including using Javascript, styling in CSS3, and taking advantage of performance optimization and workarounds.

Citation preview

Page 1: Developing in HTML5: Widgetbox & Sencha Touch

Tuesday, November 30, 2010

Page 2: Developing in HTML5: Widgetbox & Sencha Touch

Developing in HTML5Widgetbox & Sencha Touch

GILES GOODWIN, WIDGETBOX

Tuesday, November 30, 2010

Page 3: Developing in HTML5: Widgetbox & Sencha Touch

Widgetbox Mobile

Tuesday, November 30, 2010

Page 4: Developing in HTML5: Widgetbox & Sencha Touch

Widgetbox Mobile HTML5 Mobile App Builder

Non-developers build their own mobile appsDistribute the apps through the web

Tuesday, November 30, 2010

Page 5: Developing in HTML5: Widgetbox & Sencha Touch

Tuesday, November 30, 2010

Page 6: Developing in HTML5: Widgetbox & Sencha Touch

Over 1000 apps made

Tuesday, November 30, 2010

Page 7: Developing in HTML5: Widgetbox & Sencha Touch

Demo: Build an App

Tuesday, November 30, 2010

Page 8: Developing in HTML5: Widgetbox & Sencha Touch

Dissection of the App

Tuesday, November 30, 2010

Page 9: Developing in HTML5: Widgetbox & Sencha Touch

App BaseNavigation StylePage TypesPagesTheme Page SetsExtras

Architecture

Tuesday, November 30, 2010

Page 10: Developing in HTML5: Widgetbox & Sencha Touch

SetupExt.setup({ phoneIcon: icon, phoneStartupScreen: startupScreen, fullscreen: true, onReady: function() {

...var viewport = new Ext.TabPanel({ fullscreen: true, items: pagesArray});...

}});

Tuesday, November 30, 2010

Page 11: Developing in HTML5: Widgetbox & Sencha Touch

List PagesList/Detail page typesOne panelTwo cards: TableView and DetailViewTableView extends List/DataViewDetailView extends Panel

Tuesday, November 30, 2010

Page 12: Developing in HTML5: Widgetbox & Sencha Touch

Wbx.feed.FeedListView = Ext.extend(Ext.List, { itemSelector: 'li.entry', singleSelect: true,! itemTpl: new Ext.XTemplate(! ...! ! <li class="entry">...</li>! ... ), constructor: function(config) { config.proxy =

new Wbx.date.FeedProxy({feedUrl:config.feedUrl}); config.store = new Ext.data.Store({ proxy: config.proxy, model: 'FeedEntry'! ! ! ... }); feed.FeedListView.superclass.constructor.call(this, config);

},! // Other FeedListView specific overrides...});

List View Page Types

Tuesday, November 30, 2010

Page 13: Developing in HTML5: Widgetbox & Sencha Touch

Image CarouselDisplay set photosSwipe between photosSencha Carousel UsedPhotosDetail has a Carousel

Tuesday, November 30, 2010

Page 14: Developing in HTML5: Widgetbox & Sencha Touch

Wbx.photos.PhotoCarousel = Ext.extend(Wbx.PageViewController, { constructor: function(config) {! ! this.carousel = new Ext.Carousel({ items: photoPanels }); this.items = [this.carousel];

photos.PhotoCarousel.superclass.constructor.call(this, config);

},! ... setPhoto: function(index) { var photoCard = this.photoCards[index]; photoCard.doLayout(); this.carousel.setActiveItem(photoCard); }});

Carousel Page Types

Tuesday, November 30, 2010

Page 15: Developing in HTML5: Widgetbox & Sencha Touch

For input pages we used our codePost data to rest serviceGraphics package integrationgRaphaël

Input Pages

Tuesday, November 30, 2010

Page 16: Developing in HTML5: Widgetbox & Sencha Touch

Ext.util.JSONP.request({url: voteApiUrl,               callbackKey: 'wbx_callback',             

params: {                    wbx_token: WbxMobileSite.token

  },

callback: function(result) {        panel.getResults(true);   }});

Input Page Types: JSONP

Tuesday, November 30, 2010

Page 17: Developing in HTML5: Widgetbox & Sencha Touch

SectionsTime/DateSortedSub NavigationSplit buttonMore MenuListView

Advanced UI

Tuesday, November 30, 2010

Page 18: Developing in HTML5: Widgetbox & Sencha Touch

ColorsTitle and Tab barText and BackgroundsFontsTitlesItems and DetailsStyle ElementsIconsGradients

Themes

Tuesday, November 30, 2010

Page 19: Developing in HTML5: Widgetbox & Sencha Touch

// Let's start with the basics$base_color: #7c92ae;$base_gradient: 'glossy';

// Lists$list_active_gradient: 'bevel';$list_header_gradient: 'matte';

@import 'sencha-touch/default/all';

@include sencha-panel;@include sencha-buttons;...

SASS Setup

Tuesday, November 30, 2010

Page 20: Developing in HTML5: Widgetbox & Sencha Touch

Comparing Sencha with Rolling-Your-Own Code

Tuesday, November 30, 2010

Page 21: Developing in HTML5: Widgetbox & Sencha Touch

Scrolling

Tuesday, November 30, 2010

Page 22: Developing in HTML5: Widgetbox & Sencha Touch

ScrollingDocking : Pinning

Touch Event Management: Scroll not tap Scroll Up Here, Right There

Smooth : Feels Native

Tuesday, November 30, 2010

Page 23: Developing in HTML5: Widgetbox & Sencha Touch

Cross-Device

Tuesday, November 30, 2010

Page 24: Developing in HTML5: Widgetbox & Sencha Touch

Cross-DeviceAndroid

iPhone versionsiOS devices

Future platforms

Tuesday, November 30, 2010

Page 25: Developing in HTML5: Widgetbox & Sencha Touch

Cost Savings

Tuesday, November 30, 2010

Page 26: Developing in HTML5: Widgetbox & Sencha Touch

Cost SavingsDevelopers can focus on features

Less QAOverall maintenance savings

Tuesday, November 30, 2010

Page 27: Developing in HTML5: Widgetbox & Sencha Touch

Tips & Tricks

Tuesday, November 30, 2010

Page 28: Developing in HTML5: Widgetbox & Sencha Touch

Some tricks we like

Tuesday, November 30, 2010

Page 29: Developing in HTML5: Widgetbox & Sencha Touch

Some tricks we likeBase-64 and inline images in CSS

Load data on demand

Tuesday, November 30, 2010

Page 30: Developing in HTML5: Widgetbox & Sencha Touch

Web App Performance

Tuesday, November 30, 2010

Page 31: Developing in HTML5: Widgetbox & Sencha Touch

Web App PerformanceGZIPCDN

InlineKeep-Alive

Tuesday, November 30, 2010

Page 32: Developing in HTML5: Widgetbox & Sencha Touch

Thanks!Questions/Comments?

Tuesday, November 30, 2010