Upload
sencha
View
5.896
Download
2
Tags:
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
Tuesday, November 30, 2010
Developing in HTML5Widgetbox & Sencha Touch
GILES GOODWIN, WIDGETBOX
Tuesday, November 30, 2010
Widgetbox Mobile
Tuesday, November 30, 2010
Widgetbox Mobile HTML5 Mobile App Builder
Non-developers build their own mobile appsDistribute the apps through the web
Tuesday, November 30, 2010
Tuesday, November 30, 2010
Over 1000 apps made
Tuesday, November 30, 2010
Demo: Build an App
Tuesday, November 30, 2010
Dissection of the App
Tuesday, November 30, 2010
App BaseNavigation StylePage TypesPagesTheme Page SetsExtras
Architecture
Tuesday, November 30, 2010
SetupExt.setup({ phoneIcon: icon, phoneStartupScreen: startupScreen, fullscreen: true, onReady: function() {
...var viewport = new Ext.TabPanel({ fullscreen: true, items: pagesArray});...
}});
Tuesday, November 30, 2010
List PagesList/Detail page typesOne panelTwo cards: TableView and DetailViewTableView extends List/DataViewDetailView extends Panel
Tuesday, November 30, 2010
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
Image CarouselDisplay set photosSwipe between photosSencha Carousel UsedPhotosDetail has a Carousel
Tuesday, November 30, 2010
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
For input pages we used our codePost data to rest serviceGraphics package integrationgRaphaël
Input Pages
Tuesday, November 30, 2010
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
SectionsTime/DateSortedSub NavigationSplit buttonMore MenuListView
Advanced UI
Tuesday, November 30, 2010
ColorsTitle and Tab barText and BackgroundsFontsTitlesItems and DetailsStyle ElementsIconsGradients
Themes
Tuesday, November 30, 2010
// 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
Comparing Sencha with Rolling-Your-Own Code
Tuesday, November 30, 2010
Scrolling
Tuesday, November 30, 2010
ScrollingDocking : Pinning
Touch Event Management: Scroll not tap Scroll Up Here, Right There
Smooth : Feels Native
Tuesday, November 30, 2010
Cross-Device
Tuesday, November 30, 2010
Cross-DeviceAndroid
iPhone versionsiOS devices
Future platforms
Tuesday, November 30, 2010
Cost Savings
Tuesday, November 30, 2010
Cost SavingsDevelopers can focus on features
Less QAOverall maintenance savings
Tuesday, November 30, 2010
Tips & Tricks
Tuesday, November 30, 2010
Some tricks we like
Tuesday, November 30, 2010
Some tricks we likeBase-64 and inline images in CSS
Load data on demand
Tuesday, November 30, 2010
Web App Performance
Tuesday, November 30, 2010
Web App PerformanceGZIPCDN
InlineKeep-Alive
Tuesday, November 30, 2010
Thanks!Questions/Comments?
Tuesday, November 30, 2010