SlideShare a Scribd company logo
Challenges When
Going Mobile
using APEX & jQuery Mobile
Christian Rokitta
About me
โ€ข Oracle Developer since 1993
โ€ข Oracle Employee 1996-1999
โ€ข Developed web applications with
mod_plsql since 1999
โ€ข Developing with APEX since 2008
โ€ข Independent developer since 2010
โ€ข Speaker (5th Kscope)
โ€ข Author (Oracle APEX for mobile Web applications)
โ€ข Oracle ACE (2013)
โ€ข Trainer (APEX, CSS/HTML/JS)
โ€ข Product Development
Founding Member
Customer Case
apex.oracle.com/community
Customer Case
Customer Case
Agenda
โ€ข What makes jQuery Mobile different?
โ€ข How does this effect developing in APEX?
โ€ข What are effective tools to develop
mobile web applications?
What is jQuery Mobile
โ€ข jQuery Mobile is a touch-friendly UI
framework built on jQuery Core that works
across all popular mobile, tablet and desktop
platforms.
โ€ข Very simple (HTML) structure
โ€ข Look and Feel is applied after โ€œpageโ€ is loaded
Basic page template
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/[version]/jquery.mobile-[version].min.css
<script src="http://code.jquery.com/jquery-[version].min.js"></script>
<script src="http://code.jquery.com/mobile/[version]/jquery.mobile-[version].min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Page Title</h1>
</div><!-- /header -->
<div role="main" class="ui-content">
<p>Page content goes here.</p>
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
Multi-page template structure
A single HTML document can contain multiple
"pages" that are loaded together by stacking
multiple divs with a data-role of "page".
Each "page" block needs a unique id (id="foo") that
will be used to link internally between "pages"
(href="#foo").
When a link is clicked, the framework will look for
an internal "page" with the id and transition it into
view.
Multi-page template structure
<body>
<!-- Start of first page -->
<div data-role="page" id="foo">
<div data-role="header">
<h1>Foo</h1>
</div><!-- /header -->
<div role="main" class="ui-content">
โ€ฆ
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
</div><!-- /footer -->
</div><!-- /page -->
<!-- Start of second page -->
<div data-role="page" id="bar">
<div data-role="header">
<h1>Bar</h1>
</div><!-- /header -->
<div role="main" class="ui-content">
โ€ฆ
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
</div><!-- /footer -->
</div><!-- /page -->
</body>
Ajax Navigation
โ€ข jQuery Mobile includes an Ajax navigation system to support a rich set of
animated page transitions by automatically 'hijacking' standard links and
form submissions and turning them into an Ajax request.
โ€ข Whenever a link is clicked or a form is submitted, that event is
automatically intercepted by the Ajax nav system and is used to issue an
Ajax request based on the href or form action instead of reloading the
page.
โ€ข When the requested page loads, jQuery Mobile parses the document for
an element with the data-role="page" attribute, inserts that code into the
DOM of the original page and applies all the styles and behavior.
โ€ข Now that the requested page is in the DOM and enhanced, it is animated
into view with a transition.
โ€ข Whenever jQuery Mobile loads a page via Ajax, it flags the page to be
removed from the DOM when you navigate away from it later
How does this effect developing in APEX?
Remember!
The id attribute of all your elements must
be not only unique on a given page, but
also unique across the pages in a site.
This is because jQuery Mobile's single-page
navigation model allows many different
"pages" to be present in the DOM at the
same time.
Note to myself:
Donโ€™t forget to show the
strange behaviour after
F5-ing and submitting a
page!
Page Processing vs AJAX
โ€ข Speed/Bandwidth
โ€ข Page loading, as seen before
โ€ข User Experience
Implicit vs Explicit AJAX in APEX
โ€ข Implicit: using PL/SQL Dynamic Action
โ€“ less control except when using it โ€œSJAXโ€
โ€ข Explicit: using APEX Javascript API
โ€“ apex.server.process
โ€“ more coding
โ€“ more flexibility
Basic AJAX Call Syntax
apex.server.process("P7_AJAX_CALL", {
x01 : "test",
pageItems : "#P7_FIELD1,#P7_FIELD2"
}, {
dataType : "text",
success : function (pData) {
$s("P7_FIELD2", pData);
}
});
Adding Options to AJAX Call
apex.server.process("P7_AJAX_CALL", {
x01 : "test",
pageItems : "#P7_FIELD1,#P7_FIELD2"
}, {
dataType : "text",
success : function (pData) {
$s("P7_FIELD2", pData);
},
beforeSend : function () {
$.mobile.loading("show");
},
complete : function () {
$.mobile.loading("hide");
}
});
Testing and De-bugging
Browser Toolkit: Emulation
Emulate (Chrome):
โ€ข Device
โ€ข Network Throttle
โ€ข Touch Events
Demowhen time allows and connection works โ€ฆ
Remote Debugging
on Android with Chrome
Questions & Discussion
http://rokitta.blogspot.com
@crokitta
christian@rokitta.nl
http://www.themes4apex.com
http://plus.google.com/+ChristianRokitta
http://nl.linkedin.com/in/rokit/
Challenges going mobile

