SlideShare uma empresa Scribd logo
1 de 20
How to Tango with Salesforce &
jQueryMobile for HTML5 Goodness
By Joshua Hoskins | @jhoskins
Moscone Center West, DevZone Unconference C
All about Me

               Joshua Hoskins
               Technical Cloud Consultant at

                   Customer since 2006                 Twitter: @jhoskins
                   User Group Leader since 2009        Email: jhoskins@CRMified.com
                   Currently in Singapore
                                                        LinkedIn:
                   Process Engineering                  http://www.linkedin.com/in/jhoskins
                   Implementation/Solution Delivery    Blog: CRMified.com
                   Data & Integrations Architect
Agenda

 • Anatomy of a Visualforce Page
 • Exchanging Data with SFDC
 • Dynamically updating page content
 • Debug Javascript Errors
 • Gracefully Handle Apex Exceptions
Components

 • Static Resources
 • Visualforce
 • Apex
 • Javascript
 • CSS (LESS is more!)
Resources

 • jQuery Mobile - http://jquerymobile.com/
 • jQuery - http://jquery.com/
Page Anatomy

 • Add 'head', references to jQuery, jQuery Mobile and the
   mobile theme CSS are all required.
 • jQuery Mobile 1.1.1 and 1.7.1 versions of jQuery core.
 • Keep the jQuery libraries as static resources.
 • A Single Visualforce page will contain multiple mobile pages.
Page Anatomy
 <apex:page showHeader="false" docType="html-5.0" standardStylesheets="false" cache="true" controller="ISG_MainApp_Ctrl" >
 <html>
 <head>
           <title>Page Title</title>
           <link rel="stylesheet" href="{!URLFOR($Resource.IBC_jQueryMobile_min_1_2_0, 'jquery.mobile-1.2.0-alpha.1/jquery.mobile-1.2.0-alpha.1.min.css')}" />
           <link href="http://fonts.googleapis.com/css?family=Cantarell&subset=latin" rel="stylesheet" type="text/css" />
           <apex:includeScript value="{!$Resource.IBC_jQuery_min_1_7_2}"/>
           <apex:includeScript value="{!URLFOR($Resource.IBC_jQueryMobile_min_1_2_0, 'jquery.mobile-1.2.0-alpha.1/jquery.mobile-1.2.0-alpha.1.min.js')}"/>
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
           <meta http-equiv="expires" content="0"/>
           <meta name="viewport" content="width=device-width, initial-scale=1" />
           <meta name="apple-mobile-web-app-capable" content="yes" />
           <meta name="apple-mobile-web-app-status-bar-style" content="default" />
           <link rel="apple-touch-icon" sizes="72x72" href="{!URLFOR($Resource.IBC_Resources, 'ibc/img/Quadmark-logo-home.png')}" />
 </head>
 <body>
 ...page content goes here...
 </body>
 </html>
 </apex:page>
jQuery Mobile & Force.com

 • Initialize jQuery Mobile on the page
 • What is noConflict() on jQuery?

         <script>
               var $j = jQuery.noConflict();
               $j(document).ready(init);
               function init() {
                     // Initialization code goes here
               }
         </script>
Page Content and Transitions

 • DIV Containers are Mobile Pages
 • Page Transitions switch DIV show to user
 • Requests are done by Ajax by default
    • Form Submissions & Data Requests
    • Set tag rel="external" on the form tag for standard HTML submit
      action
 • For best user experience include all Mobile Pages in One
   Visualforce Page
Page Content and Transitions
 <div id="splash-page" data-role="page" data-theme="a" data-position="fixed">
   <div data-role="header" data-position="fixed">
               <h1>Initiating Business Conversations</h1>
   </div>
   <!-- /header -->
   <div data-role="content" align="center”>
      ..... page content, input components etc. goes here
  </div>


 Example:
 <a href="#close-conversation-page" data-role="button" data-icon="check" data-transition="slideup">Close</a>
