Nick Ager @nickager. lunes 3 de septiembre de 12



Similar documents
place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

Republic Polytechnic School of Infocomm C308 Web Framework. Module Curriculum

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

THE SAS OUTPUT DELIVERY SYSTEM: BOLDLY TAKE YOUR WEB PAGES WHERE THEY HAVE NEVER GONE BEFORE! CHEVELL PARKER, SAS INSTITUTE INC.

Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework

JTouch Mobile Extension for Joomla! User Guide

CLASSROOM WEB DESIGNING COURSE

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

jquery Tutorial for Beginners: Nothing But the Goods

<Insert Picture Here>

Native-quality, cross-platform HTML5 apps. Peter Helm

BT CONTENT SHOWCASE. JOOMLA EXTENSION User guide Version 2.1. Copyright 2013 Bowthemes Inc.

RSW. Responsive Fullscreen WordPress Theme

ANDROID TRAINING COURSE MODULES. Module-I: Introduction to Android. Introducing Android. Installing Development Tools. Using the Emulator.

Rich-Internet Anwendungen auf Basis von ColdFusion und Ajax

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

Web Designing with UI Designing

Cross-Platform Phone Apps & Sites with jquery Mobile

Designing for the Mobile Web Lesson 3: HTML5 Web Apps

WEB DESIGN COURSE CONTENT

Self Testing with MoPub SDK

<Insert Picture Here> Oracle Application Express 4.0

Mobile Game and App Development the Easy Way

Workshop on Android and Applications Development

Fast track to HTML & CSS 101 (Web Design)

IE Class Web Design Curriculum

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Making the Most of Existing Public Web Development Frameworks WEB04

WP Popup Magic User Guide

Structured Content: the Key to Agile. Web Experience Management. Introduction

Transitioning Computer Courseware to Mobile Web Apps

Charts for SharePoint

Developing Mobile Websites with Responsive Web Design and jquery Mobile

Dreamweaver CS3 THE MISSING MANUAL. David Sawyer McFarland. POGUE PRESS" O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Learning Web App Development

Website Builder Essential/Complete Manual

Facebook Twitter YouTube Google Plus Website . o Zooming and Panning. Panel. 3D commands. o Working with Canvas

CMS and e-commerce Solutions. version 1.0. Please, visit us at: or contact directly by

Welcome to icue! Version 4

Using Agile to Develop Mobile Apps

Visualizing a Neo4j Graph Database with KeyLines

Building and Deploying Web Applications

Petroleum Web Applications to Support your Business. David Jacob & Vanessa Ramirez Esri Natural Resources Team

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

Frog VLE Update. Latest Features and Enhancements. September 2014

DreamFactory & Modus Create Case Study

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

WP Popup Magic User Guide

Figure 1 responsive grid system for all view ports, from desktops, tablets and smart phones

Looking Good! Troubleshooting Display Problems

SmallBiz Dynamic Theme User Guide

San Joaquin County Office of Education Career & Technical Education Web Design ~ Course Outline CBEDS#: 4601

Garfield Public Schools Fine & Practical Arts Curriculum Web Design

Sizmek Formats. IAB Mobile Pull. Build Guide

MA-WA1920: Enterprise iphone and ipad Programming

The Smart Forms Web Part allows you to quickly add new forms to SharePoint pages, here s how:

Candidate A Exemplar Work

Portability Study of Android and ios

Using Spry Widgets. In This Chapter

What s New in IBM Web Experience Factory IBM Corporation

Building a Personal Website (Adapted from the Building a Town Website Student Guide 2003 Macromedia, Inc.)

Making Web Application using Tizen Web UI Framework. Koeun Choi

ON24 MOBILE WEBCASTING USER GUIDE AND FAQ FEBRUARY 2015

Responsive Web Design in Application Express

01/42. Lecture notes. html and css

research: technical implemenation

DocuSign for Salesforce User Guide v6.2 Published: November 16, 2015

A Web- based Approach to Music Library Management. Jason Young California Polytechnic State University, San Luis Obispo June 3, 2012

Visualizing an OrientDB Graph Database with KeyLines

COURSE OUTLINE FACULTY OF INFORMATION AND COMMUNICATION TECHNOLOGY UNIVERSITI TEKNIKAL MALAYSIA MELAKA

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

Mobile App Design and Development

BT MEDIA JOOMLA COMPONENT

KIVY - A Framework for Natural User Interfaces

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

INFORMATION TECHNOLOGY STANDARD