More Related Content

What's hot (20)

PPTX
SPSNH 2014 - The SharePoint & jQueryGuide
Mark Rackley
ย 
PPTX
SharePoint & jQuery Guide - SPSNashville 2014
Mark Rackley
ย 
PPTX
Introduction to Client Side Dev in SharePoint Workshop
Mark Rackley
ย 
PPTX
SPTechCon DevDays - SharePoint & jQuery
Mark Rackley
ย 
PPTX
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
Mark Rackley
ย 
PPTX
(Updated) SharePoint & jQuery Guide
Mark Rackley
ย 
PPTX
SharePoint Saturday St. Louis - SharePoint & jQuery
Mark Rackley
ย 
PPTX
SharePoint & jQuery Guide - SPSTC 5/18/2013
Mark Rackley
ย 
PPTX
SPTechCon - Share point and jquery essentials
Mark Rackley
ย 
PPTX
Bringing HTML5 alive in SharePoint
Chad Schroeder
ย 
PPTX
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
Mark Rackley
ย 
PPTX
A Power User's Intro to jQuery Awesomeness in SharePoint
Mark Rackley
ย 
PPTX
Intro to SharePoint Web Services
Mark Rackley
ย 
PPTX
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
Marko Goriฤki
ย 
KEY
HTML CSS & Javascript
David Lindkvist
ย 
PDF
Angular or Backbone: Go Mobile!
Doris Chen
ย 
PPTX
Transform SharePoint default list forms with HTML, CSS and JavaScript
John Calvert
ย 
PPTX
Using js link and display templates
Paul Hunt
ย 
PPTX
SUGUK Cambridge - Display Templates & JSLink for IT Pros
Paul Hunt
ย 
PPTX
What is SharePoint Development??
Mark Rackley
ย 
SPSNH 2014 - The SharePoint & jQueryGuide
Mark Rackley
ย 
SharePoint & jQuery Guide - SPSNashville 2014
Mark Rackley
ย 
Introduction to Client Side Dev in SharePoint Workshop
Mark Rackley
ย 
SPTechCon DevDays - SharePoint & jQuery
Mark Rackley
ย 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
Mark Rackley
ย 
(Updated) SharePoint & jQuery Guide
Mark Rackley
ย 
SharePoint Saturday St. Louis - SharePoint & jQuery
Mark Rackley
ย 
SharePoint & jQuery Guide - SPSTC 5/18/2013
Mark Rackley
ย 
SPTechCon - Share point and jquery essentials
Mark Rackley
ย 
Bringing HTML5 alive in SharePoint
Chad Schroeder
ย 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
Mark Rackley
ย 
A Power User's Intro to jQuery Awesomeness in SharePoint
Mark Rackley
ย 
Intro to SharePoint Web Services
Mark Rackley
ย 
APEX Alpe Adria 2019 - JavaScript in APEX - do it right!
Marko Goriฤki
ย 
HTML CSS & Javascript
David Lindkvist
ย 
Angular or Backbone: Go Mobile!
Doris Chen
ย 
Transform SharePoint default list forms with HTML, CSS and JavaScript
John Calvert
ย 
Using js link and display templates
Paul Hunt
ย 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
Paul Hunt
ย 
What is SharePoint Development??
Mark Rackley
ย 

Similar to Challenges going mobile (20)