@RemoteAction with
Apex
Javascript in Visualforce
Javascript Objects
Handling Apex
Exceptions
Updating Page Content
Dynamically
Debugging
Lessons Learned

 • Coding can be Tedious
 • Apex vs. Javascript 50/50
 • Create Branches for Dev & QA
 • 1 Controller, 1 VF Page
 • Less Custom CSS
Joshua Hoskins
    Speaker
Appirio Helps Enterprises Power Their Business with
                    Public Cloud Solutions

                                   Helping Enterprises Become:

                             Efficient            Effective            Agile
                                         Social               Mobile




                     Technology-enabled professional services, supported by
                   500 cloud experts and a 50,000+ cloud developer community
                      5 years, 300 enterprises, 1.5M users moved to the cloud




19
How to Tango with Salesforce & jQueryMobile for HTML5 Goodness

Mais conteúdo relacionado

Mais procurados

Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013Danny Jessee
 
Workshop supermodel munich
Workshop supermodel munichWorkshop supermodel munich
Workshop supermodel munichSonja Madsen
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsRoy Kim
 
jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5Todd Anderson
 
Build and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-insBuild and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-insDanny Jessee
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14Mark Rackley
 
Advanced JQuery Mobile tutorial with Phonegap
Advanced JQuery Mobile tutorial with Phonegap Advanced JQuery Mobile tutorial with Phonegap
Advanced JQuery Mobile tutorial with Phonegap Rakesh Jha
 
jQuery Mobile with HTML5
jQuery Mobile with HTML5jQuery Mobile with HTML5
jQuery Mobile with HTML5madhurpgarg
 
Building i pad apps in pure java with vaadin
Building i pad apps in pure java with vaadinBuilding i pad apps in pure java with vaadin
Building i pad apps in pure java with vaadinJoonas Lehtinen
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointYaroslav Pentsarskyy [MVP]
 
Taking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APITaking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APIEric Shupps
 
Office 365 APIs for your Applications
Office 365 APIs for your ApplicationsOffice 365 APIs for your Applications
Office 365 APIs for your ApplicationsRuhani Arora
 
Course CodeSchool - Shaping up with Angular.js
Course CodeSchool - Shaping up with Angular.jsCourse CodeSchool - Shaping up with Angular.js
Course CodeSchool - Shaping up with Angular.jsVinícius de Moraes
 
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsSPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsMark Rackley
 
SPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuideSPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuideMark Rackley
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
 
Introduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIIntroduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIRob Windsor
 

Mais procurados (20)

Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013Build Secure Cloud-Hosted Apps for SharePoint 2013
Build Secure Cloud-Hosted Apps for SharePoint 2013
 
Workshop supermodel munich
Workshop supermodel munichWorkshop supermodel munich
Workshop supermodel munich
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted Apps
 
jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5
 
Build and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-insBuild and Deploy Provider-hosted SharePoint Add-ins
Build and Deploy Provider-hosted SharePoint Add-ins
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
 
Advanced JQuery Mobile tutorial with Phonegap
Advanced JQuery Mobile tutorial with Phonegap Advanced JQuery Mobile tutorial with Phonegap
Advanced JQuery Mobile tutorial with Phonegap
 
jQuery Mobile with HTML5
jQuery Mobile with HTML5jQuery Mobile with HTML5
jQuery Mobile with HTML5
 
Building i pad apps in pure java with vaadin
Building i pad apps in pure java with vaadinBuilding i pad apps in pure java with vaadin
Building i pad apps in pure java with vaadin
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePoint
 
Taking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APITaking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST API
 
Sq li
Sq liSq li
Sq li
 
Office 365 APIs for your Applications
Office 365 APIs for your ApplicationsOffice 365 APIs for your Applications
Office 365 APIs for your Applications
 
Course CodeSchool - Shaping up with Angular.js
Course CodeSchool - Shaping up with Angular.jsCourse CodeSchool - Shaping up with Angular.js
Course CodeSchool - Shaping up with Angular.js
 
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsSPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
 
SPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuideSPSNH 2014 - The SharePoint & jQueryGuide
SPSNH 2014 - The SharePoint & jQueryGuide
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
Introduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIIntroduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST API
 

Semelhante a How to Tango with Salesforce & jQueryMobile for HTML5 Goodness

Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5Ron Reiter
 
02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...Cristian Rodríguez Enríquez
 
Curtin University Frontend Web Development
Curtin University Frontend Web DevelopmentCurtin University Frontend Web Development
Curtin University Frontend Web DevelopmentDaryll Chu
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX DesignersAshlimarie
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
 
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014FalafelSoftware
 
Resume latest Update
Resume latest UpdateResume latest Update
Resume latest UpdateVaibhav soni
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileTerry Ryan
 
Cracking the Code of Managing The Chaos Of Everyday Project Management
Cracking the Code of Managing The Chaos Of Everyday Project ManagementCracking the Code of Managing The Chaos Of Everyday Project Management
Cracking the Code of Managing The Chaos Of Everyday Project ManagementFishbowl Solutions
 
Web Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScriptWeb Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScriptEdureka!
 
Building iPad apps with Flex - 360Flex
Building iPad apps with Flex - 360FlexBuilding iPad apps with Flex - 360Flex
Building iPad apps with Flex - 360Flexdanielwanja
 
Mobiloitte ! Enterprise Mobility Corporate Overview
Mobiloitte ! Enterprise Mobility Corporate OverviewMobiloitte ! Enterprise Mobility Corporate Overview
Mobiloitte ! Enterprise Mobility Corporate OverviewMobiloitte
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointRene Modery
 
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013Gustaf Nilsson Kotte
 

Semelhante a How to Tango with Salesforce & jQueryMobile for HTML5 Goodness (20)

Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
02 Building cross-platform mobile applications with jQuery Mobile / Desarroll...
 
Curtin University Frontend Web Development
Curtin University Frontend Web DevelopmentCurtin University Frontend Web Development
Curtin University Frontend Web Development
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
 
Challenges going mobile
Challenges going mobileChallenges going mobile
Challenges going mobile
 
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
Mobile ASP.Net Web Forms - Making the impossible possible | FalafelCON 2014
 
Resume latest Update
Resume latest UpdateResume latest Update
Resume latest Update
 
Bhavesh_Shukla_Resume
Bhavesh_Shukla_ResumeBhavesh_Shukla_Resume
Bhavesh_Shukla_Resume
 
Apex & jQuery Mobile
Apex & jQuery MobileApex & jQuery Mobile
Apex & jQuery Mobile
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery Mobile
 
Cracking the Code of Managing The Chaos Of Everyday Project Management
Cracking the Code of Managing The Chaos Of Everyday Project ManagementCracking the Code of Managing The Chaos Of Everyday Project Management
Cracking the Code of Managing The Chaos Of Everyday Project Management
 
Web Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScriptWeb Development with HTML5, CSS3 & JavaScript
Web Development with HTML5, CSS3 & JavaScript
 
Building iPad apps with Flex - 360Flex
Building iPad apps with Flex - 360FlexBuilding iPad apps with Flex - 360Flex
Building iPad apps with Flex - 360Flex
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
Neha Bhandari CV
Neha Bhandari CVNeha Bhandari CV
Neha Bhandari CV
 
Mallesh Aruri
Mallesh AruriMallesh Aruri
Mallesh Aruri
 
Mobiloitte ! Enterprise Mobility Corporate Overview
Mobiloitte ! Enterprise Mobility Corporate OverviewMobiloitte ! Enterprise Mobility Corporate Overview
Mobiloitte ! Enterprise Mobility Corporate Overview
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
 

Mais de Joshua Hoskins

The most important attributes of a World-class Remote Team
The most important attributes of a World-class Remote TeamThe most important attributes of a World-class Remote Team
The most important attributes of a World-class Remote TeamJoshua Hoskins
 