Skills for Employment Investment Project (SEIP)

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Version 1.3 OFFICIAL THEME USER GUIDE. Renova. Unique Creative Portfolio - Responsive HTML5

Web Design - Part 2. Topics. More web design: Page design: Contents Non-textual elements Common web design issues

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

Full version is >>> HERE <<<

Objective C and iphone App

Eclipse 4 RCP application Development COURSE OUTLINE

Getting Started with the iscan Online Data Breach Risk Intelligence Platform

Transcription:

Nick Ager @nickager

Plan Overview of jquerymobile Seaside integration with jquerymobile Building an app with Pharo, Seaside jquerymobile Questions

Installation http://jquerymobile.seasidehosting.st

Follow along http://jquerymobile.seasidehosting.st

#1 jquery

#2 jquery Mobile Progressive enhancement

Widely used

Demo JQMAdmin register: WACounter asapplicationat: 'example1'.

HiJax JQueryMobile orchestrates the transition between the two pages

HiJax JQueryMobile orchestrates the transition between the two pages

HiJax JQueryMobile orchestrates Next the page downloads in transition between the two pages background

HiJax JQueryMobile orchestrates Next the page downloads in transition between the two pages background

HiJax JQueryMobile orchestrates the transition between the two pages

Seaside adds surrounding page div WACounter>>renderContentOn: html! html heading: count.! html anchor!! jqmtransitionflip;!! callback: [ self increase ];!! with: '++'.! html space.! html anchor!! jqmtransitionfade;!! callback: [ self decrease ];!! with: '--' <div data-role="page" id="pageid1"> <h1>0</h1> <a data-transition="flip" href="/example1?_s=pd7we5nxdzgq645v&_k=_ctkifl5peez1rrs&1">++</a> <a data-transition="fade" href="/example1?_s=pd7we5nxdzgq645v&_k=_ctkifl5peez1rrs&2">--</a> </div>