PPTX
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
crokitta
ย 
PDF
Toutch Jquery Mobile
Jinlong He
ย 
PDF
Introduction to jQuery Mobile - Web Deliver for All
Marc Grabanski
ย 
PPTX
Introduction to jQuery Mobile
ejlp12
ย 
PDF
CodeFest 2014. ะŸัƒั…ะฐะปัŒัะบะธะน ะ˜. โ€” ะžั‚ะทั‹ะฒั‡ะธะฒั‹ะต ะบั€ะพััะฟะปะฐั‚ั„ะพั€ะผะตะฝะฝั‹ะต ะฒะตะฑ-ะฟั€ะธะปะพะถะตะฝะธั
CodeFest
ย 
PPT
How to Tango with Salesforce & jQueryMobile for HTML5 Goodness
Joshua Hoskins
ย 
PDF
Mume JQueryMobile Intro
Gonzalo Parra
ย 
PDF
20111014 mu me_j_querymobile
Erik Duval
ย 
PDF
Mobile themes, QR codes, and shortURLs
Harvard Web Working Group
ย 
PDF
Introduction to AngularJS
Jussi Pohjolainen
ย 
PPTX
Adobe & HTML5
Terry Ryan
ย 
PDF
Developing High Performance Web Apps
Timothy Fisher
ย 
KEY
Taking your Web App for a walk
Jens-Christian Fischer
ย 
PDF
Overview on jQuery mobile
Md. Ziaul Haq
ย 
KEY
Developing High Performance Web Apps - CodeMash 2011
Timothy Fisher
ย 
PDF
HTML5์™€ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ Web Components ๊ธฐ์ˆ 
Jeongkyu Shin
ย 
PDF
Building iPad apps with Flex - 360Flex
danielwanja
ย 
PDF
Web Development for UX Designers
Ashlimarie
ย 
PDF
TOC Workshop 2013
Haig Armen
ย 
PDF
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
ย 
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012
crokitta
ย 
Toutch Jquery Mobile
Jinlong He
ย 
Introduction to jQuery Mobile - Web Deliver for All
Marc Grabanski
ย 
Introduction to jQuery Mobile
ejlp12
ย 
CodeFest 2014. ะŸัƒั…ะฐะปัŒัะบะธะน ะ˜. โ€” ะžั‚ะทั‹ะฒั‡ะธะฒั‹ะต ะบั€ะพััะฟะปะฐั‚ั„ะพั€ะผะตะฝะฝั‹ะต ะฒะตะฑ-ะฟั€ะธะปะพะถะตะฝะธั
CodeFest
ย 
How to Tango with Salesforce & jQueryMobile for HTML5 Goodness
Joshua Hoskins
ย 
Mume JQueryMobile Intro
Gonzalo Parra
ย 
20111014 mu me_j_querymobile
Erik Duval
ย 
Mobile themes, QR codes, and shortURLs
Harvard Web Working Group
ย 
Introduction to AngularJS
Jussi Pohjolainen
ย 
Adobe & HTML5
Terry Ryan
ย 
Developing High Performance Web Apps
Timothy Fisher
ย 
Taking your Web App for a walk
Jens-Christian Fischer
ย 
Overview on jQuery mobile
Md. Ziaul Haq
ย 
Developing High Performance Web Apps - CodeMash 2011
Timothy Fisher
ย 
HTML5์™€ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ Web Components ๊ธฐ์ˆ 
Jeongkyu Shin
ย 
Building iPad apps with Flex - 360Flex
danielwanja
ย 
Web Development for UX Designers
Ashlimarie
ย 
TOC Workshop 2013
Haig Armen
ย 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
ย 
Ad

More from Christian Rokitta (13)