Original Blueprint & Recap for Community-led Salesforce Events
Original Blueprint & Recap for Community-led Salesforce EventsOriginal Blueprint & Recap for Community-led Salesforce Events
Original Blueprint & Recap for Community-led Salesforce EventsJoshua Hoskins
 
IdeaSpokes Community 2017 Recap
IdeaSpokes Community 2017 RecapIdeaSpokes Community 2017 Recap
IdeaSpokes Community 2017 RecapJoshua Hoskins
 
Release Management: Managing Your Internal Releases
Release Management: Managing Your Internal ReleasesRelease Management: Managing Your Internal Releases
Release Management: Managing Your Internal ReleasesJoshua Hoskins
 
Delivering Breakthrough Innovation via Appirio’s Crowdsourcing Platform
Delivering Breakthrough Innovation via Appirio’s Crowdsourcing PlatformDelivering Breakthrough Innovation via Appirio’s Crowdsourcing Platform
Delivering Breakthrough Innovation via Appirio’s Crowdsourcing PlatformJoshua Hoskins
 
Salary Negotiations, Knowing Your Worth and Not Settling for Less
Salary Negotiations, Knowing Your Worth and Not Settling for LessSalary Negotiations, Knowing Your Worth and Not Settling for Less
Salary Negotiations, Knowing Your Worth and Not Settling for LessJoshua Hoskins
 
Innovation Made Easy #Salesforce1TourLOndon
Innovation Made Easy #Salesforce1TourLOndonInnovation Made Easy #Salesforce1TourLOndon
Innovation Made Easy #Salesforce1TourLOndonJoshua Hoskins
 
Salesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinSalesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinJoshua Hoskins
 
[Topcoder] for Developers - Dublin Salesforce User Group
[Topcoder] for Developers - Dublin Salesforce User Group[Topcoder] for Developers - Dublin Salesforce User Group
[Topcoder] for Developers - Dublin Salesforce User GroupJoshua Hoskins
 
Deploying Web Chat & Voice Channels With Live Agent & CTI Integration
Deploying Web Chat & Voice Channels With Live Agent & CTI IntegrationDeploying Web Chat & Voice Channels With Live Agent & CTI Integration
Deploying Web Chat & Voice Channels With Live Agent & CTI IntegrationJoshua Hoskins
 
Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce IntegrationJoshua Hoskins
 
The Ideal Salesforce Development Lifecycle
The Ideal Salesforce Development LifecycleThe Ideal Salesforce Development Lifecycle
The Ideal Salesforce Development LifecycleJoshua Hoskins
 
London DUG 10/2013 - #CloudSpokes
London DUG 10/2013 - #CloudSpokesLondon DUG 10/2013 - #CloudSpokes
London DUG 10/2013 - #CloudSpokesJoshua Hoskins
 
Salesforce Marketing 101 for Non-Profits
Salesforce Marketing 101 for Non-Profits Salesforce Marketing 101 for Non-Profits
Salesforce Marketing 101 for Non-Profits Joshua Hoskins
 
Singapore User Group 10/2012
Singapore User Group 10/2012Singapore User Group 10/2012
Singapore User Group 10/2012Joshua Hoskins
 
Tools of a Successful Force.com Developer
Tools of a Successful Force.com DeveloperTools of a Successful Force.com Developer
Tools of a Successful Force.com DeveloperJoshua Hoskins
 
Me and My Career - About Me
Me and My Career - About MeMe and My Career - About Me
Me and My Career - About MeJoshua Hoskins
 
#DF2UFL 2012 - Developer’s Den
#DF2UFL 2012 - Developer’s Den#DF2UFL 2012 - Developer’s Den
#DF2UFL 2012 - Developer’s DenJoshua Hoskins
 
Singapore Non Profit SFDC User Group 8/2012
Singapore Non Profit SFDC User Group 8/2012Singapore Non Profit SFDC User Group 8/2012
Singapore Non Profit SFDC User Group 8/2012Joshua Hoskins
 
