SlideShare a Scribd company logo
Mobilizing Your Visualforce
Application
Keir Bowden, BrightGen, CTO
@bob_buzzard
About me
 CTO of BrightGen
 5 years Force.com
 Force.com MVP
 Enterprise Java background
Styling isn’t mobilizing!
“Mimicking a mobile device UI turns my slick Visualforce pages into slick
HTML5 web applications” – me, circa. Dreamforce 2010
It doesn’t. Here’s why (and how it should be done) ...
Sample application
 Native
 Survey
 Multiple answer types
 Back/forward navigation
Data model
Contact
Contact

Survey
Survey

Survey
Survey
Response
Response

Survey
Survey
Question
Question

Survey
Survey
Question
Question
Response
Response
Flow
Checkbox
Checkbox

Start Survey
Start Survey

Retrieve Question
Retrieve Question

Radio Buttons
Radio Buttons

Text Area
Text Area

Update Question
Update Question
Response
Response

Complete Survey
Complete Survey
Demonstration
The desktop version of the application ...
Visualforce markup
HTML5 Web Application
 Web pages
 Accessed via browser
 Basic device features
 Transactional
Part 1: jQuery Mobile
 Mobile UI framework
 Touch optimized

Jquery
Jquery
Mobile
Mobile

 Cross device
 Built on jQuery
HTML5 Custom Attributes
Single Page Application
Mobilizing the wrong way
Replace Visualforce markup with jQuery Mobile markup
Set viewport to device size
Leave controller in place
Competition not co-operation
 Page navigation
 Form submission
 Ajax rerendering
View state
 Mobile bandwidth
 Heavy for device
 Server side in pilot
Latency
 Power saving
 Packet loss ≠ congestion
 TCP backs off
 “Nobody wants to wait while they wait.”
- Mike Kreiger, Co-founder Instagram
Demonstration
The desktop version with jQuery Mobile markup
Visualforce
Rebuild the app for mobile
 Mobile experience
 Animated transitions
 Reactive
Part 2: JavaScript
 Business logic
 Executes client side
Jquery
Jquery
Mobile
Mobile

JavaScript
JavaScript

 Reduced round trips

JavaScript
JavaScript
Remoting
Remoting

 No API calls
JavaScript Remoting
 Controller method
JavaScript Remoting
 Invoke via JavaScript

 Callback function
Part 3: Knockout

 Reduce DOM manipulation
 Declarative binding

Jquery
Jquery
Mobile
Mobile

Knockout
Knockout

JavaScript
JavaScript

JavaScript
JavaScript
Remoting
Remoting

 Automatic refresh
 JavaScript “controller”
 Fast!
Knockout View Model
Declarative binding
Advanced binding

Question 1

Question 2

Question 3

•Type=‘Text Area’

•Type=‘Text Area’

•Type=‘Checkbox’

•Response=‘Great’

•Response=‘Okay’

•Response=‘true’
Progressive enhancement
jQuery Mobile enhances markup
HTML -> CSS -> JavaScript
Only runs once
Knockout updates the DOM
Demonstration
The survey application rebuilt for mobile.
Lesson 1: Storyboard the application
Especially single page applications!
Map pages to functionality
Identify swipe transitions
Lesson 2: Client side business logic
 On device - faster
 Eases transition to hybrid
 Don’t mix with server side!
Lesson 3: Professional JavaScript
 Avoid anonymous functions
 Use your own namespace
 Don’t tie behaviour to content
Lesson 4: Combining frameworks
 Rarely as simple as combining resources
 You are the conductor
 Persevere!
Competition
 Quiz on this session
 QR code/link in chatter feed
 Closes 8pm
 Win my book
Keir Bowden
CTO, BrightGen
@bob_buzzard
Mobilizing your Visualforce Application with jQuery Mobile and Knockout.js

More Related Content