PPTX
Keep me moving goin mobile
Christian Rokitta
ย 
PPTX
Hitchhiker's guide to the Universal Theme
Christian Rokitta
ย 
PPTX
Browser Developer Tools for APEX Developers
Christian Rokitta
ย 
PPTX
Bootstrapify Universal Theme
Christian Rokitta
ย 
PPTX
Plugins unplugged
Christian Rokitta
ย 
PPTX
APEX & Cookie Monster
Christian Rokitta
ย 
PPTX
5 x HTML5 worth using in APEX (5)
Christian Rokitta
ย 
PPTX
Oracle APEX URLs Untangled & SEOptimized
Christian Rokitta
ย 
PPTX
Browser Developer Tools
Christian Rokitta
ย 
PPT
"Native" Apps with APEX and PhoneGap
Christian Rokitta
ย 
PPTX
Face off apex template and themes - 3.0 - k-scope11
Christian Rokitta
ย 
PPTX
Confessions of an APEX Design Geek
Christian Rokitta
ย 
PPTX
Oracle APEX & PhoneGap
Christian Rokitta
ย 
Keep me moving goin mobile
Christian Rokitta
ย 
Hitchhiker's guide to the Universal Theme
Christian Rokitta
ย 
Browser Developer Tools for APEX Developers
Christian Rokitta
ย 
Bootstrapify Universal Theme
Christian Rokitta
ย 
Plugins unplugged
Christian Rokitta
ย 
APEX & Cookie Monster
Christian Rokitta
ย 
5 x HTML5 worth using in APEX (5)
Christian Rokitta
ย 
Oracle APEX URLs Untangled & SEOptimized
Christian Rokitta
ย 
Browser Developer Tools
Christian Rokitta
ย 
"Native" Apps with APEX and PhoneGap
Christian Rokitta
ย 
Face off apex template and themes - 3.0 - k-scope11
Christian Rokitta
ย 
Confessions of an APEX Design Geek
Christian Rokitta
ย 
Oracle APEX & PhoneGap
Christian Rokitta
ย 
Ad

Recently uploaded (20)

PDF
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
ย 
PDF
AI Software Engineering based on Multi-view Modeling and Engineering Patterns
Hironori Washizaki
ย 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
ย 
PPTX
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
ย 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
ย 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
ย 
PDF
Troubleshooting Virtual Threads in Java!
Tier1 app
ย 
PDF
What companies do with Pharo (ESUG 2025)
ESUG
ย 
PDF
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
ย 
PPTX
Chess King 25.0.0.2500 With Crack Full Free Download
cracked shares
ย 
PDF
AI Image Enhancer: Revolutionizing Visual Qualityโ€
docmasoom
ย 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
ย 
PPTX
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
ย 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
ย 
PDF
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
ย 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
ย 
PDF
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
ย 
PPTX
Presentation about variables and constant.pptx
kr2589474
ย 
PPTX
Cutting Optimization Pro 5.18.2 Crack With Free Download
cracked shares
ย 
PDF
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
ย 
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
ย 
AI Software Engineering based on Multi-view Modeling and Engineering Patterns
Hironori Washizaki
ย 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
ย 
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
ย 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
ย 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
ย 
Troubleshooting Virtual Threads in Java!
Tier1 app
ย 
What companies do with Pharo (ESUG 2025)
ESUG
ย 
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
ย 
Chess King 25.0.0.2500 With Crack Full Free Download
cracked shares
ย 
AI Image Enhancer: Revolutionizing Visual Qualityโ€
docmasoom
ย 
Generating Union types w/ Static Analysis
K. Matthew Dupree
ย 
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
ย 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
ย 
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
ย 
Activate_Methodology_Summary presentatio
annapureddyn
ย 
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
ย 
Presentation about variables and constant.pptx
kr2589474
ย 
Cutting Optimization Pro 5.18.2 Crack With Free Download
cracked shares
ย 
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
ย 