Orlando SFDC User Group 7/2011
Orlando SFDC User Group 7/2011Orlando SFDC User Group 7/2011
Orlando SFDC User Group 7/2011Joshua Hoskins
 

Mais de Joshua Hoskins (20)

The most important attributes of a World-class Remote Team
The most important attributes of a World-class Remote TeamThe most important attributes of a World-class Remote Team
The most important attributes of a World-class Remote Team
 
Original Blueprint & Recap for Community-led Salesforce Events
Original Blueprint & Recap for Community-led Salesforce EventsOriginal Blueprint & Recap for Community-led Salesforce Events
Original Blueprint & Recap for Community-led Salesforce Events
 
IdeaSpokes Community 2017 Recap
IdeaSpokes Community 2017 RecapIdeaSpokes Community 2017 Recap
IdeaSpokes Community 2017 Recap
 
Release Management: Managing Your Internal Releases
Release Management: Managing Your Internal ReleasesRelease Management: Managing Your Internal Releases
Release Management: Managing Your Internal Releases
 
Delivering Breakthrough Innovation via Appirio’s Crowdsourcing Platform
Delivering Breakthrough Innovation via Appirio’s Crowdsourcing PlatformDelivering Breakthrough Innovation via Appirio’s Crowdsourcing Platform
Delivering Breakthrough Innovation via Appirio’s Crowdsourcing Platform
 
Salary Negotiations, Knowing Your Worth and Not Settling for Less
Salary Negotiations, Knowing Your Worth and Not Settling for LessSalary Negotiations, Knowing Your Worth and Not Settling for Less
Salary Negotiations, Knowing Your Worth and Not Settling for Less
 
Innovation Made Easy #Salesforce1TourLOndon
Innovation Made Easy #Salesforce1TourLOndonInnovation Made Easy #Salesforce1TourLOndon
Innovation Made Easy #Salesforce1TourLOndon
 
Salesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - DublinSalesforce1 ELEVATE Workshop - Dublin
Salesforce1 ELEVATE Workshop - Dublin
 
[Topcoder] for Developers - Dublin Salesforce User Group
[Topcoder] for Developers - Dublin Salesforce User Group[Topcoder] for Developers - Dublin Salesforce User Group
[Topcoder] for Developers - Dublin Salesforce User Group
 
Deploying Web Chat & Voice Channels With Live Agent & CTI Integration
Deploying Web Chat & Voice Channels With Live Agent & CTI IntegrationDeploying Web Chat & Voice Channels With Live Agent & CTI Integration
Deploying Web Chat & Voice Channels With Live Agent & CTI Integration
 
Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce Integration
 
The Ideal Salesforce Development Lifecycle
The Ideal Salesforce Development LifecycleThe Ideal Salesforce Development Lifecycle
The Ideal Salesforce Development Lifecycle
 
London DUG 10/2013 - #CloudSpokes
London DUG 10/2013 - #CloudSpokesLondon DUG 10/2013 - #CloudSpokes
London DUG 10/2013 - #CloudSpokes
 
Salesforce Marketing 101 for Non-Profits
Salesforce Marketing 101 for Non-Profits Salesforce Marketing 101 for Non-Profits
Salesforce Marketing 101 for Non-Profits
 
Singapore User Group 10/2012
Singapore User Group 10/2012Singapore User Group 10/2012
Singapore User Group 10/2012
 
Tools of a Successful Force.com Developer
Tools of a Successful Force.com DeveloperTools of a Successful Force.com Developer
Tools of a Successful Force.com Developer
 
Me and My Career - About Me
Me and My Career - About MeMe and My Career - About Me
Me and My Career - About Me
 
#DF2UFL 2012 - Developer’s Den
#DF2UFL 2012 - Developer’s Den#DF2UFL 2012 - Developer’s Den
#DF2UFL 2012 - Developer’s Den
 
Singapore Non Profit SFDC User Group 8/2012
Singapore Non Profit SFDC User Group 8/2012Singapore Non Profit SFDC User Group 8/2012
Singapore Non Profit SFDC User Group 8/2012
 