PDF
11 Mobile Terms You Need to Know
PPTX
8 Mobile Terms You Need to Know for 2015
PPTX
Kroogerr - Facebook App Testing Checklist
PDF
Infinum android talks #12 - Google IO report: Milkshakes, Marshmallows and Ma...
PDF
Overview on Mobile Cross Platform Development
PPTX
Benefits of developing a Single Page Web Applications using AngularJS
PDF
Case studies core php development
PPT
Jason.O Keefe.Genuitec.Presentation.Final
11 Mobile Terms You Need to Know
8 Mobile Terms You Need to Know for 2015
Kroogerr - Facebook App Testing Checklist
Infinum android talks #12 - Google IO report: Milkshakes, Marshmallows and Ma...
Overview on Mobile Cross Platform Development
Benefits of developing a Single Page Web Applications using AngularJS
Case studies core php development
Jason.O Keefe.Genuitec.Presentation.Final

What's hot (20)

PPTX
Mobile (App) Development with Sitecore
PPTX
Angular js introduction
PDF
Azetone 2018 UX Analytics, A/B Testing & Personalization
PPTX
How to use SEO for Lead Generation
PPSX
Best App Development Company Agicent
PDF
Why Use Server Side Rendering To Boost Performance and User Experience?
PPT
User Stories
PDF
React Native App & PWA Platform for Magento 2
PPTX
Progressive Web-App (PWA)
PDF
Sencha Touch for Rubyists
PDF
Ux Example
PPTX
Introduction to Progressive Web App
PDF
Guidance on how to develop a progressive web app using react native!
PDF
5 benefits of progressive web app development
PPTX
Muft for iOS
PDF
Mobile Design. Strategic Solutions.
PPTX
Expertise In Mobile SEO
PPTX
Presentazione shopapp
PPTX
Progressive Web Application
PDF
From AMP to PWA
Mobile (App) Development with Sitecore
Angular js introduction
Azetone 2018 UX Analytics, A/B Testing & Personalization
How to use SEO for Lead Generation
Best App Development Company Agicent
Why Use Server Side Rendering To Boost Performance and User Experience?
User Stories
React Native App & PWA Platform for Magento 2
Progressive Web-App (PWA)
Sencha Touch for Rubyists
Ux Example
Introduction to Progressive Web App
Guidance on how to develop a progressive web app using react native!
5 benefits of progressive web app development
Muft for iOS
Mobile Design. Strategic Solutions.
Expertise In Mobile SEO
Presentazione shopapp
Progressive Web Application
From AMP to PWA
Ad

Similar to Mobilizing your Visualforce Application with jQuery Mobile and Knockout.js (20)

PDF
Mobilizing Your Visualforce Application With JQuery and KnockoutJS
PPT
How to Tango with Salesforce & jQueryMobile for HTML5 Goodness
PDF
Using Visualforce in Salesforce1
PPTX
Building a great mobile experience on the force.com platforms
PPTX
Mobile Application Workshop - So You Want To Build a Mobile App?
PDF
Visualforce in Salesforce1: Optimizing your User Interface for Mobile
PPTX
HTML5 and jQuery Mobile
PDF
Pablo Villalba -
PPTX
Salesforce.com Mobile Dev Week Chicago DUG
PPTX
Singapore dev user group
PPTX
Become a Hero of Mobile: Salesforce1 Mobile App Best Practices for Admins
PPTX
Salesforce Mobile Developer Week
PDF
ISV Beginners Guide to Building Salesforce1 Mobile Apps (October 14, 2014)
PDF
Summer of Mobile #3: How to Build a Killer Mobile User Experience
PPTX
Mobile Packs From Salesforce.com
PPTX
Salesforce1 for Developers
PPTX
Webinar May 15th - Intro to salesforce1 mobile app development no code
PPT
Mobilising your salesforce applications using j query mobile
PDF
How We Built Touch
PDF
Intro to Salesforce Mobile SDK: Building Hybrid Apps Webinar
Mobilizing Your Visualforce Application With JQuery and KnockoutJS
How to Tango with Salesforce & jQueryMobile for HTML5 Goodness
Using Visualforce in Salesforce1
Building a great mobile experience on the force.com platforms
Mobile Application Workshop - So You Want To Build a Mobile App?
Visualforce in Salesforce1: Optimizing your User Interface for Mobile
HTML5 and jQuery Mobile
Pablo Villalba -
Salesforce.com Mobile Dev Week Chicago DUG
Singapore dev user group
Become a Hero of Mobile: Salesforce1 Mobile App Best Practices for Admins
Salesforce Mobile Developer Week
ISV Beginners Guide to Building Salesforce1 Mobile Apps (October 14, 2014)
Summer of Mobile #3: How to Build a Killer Mobile User Experience
Mobile Packs From Salesforce.com
Salesforce1 for Developers
Webinar May 15th - Intro to salesforce1 mobile app development no code
Mobilising your salesforce applications using j query mobile
How We Built Touch
Intro to Salesforce Mobile SDK: Building Hybrid Apps Webinar
Ad

