SlideShare una empresa de Scribd logo
1 de 41
Keep me moving
Goin’ Mobile
with Universal Theme
and Beyond
Christian Rokitta
Bonn 2019
1993
today
1996 1999 2009 20152010 2011 2014
Oracle
Database
Version 6
Hoechst AG
Clinical Research
Frankfurt, Germany
Custom Development
Utrecht, Netherlands
<HTML>
Oracle Consultant/Product Development Manager
Utrecht, Netherlands
mod_plsql
Oracle Web Toolkit
JavaScript();
HTML DB
APEX
Speaker
Oracle Database & Application Express Consultant
Utrecht, Netherlands
{CSS}
proud member of
APEX UI Customization
Reporting Plug-in
Christian Rokitta
Out in the woods
Or in the city
It's all the same to me
When I'm driving free
The world's my home
When I'm mobile
… Keep me moving
Goin' Mobile / Who’s Next
The Who
4 of 36
Demand
Convenience
user & developer
Topics
5 of 36
Universal Theme Tools UX Discussion
Universal Theme
Mobile Patterns (5.1+)
Navigation
Headers and Footers
Data Entry
Touch Gestures
Mobile Components
7 of 36
Universal Theme
Mobile Patterns – Page Layout
• Navigation
• Top Menu: SM, MD & LG screen width
• Bottom Menu: XXS, XS screen width
• Navigation Bar
• Header
• Breadcrumb Region Position
• Button Region Template
• Footer
• Button Region Template
8 of 36
9 of 36
Universal Theme
Mobile Patterns – Navigation - User Interface Details
Universal Theme
Mobile Patterns – Navigation - Template Options
10 of 36
Universal Theme
Mobile Patterns – Data Entry
UI enhancements
UX challenges
11 of 36
Universal Theme
Mobile Patterns – Data Entry
text
12 of 36
Universal Theme
Mobile Patterns – Data Entry
email
13 of 36
Universal Theme
Mobile Patterns – Data Entry
date
14 of 36
$("input.html5-date").attr("type","date");
Universal Theme
Mobile Patterns – Data Entry
number
15 of 36
$("input.html5-tel").attr("type", "tel");
Universal Theme
Mobile Patterns – Touch Gestures
16 of 36
Exposed by predefined dynamic actions: using event data
this.data.pointerType: type of pointer (mouse or touch)
• tap this.data.tapCount
• press
• swipe this.data.offsetDirection (2 left, 4 right), this.data.distance
• pan this.data.offsetDirection (2 left, 4 right, 8 up, 16 down), this.data.isFinal
Universal Theme
Mobile Patterns – optimized Components
17 of 36
Universal Theme
Responsive Classes
18 of 36
Challenges
19 of 36
Universal Theme
Responsive?!
20 of 36
Universal Theme
Client Side vs Server Side
• Universal Theme
• Responsive Grid
• Utility Classes
• Server Side Device Detection?
• Who are you? – client device Categorizr for APEX (desktop, tablet, mobile)
http://rokitta.blogspot.com/2012/04/are-you-client-device-categorizr-for.html
• How are you? - Categorizr for APEX part 2: the Plug-in
(viewportWidth, g_viewportHeight, g_viewportOrientation)
http://rokitta.blogspot.com/2013/05/how-are-you-categorizr-for-apex-part-2.html
21 of 36
Universal Theme
Reduce Traffic
use AJAX
instead of Page rendering/processing cycle
• Declarative: Dynamic Action
some region types are not refreshable with build in dynamic action: PL/SQL Region, ListView, …
• JavaScript API: apex.server.process
22 of 36
Universal Theme
What I’m missing1
23 of 36
Page Transitions
It’s possible to add your own custom CSS
and jQuery code i.c.w. build in Touch
Gestures Dynamic Actions.
Demo?!
Universal Theme
What I’m missing2
24 of 36
Pagination in
Column Toogle and
Reflow Report
was available in jQuery Mobile
Universal Theme
What I’m missing3
25 of 36
Listview
Dynamic Load at
EndOfList/Scroll event
Infinite Scrolling
again: was available in jQuery Mobile
Universal Theme
What I’m missing4
26 of 36
Listview
Dynamic Load at
EndOfList/Scroll event
Infinite Scrolling
again: was available in jQuery Mobile
Beyond
Universal Theme
27 of 36
APEX vs PWA vs Hybrid vs Native
• APEX -> online first
• PWA (Progressive Web Apps) -> offline first
• Hybrid -> AppStore, WebView, advanced device API’s, files on device
• Native -> OS specific development
29 of 36
Progressive Web Apps (PWA)
• Fullscreen mobile experience
• Shortcut on Device
• Caching : Faster
• Collection of Browser API’s
• Service Workers
• Online/offline detection
• (push) Notifications (using Firebase)
• Local storage
• …
30 of 36
PWA Browser Support
31 of 36
https://caniuse.com/#feat=serviceworkers
PWA Browser Support - Mobile
32 of 36
https://caniuse.com/#feat=serviceworkers
PWA Concepts
Manifest
33 of 36
{
"short_name": "Goin",
"name": "Goin Mobile",
"icons": [
{
"src": "/c/goin/img/128/mobile_comment.png",
"type": "image/png",
"sizes": "128x128"
},
{
"src": "/c/goin/img/512/mobile_comment.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": "/ords/f?p=goin:home",
"background_color": "#DF1174",
"display": "standalone",
"scope": "/ords/",
"theme_color": "#DF1174"
}
<link rel="manifest" href="/goin.json">
PWA Concepts
Manifest
34 of 36
PWA Concepts
Manifest
• short_name and/or name
• icons
• start_url
• background_color
• display
• scope
• theme_color
• orientation
35 of 36
{
"short_name": "Goin",
"name": "Goin Mobile",
"icons": [
{
"src": "/c/goin/img/128/mobile_comment.png",
"type": "image/png",
"sizes": "128x128"
},
{
"src": "/c/goin/img/512/mobile_comment.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": "/ords/f?p=goin:home",
"background_color": "#DF1174",
"display": "standalone",
"scope": "/ords/",
"theme_color": "#DF1174"
}
PWA Concepts
Manifest - display
36 of 36
PWA Concepts
Add to Home Screen - aka web app install prompt
• web app is not already installed
• meets a user engagement heuristic
currently: the user has interacted with the domain for at least 30 seconds
• includes a web app manifest
• served over HTTPS (required for service workers)
• has registered a service worker with a fetch event handler
37 of 36
PWA Concepts
Add to Home Screen
38 of 36
Session:
Progressive Web Apps mit APEX
Till Albert MT AG
9. Mai, 15:15 – 16:00
Kameha Spirit
39 of 36
Bonn 2019
Blog: APEX as a PWA
Vincent Morneau - The Complete Guide
40 of 36
http://vmorneau.me/apex-pwa/
Q&A
www.iadvise.eu
www.apexsmartpivot.com
rokitta.blogspot.com
@crokitta @iadvise_live @apexsmartpivot
www.linkedin.com/in/rokit

Más contenido relacionado

Similar a Keep me moving goin mobile

Similar a Keep me moving goin mobile (20)

Industry Ontologies: Case Studies in Creating and Extending Schema.org for In...
Industry Ontologies: Case Studies in Creating and Extending Schema.org for In...Industry Ontologies: Case Studies in Creating and Extending Schema.org for In...
Industry Ontologies: Case Studies in Creating and Extending Schema.org for In...
 
Industry Ontologies: Case Studies in Creating and Extending Schema.org
Industry Ontologies: Case Studies in Creating and Extending Schema.org Industry Ontologies: Case Studies in Creating and Extending Schema.org
Industry Ontologies: Case Studies in Creating and Extending Schema.org
 
Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018
 
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs ReplacementUnder the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
Under the Hood with Cognos Analytics R5: Say Hello to Portal Tabs Replacement
 
Evolution from EDA to Data Mesh: Data in Motion
Evolution from EDA to Data Mesh: Data in MotionEvolution from EDA to Data Mesh: Data in Motion
Evolution from EDA to Data Mesh: Data in Motion
 
Siruna presentation Mobile Drupal @ Drupalcamp Colorado Jun09
Siruna presentation Mobile Drupal @ Drupalcamp Colorado Jun09Siruna presentation Mobile Drupal @ Drupalcamp Colorado Jun09
Siruna presentation Mobile Drupal @ Drupalcamp Colorado Jun09
 
Scratchpads: past, present and future
Scratchpads: past, present and futureScratchpads: past, present and future
Scratchpads: past, present and future
 
Scratchpads: past, present and future
Scratchpads: past, present and futureScratchpads: past, present and future
Scratchpads: past, present and future
 
Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
Cookbook for Building An App
Cookbook for Building An AppCookbook for Building An App
Cookbook for Building An App
 
New Opportunities for Connected Data - Emil Eifrem @ GraphConnect Boston + Ch...
New Opportunities for Connected Data - Emil Eifrem @ GraphConnect Boston + Ch...New Opportunities for Connected Data - Emil Eifrem @ GraphConnect Boston + Ch...
New Opportunities for Connected Data - Emil Eifrem @ GraphConnect Boston + Ch...
 
Daniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days OcDaniel Egan Msdn Tech Days Oc
Daniel Egan Msdn Tech Days Oc
 
"Going Offline", one of the hottest mobile app trends
"Going Offline", one of the hottest mobile app trends"Going Offline", one of the hottest mobile app trends
"Going Offline", one of the hottest mobile app trends
 
AI Solutions with Macnica.ai - AI Expo 2018 Tokyo Japan
AI Solutions with Macnica.ai - AI Expo 2018 Tokyo JapanAI Solutions with Macnica.ai - AI Expo 2018 Tokyo Japan
AI Solutions with Macnica.ai - AI Expo 2018 Tokyo Japan
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
 
A possible future role of schema.org for business reporting
A possible future role of schema.org for business reportingA possible future role of schema.org for business reporting
A possible future role of schema.org for business reporting
 
Mihai_Nuta
Mihai_NutaMihai_Nuta
Mihai_Nuta
 
Houston TechFest 2014 slidedeck
Houston TechFest 2014 slidedeckHouston TechFest 2014 slidedeck
Houston TechFest 2014 slidedeck
 
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
 

Más de Christian Rokitta

"Native" Apps with APEX and PhoneGap
"Native" Apps with APEX and PhoneGap"Native" Apps with APEX and PhoneGap
"Native" Apps with APEX and PhoneGap
Christian Rokitta
 
Face off apex template and themes - 3.0 - k-scope11
Face off   apex template and themes - 3.0 - k-scope11Face off   apex template and themes - 3.0 - k-scope11
Face off apex template and themes - 3.0 - k-scope11
Christian Rokitta
 

Más de Christian Rokitta (16)

Hitchhiker's guide to the Universal Theme
Hitchhiker's guide to the Universal ThemeHitchhiker's guide to the Universal Theme
Hitchhiker's guide to the Universal Theme
 
Browser Developer Tools for APEX Developers
Browser Developer Tools for APEX DevelopersBrowser Developer Tools for APEX Developers
Browser Developer Tools for APEX Developers
 
Bootstrapify Universal Theme
Bootstrapify Universal ThemeBootstrapify Universal Theme
Bootstrapify Universal Theme
 
Plugins unplugged
Plugins unpluggedPlugins unplugged
Plugins unplugged
 
Challenges going mobile
Challenges going mobileChallenges going mobile
Challenges going mobile
 
APEX & Cookie Monster
APEX & Cookie MonsterAPEX & Cookie Monster
APEX & Cookie Monster
 
5 x HTML5 worth using in APEX (5)
5 x HTML5 worth using in APEX (5)5 x HTML5 worth using in APEX (5)
5 x HTML5 worth using in APEX (5)
 
Oracle APEX URLs Untangled & SEOptimized
Oracle APEX URLs Untangled & SEOptimizedOracle APEX URLs Untangled & SEOptimized
Oracle APEX URLs Untangled & SEOptimized
 
Browser Developer Tools
Browser Developer ToolsBrowser Developer Tools
Browser Developer Tools
 
Responsive Web Design & APEX Theme 25 (OGh APEX World 2014)
Responsive Web Design & APEX Theme 25 (OGh APEX World 2014)Responsive Web Design & APEX Theme 25 (OGh APEX World 2014)
Responsive Web Design & APEX Theme 25 (OGh APEX World 2014)
 
"Native" Apps with APEX and PhoneGap
"Native" Apps with APEX and PhoneGap"Native" Apps with APEX and PhoneGap
"Native" Apps with APEX and PhoneGap
 
Apex & jQuery Mobile
Apex & jQuery MobileApex & jQuery Mobile
Apex & jQuery Mobile
 
Face off apex template and themes - 3.0 - k-scope11
Face off   apex template and themes - 3.0 - k-scope11Face off   apex template and themes - 3.0 - k-scope11
Face off apex template and themes - 3.0 - k-scope11
 
Responsive Web Design & APEX Theme 25
Responsive Web Design & APEX Theme 25Responsive Web Design & APEX Theme 25
Responsive Web Design & APEX Theme 25
 
Confessions of an APEX Design Geek
Confessions of an APEX Design GeekConfessions of an APEX Design Geek
Confessions of an APEX Design Geek
 
Oracle APEX & PhoneGap
Oracle APEX & PhoneGapOracle APEX & PhoneGap
Oracle APEX & PhoneGap
 

Último

Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
dharasingh5698
 

Último (20)

Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
22-prompt engineering noted slide shown.pdf
22-prompt engineering noted slide shown.pdf22-prompt engineering noted slide shown.pdf
22-prompt engineering noted slide shown.pdf
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
 

Keep me moving goin mobile

  • 1. Keep me moving Goin’ Mobile with Universal Theme and Beyond Christian Rokitta Bonn 2019
  • 2. 1993 today 1996 1999 2009 20152010 2011 2014 Oracle Database Version 6 Hoechst AG Clinical Research Frankfurt, Germany Custom Development Utrecht, Netherlands <HTML> Oracle Consultant/Product Development Manager Utrecht, Netherlands mod_plsql Oracle Web Toolkit JavaScript(); HTML DB APEX Speaker Oracle Database & Application Express Consultant Utrecht, Netherlands {CSS} proud member of APEX UI Customization Reporting Plug-in Christian Rokitta
  • 3. Out in the woods Or in the city It's all the same to me When I'm driving free The world's my home When I'm mobile … Keep me moving Goin' Mobile / Who’s Next The Who
  • 5. Topics 5 of 36 Universal Theme Tools UX Discussion
  • 6.
  • 7. Universal Theme Mobile Patterns (5.1+) Navigation Headers and Footers Data Entry Touch Gestures Mobile Components 7 of 36
  • 8. Universal Theme Mobile Patterns – Page Layout • Navigation • Top Menu: SM, MD & LG screen width • Bottom Menu: XXS, XS screen width • Navigation Bar • Header • Breadcrumb Region Position • Button Region Template • Footer • Button Region Template 8 of 36
  • 9. 9 of 36 Universal Theme Mobile Patterns – Navigation - User Interface Details
  • 10. Universal Theme Mobile Patterns – Navigation - Template Options 10 of 36
  • 11. Universal Theme Mobile Patterns – Data Entry UI enhancements UX challenges 11 of 36
  • 12. Universal Theme Mobile Patterns – Data Entry text 12 of 36
  • 13. Universal Theme Mobile Patterns – Data Entry email 13 of 36
  • 14. Universal Theme Mobile Patterns – Data Entry date 14 of 36 $("input.html5-date").attr("type","date");
  • 15. Universal Theme Mobile Patterns – Data Entry number 15 of 36 $("input.html5-tel").attr("type", "tel");
  • 16. Universal Theme Mobile Patterns – Touch Gestures 16 of 36 Exposed by predefined dynamic actions: using event data this.data.pointerType: type of pointer (mouse or touch) • tap this.data.tapCount • press • swipe this.data.offsetDirection (2 left, 4 right), this.data.distance • pan this.data.offsetDirection (2 left, 4 right, 8 up, 16 down), this.data.isFinal
  • 17. Universal Theme Mobile Patterns – optimized Components 17 of 36
  • 21. Universal Theme Client Side vs Server Side • Universal Theme • Responsive Grid • Utility Classes • Server Side Device Detection? • Who are you? – client device Categorizr for APEX (desktop, tablet, mobile) http://rokitta.blogspot.com/2012/04/are-you-client-device-categorizr-for.html • How are you? - Categorizr for APEX part 2: the Plug-in (viewportWidth, g_viewportHeight, g_viewportOrientation) http://rokitta.blogspot.com/2013/05/how-are-you-categorizr-for-apex-part-2.html 21 of 36
  • 22. Universal Theme Reduce Traffic use AJAX instead of Page rendering/processing cycle • Declarative: Dynamic Action some region types are not refreshable with build in dynamic action: PL/SQL Region, ListView, … • JavaScript API: apex.server.process 22 of 36
  • 23. Universal Theme What I’m missing1 23 of 36 Page Transitions It’s possible to add your own custom CSS and jQuery code i.c.w. build in Touch Gestures Dynamic Actions. Demo?!
  • 24. Universal Theme What I’m missing2 24 of 36 Pagination in Column Toogle and Reflow Report was available in jQuery Mobile
  • 25. Universal Theme What I’m missing3 25 of 36 Listview Dynamic Load at EndOfList/Scroll event Infinite Scrolling again: was available in jQuery Mobile
  • 26. Universal Theme What I’m missing4 26 of 36 Listview Dynamic Load at EndOfList/Scroll event Infinite Scrolling again: was available in jQuery Mobile
  • 28.
  • 29. APEX vs PWA vs Hybrid vs Native • APEX -> online first • PWA (Progressive Web Apps) -> offline first • Hybrid -> AppStore, WebView, advanced device API’s, files on device • Native -> OS specific development 29 of 36
  • 30. Progressive Web Apps (PWA) • Fullscreen mobile experience • Shortcut on Device • Caching : Faster • Collection of Browser API’s • Service Workers • Online/offline detection • (push) Notifications (using Firebase) • Local storage • … 30 of 36
  • 31. PWA Browser Support 31 of 36 https://caniuse.com/#feat=serviceworkers
  • 32. PWA Browser Support - Mobile 32 of 36 https://caniuse.com/#feat=serviceworkers
  • 33. PWA Concepts Manifest 33 of 36 { "short_name": "Goin", "name": "Goin Mobile", "icons": [ { "src": "/c/goin/img/128/mobile_comment.png", "type": "image/png", "sizes": "128x128" }, { "src": "/c/goin/img/512/mobile_comment.png", "type": "image/png", "sizes": "512x512" } ], "start_url": "/ords/f?p=goin:home", "background_color": "#DF1174", "display": "standalone", "scope": "/ords/", "theme_color": "#DF1174" } <link rel="manifest" href="/goin.json">
  • 35. PWA Concepts Manifest • short_name and/or name • icons • start_url • background_color • display • scope • theme_color • orientation 35 of 36 { "short_name": "Goin", "name": "Goin Mobile", "icons": [ { "src": "/c/goin/img/128/mobile_comment.png", "type": "image/png", "sizes": "128x128" }, { "src": "/c/goin/img/512/mobile_comment.png", "type": "image/png", "sizes": "512x512" } ], "start_url": "/ords/f?p=goin:home", "background_color": "#DF1174", "display": "standalone", "scope": "/ords/", "theme_color": "#DF1174" }
  • 36. PWA Concepts Manifest - display 36 of 36
  • 37. PWA Concepts Add to Home Screen - aka web app install prompt • web app is not already installed • meets a user engagement heuristic currently: the user has interacted with the domain for at least 30 seconds • includes a web app manifest • served over HTTPS (required for service workers) • has registered a service worker with a fetch event handler 37 of 36
  • 38. PWA Concepts Add to Home Screen 38 of 36
  • 39. Session: Progressive Web Apps mit APEX Till Albert MT AG 9. Mai, 15:15 – 16:00 Kameha Spirit 39 of 36 Bonn 2019
  • 40. Blog: APEX as a PWA Vincent Morneau - The Complete Guide 40 of 36 http://vmorneau.me/apex-pwa/

Notas del editor

  1. Navigation Bar: std drop down. Might want to change
  2. The web app manifest is a simple JSON file that tells the browser about your web application and how it should behave when 'installed' on the user's mobile device or desktop. Having a manifest is required by Chrome to show the Add to Home Screen prompt.
  3. The web app manifest is a simple JSON file that tells the browser about your web application and how it should behave when 'installed' on the user's mobile device or desktop. Having a manifest is required by Chrome to show the Add to Home Screen prompt.
  4. short_name and/or name You must provide at least the short_name or name property. If both are provided, short_name is used on the user's home screen, launcher, or other places where icons When a user adds your site to their home screen, you can define a set of icons for the browser to use. These icons are used in places like the home screen, app launcher, task switcher, splash screen, etc. space may be limited. name is used in the app install prompt. start_url The start_url tells the browser where your application should start when it is launched, and prevents the app from starting on whatever page the user was on when they added your app to their home screen. scope The scope defines the set of URLs that the browser considers to be within your app, and is used to decide when the user has left the app. The scope controls the URL structure that encompasses all the entry and exit points in your web app. Your start_url must reside within the scope. theme_color The theme_color sets the color of the tool bar, and may be reflected in the app's preview in task switchers.
  5. short_name and/or name You must provide at least the short_name or name property. If both are provided, short_name is used on the user's home screen, launcher, or other places where icons When a user adds your site to their home screen, you can define a set of icons for the browser to use. These icons are used in places like the home screen, app launcher, task switcher, splash screen, etc. space may be limited. name is used in the app install prompt. start_url The start_url tells the browser where your application should start when it is launched, and prevents the app from starting on whatever page the user was on when they added your app to their home screen. scope The scope defines the set of URLs that the browser considers to be within your app, and is used to decide when the user has left the app. The scope controls the URL structure that encompasses all the entry and exit points in your web app. Your start_url must reside within the scope. theme_color The theme_color sets the color of the tool bar, and may be reflected in the app's preview in task switchers.
  6. short_name and/or name You must provide at least the short_name or name property. If both are provided, short_name is used on the user's home screen, launcher, or other places where icons When a user adds your site to their home screen, you can define a set of icons for the browser to use. These icons are used in places like the home screen, app launcher, task switcher, splash screen, etc. space may be limited. name is used in the app install prompt. start_url The start_url tells the browser where your application should start when it is launched, and prevents the app from starting on whatever page the user was on when they added your app to their home screen. scope The scope defines the set of URLs that the browser considers to be within your app, and is used to decide when the user has left the app. The scope controls the URL structure that encompasses all the entry and exit points in your web app. Your start_url must reside within the scope. theme_color The theme_color sets the color of the tool bar, and may be reflected in the app's preview in task switchers.
  7. short_name and/or name You must provide at least the short_name or name property. If both are provided, short_name is used on the user's home screen, launcher, or other places where icons When a user adds your site to their home screen, you can define a set of icons for the browser to use. These icons are used in places like the home screen, app launcher, task switcher, splash screen, etc. space may be limited. name is used in the app install prompt. start_url The start_url tells the browser where your application should start when it is launched, and prevents the app from starting on whatever page the user was on when they added your app to their home screen. scope The scope defines the set of URLs that the browser considers to be within your app, and is used to decide when the user has left the app. The scope controls the URL structure that encompasses all the entry and exit points in your web app. Your start_url must reside within the scope. theme_color The theme_color sets the color of the tool bar, and may be reflected in the app's preview in task switchers.
  8. short_name and/or name You must provide at least the short_name or name property. If both are provided, short_name is used on the user's home screen, launcher, or other places where icons When a user adds your site to their home screen, you can define a set of icons for the browser to use. These icons are used in places like the home screen, app launcher, task switcher, splash screen, etc. space may be limited. name is used in the app install prompt. start_url The start_url tells the browser where your application should start when it is launched, and prevents the app from starting on whatever page the user was on when they added your app to their home screen. scope The scope defines the set of URLs that the browser considers to be within your app, and is used to decide when the user has left the app. The scope controls the URL structure that encompasses all the entry and exit points in your web app. Your start_url must reside within the scope. theme_color The theme_color sets the color of the tool bar, and may be reflected in the app's preview in task switchers.
  9. short_name and/or name You must provide at least the short_name or name property. If both are provided, short_name is used on the user's home screen, launcher, or other places where icons When a user adds your site to their home screen, you can define a set of icons for the browser to use. These icons are used in places like the home screen, app launcher, task switcher, splash screen, etc. space may be limited. name is used in the app install prompt. start_url The start_url tells the browser where your application should start when it is launched, and prevents the app from starting on whatever page the user was on when they added your app to their home screen. scope The scope defines the set of URLs that the browser considers to be within your app, and is used to decide when the user has left the app. The scope controls the URL structure that encompasses all the entry and exit points in your web app. Your start_url must reside within the scope. theme_color The theme_color sets the color of the tool bar, and may be reflected in the app's preview in task switchers.