Top Banner
Salesforce1 For Visualforce Developers Keir Bowden, CTO BrightGen @bob_buzzard
23

Salesforce1 for Visualforce Developers

Jan 15, 2015

Download

Technology

Bob Buzzard

Deck covering a few of the gotchas that I've found building Visualforce pages to run inside Salesforce1 and some of the workarounds I've found.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Salesforce1 for Visualforce Developers

Salesforce1

For Visualforce Developers

Keir Bowden, CTO BrightGen@bob_buzzard

Page 2: Salesforce1 for Visualforce Developers

Accessing Visualforce• Mark page as mobile– Classic in Spring 14

• Create Tab

• Add to Mobile Navigation

Page 3: Salesforce1 for Visualforce Developers

Accessing Visualforce

• Appears in menu

• Available in app

Page 4: Salesforce1 for Visualforce Developers

Unsupported Elements• http://bobbuzz.me.uk/1gnxa2R

• Anything outside the Apex namespace– E.g. <chatter:feed />

• <apex:detail />

Page 5: Salesforce1 for Visualforce Developers

Unsupported Elements• <apex:inputField />– If it creates a widget

• Use HTML5 type attribute– Let the browser provide the widget– Suitable touch keyboard– No type for lookups!

Page 6: Salesforce1 for Visualforce Developers

Example Types

• type=“date”

• type=“number”

Page 7: Salesforce1 for Visualforce Developers

Sforce.one JavaScript Object

• In app navigation

• Visualforce knows it is in Salesforce1

• Installed or HTML5? – Inspect user-agent on iOS– Risky – see Dolphin browser

Page 8: Salesforce1 for Visualforce Developers

Click event is Slow

• Webkit waits 300ms for double click

• Use touch events instead

• Support is patchy: caniuse.com/touch

• JavaScript libraries – e.g. Event, Zepto

Page 9: Salesforce1 for Visualforce Developers

window.open() is your Friend

Page 10: Salesforce1 for Visualforce Developers

Child Browser

• External links – child browser

• Internal links – current page

• window.open – child browser – iOS only!

Page 11: Salesforce1 for Visualforce Developers

iPhone App Rotation

Page 12: Salesforce1 for Visualforce Developers

Using Child Browser

Page 13: Salesforce1 for Visualforce Developers

List Jumping

Worse with

bootstrap!

Page 14: Salesforce1 for Visualforce Developers

Using Child Browser

Page 15: Salesforce1 for Visualforce Developers

Bootstrap Responsive Tables

Text wraps

Responsive Table - scrolls

Page 16: Salesforce1 for Visualforce Developers

Default Behaviour

Page 17: Salesforce1 for Visualforce Developers

Using Child Browser

Page 18: Salesforce1 for Visualforce Developers

window.open() is your Enemy

Page 19: Salesforce1 for Visualforce Developers

Detecting sforce.one

Page 20: Salesforce1 for Visualforce Developers

Android

• window.open() does nothing!

• External links open in browser

• Responsive tables behave correctly

Page 21: Salesforce1 for Visualforce Developers

Truly mobile pages (non-WIFI)

Page 22: Salesforce1 for Visualforce Developers

Best Practice

• Avoid <apex:form/> - viewstate!

• Avoid round trips– Single page application– Business Logic in JavaScript– Remoting or REST API

Page 23: Salesforce1 for Visualforce Developers

Q&A