More from Keir Bowden (20)

PDF
LC 2022 - Second Generation Packaging
PDF
Mutation Testing.pdf
PDF
London Non-Profit Spring 22 Salesforce Release
PDF
London Salesforce Developer January 2022
PDF
Winter 22 for Developers
PDF
Londons Calling 2021
PPTX
London Salesforce Developers TDX 20 Global Gathering
PDF
Helsinki developer group march 2020
PDF
London's calling 2020 Documentor Plug-In
PDF
Lightning User Interface Testing with Selenium and Node JS
PDF
Salesforce CLI Cheat Sheet
PDF
Salesforce Spring 19 release top 10 Features
PDF
UI Testing with Selenium and Node - London's Calling 2019
PPTX
Salesforce Winter 19 release top 10 features
PDF
Quickstart Templates with the Salesforce CLI
PDF
TrailheaDX Global Gathering London 2018
PDF
Getting started with public speaking
PDF
Salesforce CLI
PPTX
London's Calling 2018 - No Connection, No Problem
PPTX
No Connection? No Problem!
LC 2022 - Second Generation Packaging
Mutation Testing.pdf
London Non-Profit Spring 22 Salesforce Release
London Salesforce Developer January 2022
Winter 22 for Developers
Londons Calling 2021
London Salesforce Developers TDX 20 Global Gathering
Helsinki developer group march 2020
London's calling 2020 Documentor Plug-In
Lightning User Interface Testing with Selenium and Node JS
Salesforce CLI Cheat Sheet
Salesforce Spring 19 release top 10 Features
UI Testing with Selenium and Node - London's Calling 2019
Salesforce Winter 19 release top 10 features
Quickstart Templates with the Salesforce CLI
TrailheaDX Global Gathering London 2018
Getting started with public speaking
Salesforce CLI
London's Calling 2018 - No Connection, No Problem
No Connection? No Problem!

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Big Data Technologies - Introduction.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
Building Integrated photovoltaic BIPV_UPV.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Big Data Technologies - Introduction.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
“AI and Expert System Decision Support & Business Intelligence Systems”
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
Chapter 3 Spatial Domain Image Processing.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Reach Out and Touch Someone: Haptics and Empathic Computing

Mobilizing your Visualforce Application with jQuery Mobile and Knockout.js

Editor's Notes

  • #10: Options – native, hybrid,htm5. Users not going to install an application to take the odd survey.
  • #15: JQM and Visualforce fight for control of navigation and form postbacks. It ends up feeling like a regular web site, as every action requires a round trip with a full page reload. Mention server side view state pilot in winter 14 – this will help with point 2, but latency is still the killer for round trips. Network interfaces go to sleep to conserve battery life. Mobile devices Packet loss is inevitable in mobile networks – this is interpreted as congestion and the transmission speed is decreased.
  • #16: Lots of large viewstate consumes bandwidth and makes things slow Server side is back to the future – I have to work with what is GA.
  • #22: Extracting list of responses from the database.
  • #23: Everything is asynchronous.