Orlando SFDC User Group 7/2011
Orlando SFDC User Group 7/2011Orlando SFDC User Group 7/2011
Orlando SFDC User Group 7/2011
 

Último

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

How to Tango with Salesforce & jQueryMobile for HTML5 Goodness

  • 1. How to Tango with Salesforce & jQueryMobile for HTML5 Goodness By Joshua Hoskins | @jhoskins Moscone Center West, DevZone Unconference C
  • 2. All about Me Joshua Hoskins Technical Cloud Consultant at  Customer since 2006  Twitter: @jhoskins  User Group Leader since 2009  Email: jhoskins@CRMified.com  Currently in Singapore  LinkedIn:  Process Engineering http://www.linkedin.com/in/jhoskins  Implementation/Solution Delivery  Blog: CRMified.com  Data & Integrations Architect
  • 3. Agenda • Anatomy of a Visualforce Page • Exchanging Data with SFDC • Dynamically updating page content • Debug Javascript Errors • Gracefully Handle Apex Exceptions
  • 4. Components • Static Resources • Visualforce • Apex • Javascript • CSS (LESS is more!)
  • 5. Resources • jQuery Mobile - http://jquerymobile.com/ • jQuery - http://jquery.com/
  • 6. Page Anatomy • Add 'head', references to jQuery, jQuery Mobile and the mobile theme CSS are all required. • jQuery Mobile 1.1.1 and 1.7.1 versions of jQuery core. • Keep the jQuery libraries as static resources. • A Single Visualforce page will contain multiple mobile pages.
  • 7. Page Anatomy <apex:page showHeader="false" docType="html-5.0" standardStylesheets="false" cache="true" controller="ISG_MainApp_Ctrl" > <html> <head> <title>Page Title</title> <link rel="stylesheet" href="{!URLFOR($Resource.IBC_jQueryMobile_min_1_2_0, 'jquery.mobile-1.2.0-alpha.1/jquery.mobile-1.2.0-alpha.1.min.css')}" /> <link href="http://fonts.googleapis.com/css?family=Cantarell&subset=latin" rel="stylesheet" type="text/css" /> <apex:includeScript value="{!$Resource.IBC_jQuery_min_1_7_2}"/> <apex:includeScript value="{!URLFOR($Resource.IBC_jQueryMobile_min_1_2_0, 'jquery.mobile-1.2.0-alpha.1/jquery.mobile-1.2.0-alpha.1.min.js')}"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="expires" content="0"/> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <link rel="apple-touch-icon" sizes="72x72" href="{!URLFOR($Resource.IBC_Resources, 'ibc/img/Quadmark-logo-home.png')}" /> </head> <body> ...page content goes here... </body> </html> </apex:page>
  • 8. jQuery Mobile & Force.com • Initialize jQuery Mobile on the page • What is noConflict() on jQuery? <script> var $j = jQuery.noConflict(); $j(document).ready(init); function init() { // Initialization code goes here } </script>
  • 9. Page Content and Transitions • DIV Containers are Mobile Pages • Page Transitions switch DIV show to user • Requests are done by Ajax by default • Form Submissions & Data Requests • Set tag rel="external" on the form tag for standard HTML submit action • For best user experience include all Mobile Pages in One Visualforce Page
  • 10. Page Content and Transitions <div id="splash-page" data-role="page" data-theme="a" data-position="fixed"> <div data-role="header" data-position="fixed"> <h1>Initiating Business Conversations</h1> </div> <!-- /header --> <div data-role="content" align="center”> ..... page content, input components etc. goes here </div> Example: <a href="#close-conversation-page" data-role="button" data-icon="check" data-transition="slideup">Close</a>
  • 17. Lessons Learned • Coding can be Tedious • Apex vs. Javascript 50/50 • Create Branches for Dev & QA • 1 Controller, 1 VF Page • Less Custom CSS
  • 18. Joshua Hoskins Speaker
  • 19. Appirio Helps Enterprises Power Their Business with Public Cloud Solutions Helping Enterprises Become: Efficient Effective Agile Social Mobile Technology-enabled professional services, supported by 500 cloud experts and a 50,000+ cloud developer community 5 years, 300 enterprises, 1.5M users moved to the cloud 19

Notas do Editor

  1. Customer since 2006 User Group Leader since 2009 Currently in Singapore Companies I’ve worked for are listed.
  2. Many libraries including SF own make use of $ as function or variable name call noConflict method to prevent conflict with other libraries
  3. Single page serves as container for multiple mobile pages represented as div elements. Number of different page transitions are available typically jQuery simply switches div that is visible on mobile device to show a new page. Requests are done as ajax by default, things such as form submit for example The standard form submit or use of apex:form tag is possible only by turning OFF default ajax processing for the page segment (set tag rel=&quot;external&quot; on the form tag for standard HTML submit action) For best user experience and application performance it is best to have all pages in same HTML Open IDE
  4. Call remote Controller methods from jQuery, JavaScript Visual Force with Winter 12&apos; release introduced remote methods. Simple annotation @RemoteAction makes any controller method remote and can be called from page JavaScript can pass methods parameters as primitive types, sObjects and collections of primitives and sObjects Controller methods must be global static to be remote NOTE: Documentation states global or public but public methods do not work NOT visible some bug in APEX or VFP
  5. Call remote Controller methods from jQuery, JavaScript Visual Force with Winter 12&apos; release introduced remote methods. Simple annotation @RemoteAction makes any controller method remote and can be called from page JavaScript can pass methods parameters as primitive types, sObjects and collections of primitives and sObjects Controller methods must be global static to be remote NOTE: Documentation states global or public but public methods do not work NOT visible some bug in APEX or VFP
  6. Call remote Controller methods from jQuery, JavaScript Visual Force with Winter 12&apos; release introduced remote methods. Simple annotation @RemoteAction makes any controller method remote and can be called from page JavaScript can pass methods parameters as primitive types, sObjects and collections of primitives and sObjects Controller methods must be global static to be remote NOTE: Documentation states global or public but public methods do not work NOT visible some bug in APEX or VFP
  7. Call remote Controller methods from jQuery, JavaScript Visual Force with Winter 12&apos; release introduced remote methods. Simple annotation @RemoteAction makes any controller method remote and can be called from page JavaScript can pass methods parameters as primitive types, sObjects and collections of primitives and sObjects Controller methods must be global static to be remote NOTE: Documentation states global or public but public methods do not work NOT visible some bug in APEX or VFP
  8. Call remote Controller methods from jQuery, JavaScript Visual Force with Winter 12&apos; release introduced remote methods. Simple annotation @RemoteAction makes any controller method remote and can be called from page JavaScript can pass methods parameters as primitive types, sObjects and collections of primitives and sObjects Controller methods must be global static to be remote NOTE: Documentation states global or public but public methods do not work NOT visible some bug in APEX or VFP
  9. Call remote Controller methods from jQuery, JavaScript Visual Force with Winter 12&apos; release introduced remote methods. Simple annotation @RemoteAction makes any controller method remote and can be called from page JavaScript can pass methods parameters as primitive types, sObjects and collections of primitives and sObjects Controller methods must be global static to be remote NOTE: Documentation states global or public but public methods do not work NOT visible some bug in APEX or VFP
  10. Appirio helps enterprises power their business with cloud solutions like Salesforce, Google, Workday and Amazon By adopting, connecting and extending these and other cloud platforms, we can help customers to become more efficient, agile and effective than ever before We do this with professional services that are delivered by our 500+ cloud experts and supported by a 40,000 person developer community and unique technology built from over 1000 projects We ’ve been in business for 5 years, have worked with 300 enterprises and have moved more than 1.5M users to the public cloud We ’ve been privileged to work with many of the world’s largest and most forward thinking companies – Genentech, Dell, Home Depot, DeVry, PayPal, Facebook, Japan Post and many more