Seaside changes the binding document>>addloadscript: JQMEvents>>renderOrientationChangeEventOn: html html heading level4; id: html nextid; with: 'Text changes on new orientation'. html document addloadscript: (html jquery page onorientationchange: ('$("#', html lastid, '").text("orientation: " + event.orientation)' asfunction: #(event))) <div data-role="page" id="pageid5"> <h4 id="id1">text changes on new orientation</h4> <script type="text/javascript">/*<![cdata[*/$("#pageid5").bind("pageinit", function(){$("#pageid5").bind("orientationchange",function(event){$ ("#id1").text("orientation: " + event.orientation)});});/*]]>*/</script> </div> /javascript/jquery-mobile/events

JQMAdmin JQMAdmin register: WACounter asapplicationat: 'example1'. JQMAdmin class>>register: acomponentclass asapplicationat: astring! application! application := super register: acomponentclass asapplicationat: astring.! application preferenceat: #scriptgeneratorclass put: JQMScriptGenerator.! application preferenceat: #rootdecorationclasses put: #().! application preferenceat: #renderphasecontinuationclass put: JQMRenderPhaseContinuation.! ^ application

ids: session unique VS page unique JQMRenderPhaseContinuation>>createRenderContext! rendercontext! "create a custom render context - which in turn creates a custom callback registry which provides callback ids (html nextid) which are session unique, rather than page unique"!! rendercontext := JQMRenderContext new.!! rendercontext visitor: (WARenderingGuide client: rendercontext visitor).!! ^ rendercontext JQMEvents>>renderOrientationChangeEventOn: html html heading level4; id: html nextid; with: 'Text changes on new orientation'. html document addloadscript: (html jquery page onorientationchange: ('$("#', html lastid, '").text("orientation: " + event.orientation)' asfunction: #(event)))

Demo JQMAdmin register: WACounter2 asapplicationat: 'example2'. Removing address bar dipping JQMTestPageBase>>rendererClass ^ JQMHtmlCanvas JQMHtmlCanvas>>anchor! anchorbrushclass! anchorbrushclass := self requestcontext request jqmuseragent isios!! iftrue: [ JQMIOSAnchorTag ]!! iffalse: [ WAAnchorTag ].!!! ^ self brush: anchorbrushclass new

Seaside s modular architecture made it possible to plug-in components to modify page rendering add rewire the page script initialisation

Precaching JQMAdmin register: WACounter3 asapplicationat: 'example3'. WACounter3>>renderContentOn: html! html heading: count.! html anchor!! jqmprefetch;!! callback: [!!! (Delay forseconds: 5) wait.!!! self increase ];!! with: '++'.! html space.! html anchor!! jqmprefetch;!! callback: [!!! (Delay forseconds: 5) wait.!!! self decrease ];!! with: '--' simulating a slow network

Seaside call: & answer: JQMAdmin register: JQMSampleFlickrHome asapplicationat: 'jqm-samples/flickr'. Repository: http://ss3.gemstone.com/ss/jquerymobilesamples DEMO http://vimeo.com/31600152

JQMSampleFlickrHome JQMSampleFlickrHome>>renderContentOn: html! html div!! jqmcontent;!! with: [!!! html paragraph: 'Enter a tag to retrieve Flickr photos:'.!!! self renderformon: html ] JQMSampleFlickrHome>>renderFormOn: html! html form: [!! html textinput!!! on: #flickrtag of: self.!! html submitbutton!!! callback: [ self show: (JQMSampleFlickrSlideShow flickrtag: self flickrtag) ];!!! with: 'View Slide Show' ]

answer: JQMSampleFlickrBase>>initialize! super initialize.!! self adddecoration: JQMSampleFlickrToolbar new.! self adddecoration: JQMIOSHomescreenBookmarkDecorator new. JQMSampleFlickrToolbar>>renderContentOn: html! html div!! jqmheader;! with: [! html anchor!!! jqmicon: 'home';!!! jqmreverse;!!! jqmiconnotext;!!! callback: [ self decoratedcomponent answer ].!! html heading! level1;! with: 'Flickr photos' ].!! super rendercontenton: html.

Widgets Provides consistent widget set closely matching iphones native widgets Degrades gracefully for less capable browsers Uses Html & Html 5 widgets http://jquerymobile.seasidehosting.st/seaside/javascript/jquery-mobile/form-element-gallery

DEMO

Widget styling occurs (mainly) automatically JQMFormBase>>renderSliderOn: html! "*Slider>http://jquerymobile.com/test/docs/forms/slider/*"! self renderformelementon: html element: [!! html label!!! for: html nextid;!!! with: 'Input slider:'.!!!!! html rangeinput!!! id: html lastid;!!! value: 50;!!! min: 0;!!! max: 100 ].

JQMFormBase>>renderRadioButtonPetsOn: html! "*Slider>http://jquerymobile.com/test/docs/forms/radiobuttons/*"! self renderformelementon: html element: [!! html fieldset!!! jqmcontrolgroup;!!! with: [!!!! pets!!!! pets := #(Cat Dog Hamster Lizard).!!!! html radiogroup!!!!! selected: pets first;!!!!! with: [ :group!!!!!! html legend: 'Choose a pet:'.!!!!!! pets do: [ :each!!!!!!! html label!!!!!!!! for: html nextid;!!!!!!!! with: each.!!!!!!! html radiobutton!!!!!!!! group: group;!!!!!!!! value: each;!!!!!!!! id: html lastid ] ] ] ].

JQMFormBase>>renderFlipSwitchOn: html "*Flip Toggle Switch>http://jquerymobile.com/test/docs/forms/switch/" self renderformelementon: html element: [ html label for: html nextid; with: 'Flip switch:'. html select list: #(On Off); jqmslider; id: html lastid ]

JQMFormBase>>renderCheckButtonFontStylingOn: html self renderformelementon: html element: [ html fieldset jqmcontrolgroup; jqmhorizontal; with: [ html legend: 'Font styling:'. html label for: html nextid; with: 'b'. html checkbox id: html lastid. html label for: html nextid; with: [ html emphasis: 'i' ]. html checkbox id: html lastid. html label for: html nextid; with: 'u'. html checkbox id: html lastid ] ].

jquery Mobile specific layout grids collapsible content blocks accordions theming

Mobile apps DEMO

Step #1 [self.webview loadrequest: [NSURLRequest requestwithurl: [NSURL URLWithString: @"http://jquerymobile.seasidehosting.st"]]];

Step #2 CGRect bounds = self.window.bounds; self.webview = [[[UIWebView alloc] initwithframe: bounds] autorelease]; [self.webview setautoresizingmask: UIViewAutoresizingFlexibleBottomMargin UIViewAutoresizingFlexibleHeight UIViewAutoresizingFlexibleLeftMargin UIViewAutoresizingFlexibleRightMargin UIViewAutoresizingFlexibleTopMargin UIViewAutoresizingFlexibleWidth ]; [self.window addsubview:self.webview];

Outstanding Making a builder Android & Windows 8 ports Remote development to an i device

Acknowledgements Louis Andriese Esteban John Macintosh Seaside team

Questions?