Challenges going mobile

  • 1. Challenges When Going Mobile using APEX & jQuery Mobile Christian Rokitta
  • 2. About me โ€ข Oracle Developer since 1993 โ€ข Oracle Employee 1996-1999 โ€ข Developed web applications with mod_plsql since 1999 โ€ข Developing with APEX since 2008 โ€ข Independent developer since 2010 โ€ข Speaker (5th Kscope) โ€ข Author (Oracle APEX for mobile Web applications) โ€ข Oracle ACE (2013) โ€ข Trainer (APEX, CSS/HTML/JS) โ€ข Product Development
  • 7. Agenda โ€ข What makes jQuery Mobile different? โ€ข How does this effect developing in APEX? โ€ข What are effective tools to develop mobile web applications?
  • 8. What is jQuery Mobile โ€ข jQuery Mobile is a touch-friendly UI framework built on jQuery Core that works across all popular mobile, tablet and desktop platforms. โ€ข Very simple (HTML) structure โ€ข Look and Feel is applied after โ€œpageโ€ is loaded
  • 9. Basic page template <!DOCTYPE html> <html> <head> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://code.jquery.com/mobile/[version]/jquery.mobile-[version].min.css <script src="http://code.jquery.com/jquery-[version].min.js"></script> <script src="http://code.jquery.com/mobile/[version]/jquery.mobile-[version].min.js"></script> </head> <body> <div data-role="page"> <div data-role="header"> <h1>Page Title</h1> </div><!-- /header --> <div role="main" class="ui-content"> <p>Page content goes here.</p> </div><!-- /content --> <div data-role="footer"> <h4>Page Footer</h4> </div><!-- /footer --> </div><!-- /page --> </body> </html>
  • 10. Multi-page template structure A single HTML document can contain multiple "pages" that are loaded together by stacking multiple divs with a data-role of "page". Each "page" block needs a unique id (id="foo") that will be used to link internally between "pages" (href="#foo"). When a link is clicked, the framework will look for an internal "page" with the id and transition it into view.
  • 11. Multi-page template structure <body> <!-- Start of first page --> <div data-role="page" id="foo"> <div data-role="header"> <h1>Foo</h1> </div><!-- /header --> <div role="main" class="ui-content"> โ€ฆ </div><!-- /content --> <div data-role="footer"> <h4>Page Footer</h4> </div><!-- /footer --> </div><!-- /page --> <!-- Start of second page --> <div data-role="page" id="bar"> <div data-role="header"> <h1>Bar</h1> </div><!-- /header --> <div role="main" class="ui-content"> โ€ฆ </div><!-- /content --> <div data-role="footer"> <h4>Page Footer</h4> </div><!-- /footer --> </div><!-- /page --> </body>
  • 12. Ajax Navigation โ€ข jQuery Mobile includes an Ajax navigation system to support a rich set of animated page transitions by automatically 'hijacking' standard links and form submissions and turning them into an Ajax request. โ€ข Whenever a link is clicked or a form is submitted, that event is automatically intercepted by the Ajax nav system and is used to issue an Ajax request based on the href or form action instead of reloading the page. โ€ข When the requested page loads, jQuery Mobile parses the document for an element with the data-role="page" attribute, inserts that code into the DOM of the original page and applies all the styles and behavior. โ€ข Now that the requested page is in the DOM and enhanced, it is animated into view with a transition. โ€ข Whenever jQuery Mobile loads a page via Ajax, it flags the page to be removed from the DOM when you navigate away from it later
  • 13. How does this effect developing in APEX?
  • 14. Remember! The id attribute of all your elements must be not only unique on a given page, but also unique across the pages in a site. This is because jQuery Mobile's single-page navigation model allows many different "pages" to be present in the DOM at the same time.
  • 15. Note to myself: Donโ€™t forget to show the strange behaviour after F5-ing and submitting a page!
  • 16. Page Processing vs AJAX โ€ข Speed/Bandwidth โ€ข Page loading, as seen before โ€ข User Experience
  • 17. Implicit vs Explicit AJAX in APEX โ€ข Implicit: using PL/SQL Dynamic Action โ€“ less control except when using it โ€œSJAXโ€ โ€ข Explicit: using APEX Javascript API โ€“ apex.server.process โ€“ more coding โ€“ more flexibility
  • 18. Basic AJAX Call Syntax apex.server.process("P7_AJAX_CALL", { x01 : "test", pageItems : "#P7_FIELD1,#P7_FIELD2" }, { dataType : "text", success : function (pData) { $s("P7_FIELD2", pData); } });
  • 19. Adding Options to AJAX Call apex.server.process("P7_AJAX_CALL", { x01 : "test", pageItems : "#P7_FIELD1,#P7_FIELD2" }, { dataType : "text", success : function (pData) { $s("P7_FIELD2", pData); }, beforeSend : function () { $.mobile.loading("show"); }, complete : function () { $.mobile.loading("hide"); } });
  • 21. Browser Toolkit: Emulation Emulate (Chrome): โ€ข Device โ€ข Network Throttle โ€ข Touch Events Demowhen time allows and connection works โ€ฆ