SlideShare a Scribd company logo
1 of 51
Download to read offline
Running ADF Faces on
Tablets and Mobile Devices
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
Tablets and Mobile Devices
Steven Davelaar
ADF/Webcenter A-Team
Oracle Corporation
@stevendavelaar
The following is intended to outline our general product
direction. It is intended for information purposes only, and
may not be incorporated into any contract.
It is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2
functionality, and should not be relied upon in making
purchasing decisions. The development, release, and timing
of any features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.
Agenda
UI Design for Tablets / Mobile Phones
Introduction into Responsive Web Design
Implementing Client-Side Responsive Web Design
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3
Implementing Server-Side Adaptive Web Design
Using HTML 5 Input Types
Mobile Device Integration
UI Design for Tablets / Mobile Phones
Understand the Mobile User Interface
– Touch screen instead of mouse
– No external keyboard
– Smaller screen size, portrait vs landscape mode
“Easy” to Deal with From Technical Perspective
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4
– Support touch gestures
– Use responsive web design to keep app usable with smaller screens
Ignores Fundamental Differences in Usage
– Natural User Interface vs Graphical User Interface
– Check Out Oracle UX Patterns and Guidelines (See tomorrow’s sessions)
Overview of Tablet and Phone Viewport Sizes
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5
http://i-skool.co.uk/mobile-development/web-design-for-mobiles-and-tablets-viewport-sizes/
Introduction to Response Web Design (RWD)
Wikipedia: RWD is aimed at crafting sites to provide
– an optimal viewing experience
– easy reading and navigation with a minimum of resizing, panning, and
scrolling
– across a wide range of devices (from mobile phones to desktop computer
monitors
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6
monitors
Aspects of RWD
– Fluid grids: sizing relative(%) rather than absolute (pixels, points)
– Media Queries: Use different CSS styles based on screen dimensions
– Flexible Images: Images that resize based on screen dimensions
RWD in ADF Faces
Use panelGroupLayout elements
– Set layout=“vertical”: generates simple HTML <div> element
– Set styleClass property with width in percentage and float:left
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7
– Change styleClass properties using media queries
Define media queries in separate CSS file
– Media queries cannot be defined in skinning CSS file
Do NOT use stretching layouts or panelGridLayout
ADF Faces – RWD Example
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8
ADF Faces RWD Example – Media Queries
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9
Media queries can be defined in CSS skinning file as of JDev 12.1.3
ADF Faces RWD Example – Media Queries
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10
ADF Faces RWD Example in Action
Media Query Breakpoints
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11
950px730px320px
RWD Example in Action – Width > 950px
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12
PanelForm 1 width: 50%
PanelForm 2 and 3 width: 25%
RWD Example in Action – Width 730-950px
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13
PanelForm 1 width: 66%
PanelForm 2 and 3 width: 33%
– (bug causes panel form 3 header to disappear)
RWD Example in Action – Width 320-730px
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14
PanelForm 1 width: 100%
PanelForm 2 and 3 width: 50%
RWD Example in Action – Width < 320px
PanelForm 1 width: 100%
PanelForm 2 and 3 width: 100%
Would be nice to lay out
panelForm1 with 1 column instead
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15
panelForm1 with 1 column instead
of 2
– Can be done using
Window.matchMedia Listener
RWD Example – Window.matchMedia Listener
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16
RWD Example – Window.matchMedia Listener
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17
RWD Example – Window.matchMedia Listener
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18
Notes on Window.matchMedia Listeners
Only supported by newer (IE) browsers (IE10+)
– Check out http://caniuse.com/#feat=matchmedia
Requires client-side lookup of ADF Faces components
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19
– Client Id can be difficult to derive when using nested naming containers
– There can be many components on many pages that need client-side
manipulation
– Can result in ugly, large if-then-else Javascript methods
– Solution as of JDeveloper 12.1.2: clientListener type “mediaEvent”
JDev 12.1.2 – clientListener Type mediaEvent
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20
JDev 12.1.2 – clientListener Type mediaEvent
Clean component-specific methods, easy component lookup
Requires complex generic JavaScript (not shown on slides)
– JavaScript code to invoke the method specified in clientListener must be
written by you!
Traverse complete component tree client-side
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21
– Traverse complete component tree client-side
– Register each component with clientListener type “mediaEvent”
– Within each matchMedia listener method, loop over components and
invoke the associated JS method using AdfCustomEvent.queue
Will become completely declarative in JDev 12.1.4
– New component tag for adding a media event behavior
RWD Example – Test On Phone / Tablet
Initial page has unreadable small font
RWD doesn’t seem to work
Screen readable after first user interaction
Fix: add viewport metadata tag
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22
Google: “don't forget the viewport meta tag”
Server-side Adaptive Design
Client-side responsive design techniques are usually not enough for
ADF Faces applications
For more dramatic changes in layout, we need to go to the server
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23
– Use EL in layout properties that reference screen dimensions
– Dynamic switching between page templates
– Traversing UI components tree to programmatically change layout
Go to server on page load to communicate screen dimensions
Go to server when device orientation changes
Server-side Adaptive Design
Go to server on page load to “communicate” screen dimensions
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24
Server-side Adaptive Design
Go to server on page load to “communicate” screen dimensions
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25
Server-side Adaptive Design
Go to server on page load to “communicate” screen dimensions
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26
Server-side Adaptive Design
Go to server when device orientation changes
Add call to callSetScreenSize in matchMedia listener method
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27
Obtaining Browser Agent Info at Server
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28
Convenience Methods in AgentInfoBean
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29
Dynamic Page Templates
Use EL Expression in viewId property
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30
Dynamic Page Templates
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31
Changing UI Component Tree at Runtime
EL expressions to optimize rendering for each device type works fine
– Requires you to go into each and every page
– Not very flexible when you need to support new device types
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32
A programmatic but more generic and flexible alternative:
– Traverse UI component tree at runtime
– Change UI component properties as desired based on agent/screen info
– Implement Using VisitCallBack pattern and JSF phase listener
Changing UI Component Tree at Runtime
Implement VisitCallBack Interface
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33
Changing UI Component Tree at Runtime
Calling MobileRenderingVisitCallBack From JSF Phase Listener
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34
Changing UI Component Tree at Runtime
Register Phase Listener as Bean and Invoke From Page
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35
Changing UI Component Tree at Runtime
Setting PanelFormLayout Max Columns Server-Side
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36
Changing UI Component Tree at Runtime
ADF Faces table scrollbars are automatically replaced with pagination
controls on touch devices
Pagination size controlled by fetchSize property (JDev 11.1.1.x) or
autoHeightRows property (JDev 12.1.x)
Fixing Table Pagination
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37
Number of rows visible on screen should match value of these
properties
– If not, confusing user experience: both swiping and pagination needed
when number of rows visible is lower
JDev 12.1.3 will support tablet-optimized table scrolling
Consider using listView instead of table component!
Changing UI Component Tree at Runtime
Fixing Table Pagination
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38
Changing UI Component Tree at Runtime
Fixing Table Pagination
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39
Changing UI Component Tree at Runtime
Hiding Surrounding Panel Collection
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40
Changing UI Component Tree at Runtime
Handling Wide Tables – Move Items to Overflow Area
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41
HTML 5 Input Types
New HTML 5 input types: color, date(time), email, month, number,
range, search, tel, time, url, week
These input types allow better input control and validation
Can easily be used in ADF Faces though usage property
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42
usage
– Does NOT work in JDev 11.1.2.x, only 11.1.1.x and 12.1.x
Specify as EL expression to prevent design-time error underlining
HTML 5 Input Types
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43
HTML 5 Input Types
Enable By Changing Component Tree at Runtime
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44
Mobile Device Integration
Integration with phone, contacts: af:goLink with tel: prefix
Integration with mail: af:goLink with mailto: prefix
Integration with Google Maps: af:goLink with google maps URL
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.45
Integration with Google Maps: af:goLink with google maps URL
Mobile Device Integration
Use JavaScript method to get current GPS coordinates
– navigator.geolocation.getCurrentPosition
Use clientListener to invoke this JS method
Using Current Location Information Server-Side
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.46
Use serverListener to invoke managed bean with coordinates
– Queue ADF custom event in JS method
Use dvt:map component to visualize current location
Mobile Device Integration
Using Current Location Information Server-Side
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.47
Mobile Device Integration
Using Current Location Information Server-Side
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.48
JDeveloper 12.1.3 RWD Goodies
New Tablet-First Page Template
– Optimized for tablet-landscape and desktop
Client-side CSS rules
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.49
– ADF skinning framework now supports client side rules such as @charset,
@document, @font-face, @import, @keyframes, @media, @page,
@supports.
Optimized table scrolling on tablets
– A.k.a. “high water mark scrolling”
More Info
Going Mobile with ADF – Running ADF Faces on Mobile Phones and
Tablets
– http://www.ateam-oracle.com/going-mobile-with-adf-running-adf-faces-on-
mobile-phones-and-tablets/
ADF-WebCenter Responsive-Adaptive Design Beyond
– http://www.ateam-oracle.com/adf-webcenter-responsive-adaptive-design-
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.50
– http://www.ateam-oracle.com/adf-webcenter-responsive-adaptive-design-
beyond/
Responsive Design for your ADF Faces Web Application
– https://blogs.oracle.com/shay/entry/responsive_design_for_your_adf
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.51

More Related Content

Viewers also liked

Designing well known websites with ADF Rich Faces
Designing well known websites with ADF Rich FacesDesigning well known websites with ADF Rich Faces
Designing well known websites with ADF Rich Facesmaikorocha
 
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co... The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...Lucas Jellema
 
ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)Wilfred van der Deijl
 
Building a custom Oracle ADF Component
Building a custom Oracle ADF ComponentBuilding a custom Oracle ADF Component
Building a custom Oracle ADF ComponentWilfred van der Deijl
 
18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF InteractionSteven Davelaar
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOASteven Davelaar
 
Talking Services with Oracle ADF and Oracle SOA Suite
Talking Services with Oracle ADF and Oracle SOA SuiteTalking Services with Oracle ADF and Oracle SOA Suite
Talking Services with Oracle ADF and Oracle SOA SuiteDataNext Solutions
 
Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF OverviewBahaa Farouk
 
Working with Portlets in ADF and Webcenter
Working with Portlets in ADF and WebcenterWorking with Portlets in ADF and Webcenter
Working with Portlets in ADF and WebcenterDataNext Solutions
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersDataNext Solutions
 
JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...
JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...
JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...Steven Davelaar
 
ADF - Layout Managers and Skinning
ADF - Layout Managers and SkinningADF - Layout Managers and Skinning
ADF - Layout Managers and SkinningGeorge Estebe
 

Viewers also liked (16)

Designing well known websites with ADF Rich Faces
Designing well known websites with ADF Rich FacesDesigning well known websites with ADF Rich Faces
Designing well known websites with ADF Rich Faces
 
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co... The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 
so-aDF
so-aDFso-aDF
so-aDF
 
Reporting solutions for ADF Applications
Reporting solutions for ADF ApplicationsReporting solutions for ADF Applications
Reporting solutions for ADF Applications
 
ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)
 
Building a custom Oracle ADF Component
Building a custom Oracle ADF ComponentBuilding a custom Oracle ADF Component
Building a custom Oracle ADF Component
 
18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction
 
Oracle ADF Case Study
Oracle ADF Case StudyOracle ADF Case Study
Oracle ADF Case Study
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
 
Talking Services with Oracle ADF and Oracle SOA Suite
Talking Services with Oracle ADF and Oracle SOA SuiteTalking Services with Oracle ADF and Oracle SOA Suite
Talking Services with Oracle ADF and Oracle SOA Suite
 
Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF Overview
 
Working with Portlets in ADF and Webcenter
Working with Portlets in ADF and WebcenterWorking with Portlets in ADF and Webcenter
Working with Portlets in ADF and Webcenter
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for Beginners
 
JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...
JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...
JHeadstart Forms2ADF Generator – Migrating from Oracle Forms to a Best-Practi...
 
ADF - Layout Managers and Skinning
ADF - Layout Managers and SkinningADF - Layout Managers and Skinning
ADF - Layout Managers and Skinning
 
ADF in action 1.2
ADF in action 1.2ADF in action 1.2
ADF in action 1.2
 

Similar to Running ADF Faces on Tablets and Mobile Phones

Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationChris Muir
 
Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesChris Muir
 
Oracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable ArtifactsOracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable ArtifactsChris Muir
 
Revised Adf security in a project centric environment
Revised Adf security in a project centric environmentRevised Adf security in a project centric environment
Revised Adf security in a project centric environmentJean-Marc Desvaux
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerBerry Clemens
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...Chris Muir
 
206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforce206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforcep6academy
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewChris Muir
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Davalen LLC
 
Webinar Recording "Best Practices in RWD - Responsive Web Design"
Webinar Recording "Best Practices in RWD - Responsive Web Design"Webinar Recording "Best Practices in RWD - Responsive Web Design"
Webinar Recording "Best Practices in RWD - Responsive Web Design"Sachin Katariya
 
Oracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesOracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesChris Muir
 
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREIResponsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREIhannonhill
 
20101007 how smart use cases drive web development
20101007   how smart use cases drive web development20101007   how smart use cases drive web development
20101007 how smart use cases drive web developmentSander Hoogendoorn
 
SharePoint Site Redesign : Information Architecture and User-centered Design ...
SharePoint Site Redesign : Information Architecture and User-centered Design ...SharePoint Site Redesign : Information Architecture and User-centered Design ...
SharePoint Site Redesign : Information Architecture and User-centered Design ...arsathe
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Chris Muir
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesChris Muir
 
Liquidizer.js: A Responsive Web Design Algorithm
Liquidizer.js: A Responsive Web Design AlgorithmLiquidizer.js: A Responsive Web Design Algorithm
Liquidizer.js: A Responsive Web Design Algorithmtheijes
 

Similar to Running ADF Faces on Tablets and Mobile Phones (20)

Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
 
Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best Practices
 
Adf mobile overview
Adf mobile overviewAdf mobile overview
Adf mobile overview
 
Oracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable ArtifactsOracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable Artifacts
 
Revised Adf security in a project centric environment
Revised Adf security in a project centric environmentRevised Adf security in a project centric environment
Revised Adf security in a project centric environment
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
 
206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforce206590 mobilizing your primavera workforce
206590 mobilizing your primavera workforce
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow Overview
 
Sewtz apex ui
Sewtz apex uiSewtz apex ui
Sewtz apex ui
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
 
Webinar Recording "Best Practices in RWD - Responsive Web Design"
Webinar Recording "Best Practices in RWD - Responsive Web Design"Webinar Recording "Best Practices in RWD - Responsive Web Design"
Webinar Recording "Best Practices in RWD - Responsive Web Design"
 
Oracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesOracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project Dependencies
 
Application development framework
Application development frameworkApplication development framework
Application development framework
 
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREIResponsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
Responsive Web Design in Cascade Server, by Chris Cox of BarkleyREI
 
20101007 how smart use cases drive web development
20101007   how smart use cases drive web development20101007   how smart use cases drive web development
20101007 how smart use cases drive web development
 
SharePoint Site Redesign : Information Architecture and User-centered Design ...
SharePoint Site Redesign : Information Architecture and User-centered Design ...SharePoint Site Redesign : Information Architecture and User-centered Design ...
SharePoint Site Redesign : Information Architecture and User-centered Design ...
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service Architectures
 
Liquidizer.js: A Responsive Web Design Algorithm
Liquidizer.js: A Responsive Web Design AlgorithmLiquidizer.js: A Responsive Web Design Algorithm
Liquidizer.js: A Responsive Web Design Algorithm
 

More from Steven Davelaar

Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSSteven Davelaar
 
A-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator OverviewA-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator OverviewSteven Davelaar
 
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...Steven Davelaar
 
Implementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFImplementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFSteven Davelaar
 
Upcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST supportUpcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST supportSteven Davelaar
 
Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)
Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)
Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)Steven Davelaar
 
Building Highly Reusable Taskflows
Building Highly Reusable TaskflowsBuilding Highly Reusable Taskflows
Building Highly Reusable TaskflowsSteven Davelaar
 

More from Steven Davelaar (8)

Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
 
A-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator OverviewA-Team Mobile Persistence Accelerator Overview
A-Team Mobile Persistence Accelerator Overview
 
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
The Mobile Enterprise in Action: Managing Business Processes from Your Mobile...
 
Implementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFImplementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAF
 
Upcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST supportUpcoming JDeveloper ADF Business Components REST support
Upcoming JDeveloper ADF Business Components REST support
 
Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)
Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)
Empowering Multi-tasking with an ADF UI Powerhouse (UIShell with dynamic tabs)
 
Building Highly Reusable Taskflows
Building Highly Reusable TaskflowsBuilding Highly Reusable Taskflows
Building Highly Reusable Taskflows
 

Recently uploaded

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 

Recently uploaded (20)

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 

Running ADF Faces on Tablets and Mobile Phones

  • 1. Running ADF Faces on Tablets and Mobile Devices Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1 Tablets and Mobile Devices Steven Davelaar ADF/Webcenter A-Team Oracle Corporation @stevendavelaar
  • 2. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2 functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 3. Agenda UI Design for Tablets / Mobile Phones Introduction into Responsive Web Design Implementing Client-Side Responsive Web Design Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3 Implementing Server-Side Adaptive Web Design Using HTML 5 Input Types Mobile Device Integration
  • 4. UI Design for Tablets / Mobile Phones Understand the Mobile User Interface – Touch screen instead of mouse – No external keyboard – Smaller screen size, portrait vs landscape mode “Easy” to Deal with From Technical Perspective Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4 – Support touch gestures – Use responsive web design to keep app usable with smaller screens Ignores Fundamental Differences in Usage – Natural User Interface vs Graphical User Interface – Check Out Oracle UX Patterns and Guidelines (See tomorrow’s sessions)
  • 5. Overview of Tablet and Phone Viewport Sizes Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5 http://i-skool.co.uk/mobile-development/web-design-for-mobiles-and-tablets-viewport-sizes/
  • 6. Introduction to Response Web Design (RWD) Wikipedia: RWD is aimed at crafting sites to provide – an optimal viewing experience – easy reading and navigation with a minimum of resizing, panning, and scrolling – across a wide range of devices (from mobile phones to desktop computer monitors Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6 monitors Aspects of RWD – Fluid grids: sizing relative(%) rather than absolute (pixels, points) – Media Queries: Use different CSS styles based on screen dimensions – Flexible Images: Images that resize based on screen dimensions
  • 7. RWD in ADF Faces Use panelGroupLayout elements – Set layout=“vertical”: generates simple HTML <div> element – Set styleClass property with width in percentage and float:left Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7 – Change styleClass properties using media queries Define media queries in separate CSS file – Media queries cannot be defined in skinning CSS file Do NOT use stretching layouts or panelGridLayout
  • 8. ADF Faces – RWD Example Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8
  • 9. ADF Faces RWD Example – Media Queries Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9 Media queries can be defined in CSS skinning file as of JDev 12.1.3
  • 10. ADF Faces RWD Example – Media Queries Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10
  • 11. ADF Faces RWD Example in Action Media Query Breakpoints Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11 950px730px320px
  • 12. RWD Example in Action – Width > 950px Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12 PanelForm 1 width: 50% PanelForm 2 and 3 width: 25%
  • 13. RWD Example in Action – Width 730-950px Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13 PanelForm 1 width: 66% PanelForm 2 and 3 width: 33% – (bug causes panel form 3 header to disappear)
  • 14. RWD Example in Action – Width 320-730px Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14 PanelForm 1 width: 100% PanelForm 2 and 3 width: 50%
  • 15. RWD Example in Action – Width < 320px PanelForm 1 width: 100% PanelForm 2 and 3 width: 100% Would be nice to lay out panelForm1 with 1 column instead Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15 panelForm1 with 1 column instead of 2 – Can be done using Window.matchMedia Listener
  • 16. RWD Example – Window.matchMedia Listener Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16
  • 17. RWD Example – Window.matchMedia Listener Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17
  • 18. RWD Example – Window.matchMedia Listener Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18
  • 19. Notes on Window.matchMedia Listeners Only supported by newer (IE) browsers (IE10+) – Check out http://caniuse.com/#feat=matchmedia Requires client-side lookup of ADF Faces components Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19 – Client Id can be difficult to derive when using nested naming containers – There can be many components on many pages that need client-side manipulation – Can result in ugly, large if-then-else Javascript methods – Solution as of JDeveloper 12.1.2: clientListener type “mediaEvent”
  • 20. JDev 12.1.2 – clientListener Type mediaEvent Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20
  • 21. JDev 12.1.2 – clientListener Type mediaEvent Clean component-specific methods, easy component lookup Requires complex generic JavaScript (not shown on slides) – JavaScript code to invoke the method specified in clientListener must be written by you! Traverse complete component tree client-side Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21 – Traverse complete component tree client-side – Register each component with clientListener type “mediaEvent” – Within each matchMedia listener method, loop over components and invoke the associated JS method using AdfCustomEvent.queue Will become completely declarative in JDev 12.1.4 – New component tag for adding a media event behavior
  • 22. RWD Example – Test On Phone / Tablet Initial page has unreadable small font RWD doesn’t seem to work Screen readable after first user interaction Fix: add viewport metadata tag Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22 Google: “don't forget the viewport meta tag”
  • 23. Server-side Adaptive Design Client-side responsive design techniques are usually not enough for ADF Faces applications For more dramatic changes in layout, we need to go to the server Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23 – Use EL in layout properties that reference screen dimensions – Dynamic switching between page templates – Traversing UI components tree to programmatically change layout Go to server on page load to communicate screen dimensions Go to server when device orientation changes
  • 24. Server-side Adaptive Design Go to server on page load to “communicate” screen dimensions Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24
  • 25. Server-side Adaptive Design Go to server on page load to “communicate” screen dimensions Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25
  • 26. Server-side Adaptive Design Go to server on page load to “communicate” screen dimensions Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26
  • 27. Server-side Adaptive Design Go to server when device orientation changes Add call to callSetScreenSize in matchMedia listener method Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27
  • 28. Obtaining Browser Agent Info at Server Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28
  • 29. Convenience Methods in AgentInfoBean Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29
  • 30. Dynamic Page Templates Use EL Expression in viewId property Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30
  • 31. Dynamic Page Templates Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31
  • 32. Changing UI Component Tree at Runtime EL expressions to optimize rendering for each device type works fine – Requires you to go into each and every page – Not very flexible when you need to support new device types Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32 A programmatic but more generic and flexible alternative: – Traverse UI component tree at runtime – Change UI component properties as desired based on agent/screen info – Implement Using VisitCallBack pattern and JSF phase listener
  • 33. Changing UI Component Tree at Runtime Implement VisitCallBack Interface Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33
  • 34. Changing UI Component Tree at Runtime Calling MobileRenderingVisitCallBack From JSF Phase Listener Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34
  • 35. Changing UI Component Tree at Runtime Register Phase Listener as Bean and Invoke From Page Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35
  • 36. Changing UI Component Tree at Runtime Setting PanelFormLayout Max Columns Server-Side Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36
  • 37. Changing UI Component Tree at Runtime ADF Faces table scrollbars are automatically replaced with pagination controls on touch devices Pagination size controlled by fetchSize property (JDev 11.1.1.x) or autoHeightRows property (JDev 12.1.x) Fixing Table Pagination Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37 Number of rows visible on screen should match value of these properties – If not, confusing user experience: both swiping and pagination needed when number of rows visible is lower JDev 12.1.3 will support tablet-optimized table scrolling Consider using listView instead of table component!
  • 38. Changing UI Component Tree at Runtime Fixing Table Pagination Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38
  • 39. Changing UI Component Tree at Runtime Fixing Table Pagination Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39
  • 40. Changing UI Component Tree at Runtime Hiding Surrounding Panel Collection Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40
  • 41. Changing UI Component Tree at Runtime Handling Wide Tables – Move Items to Overflow Area Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41
  • 42. HTML 5 Input Types New HTML 5 input types: color, date(time), email, month, number, range, search, tel, time, url, week These input types allow better input control and validation Can easily be used in ADF Faces though usage property Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42 usage – Does NOT work in JDev 11.1.2.x, only 11.1.1.x and 12.1.x Specify as EL expression to prevent design-time error underlining
  • 43. HTML 5 Input Types Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43
  • 44. HTML 5 Input Types Enable By Changing Component Tree at Runtime Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44
  • 45. Mobile Device Integration Integration with phone, contacts: af:goLink with tel: prefix Integration with mail: af:goLink with mailto: prefix Integration with Google Maps: af:goLink with google maps URL Copyright © 2013, Oracle and/or its affiliates. All rights reserved.45 Integration with Google Maps: af:goLink with google maps URL
  • 46. Mobile Device Integration Use JavaScript method to get current GPS coordinates – navigator.geolocation.getCurrentPosition Use clientListener to invoke this JS method Using Current Location Information Server-Side Copyright © 2013, Oracle and/or its affiliates. All rights reserved.46 Use serverListener to invoke managed bean with coordinates – Queue ADF custom event in JS method Use dvt:map component to visualize current location
  • 47. Mobile Device Integration Using Current Location Information Server-Side Copyright © 2013, Oracle and/or its affiliates. All rights reserved.47
  • 48. Mobile Device Integration Using Current Location Information Server-Side Copyright © 2013, Oracle and/or its affiliates. All rights reserved.48
  • 49. JDeveloper 12.1.3 RWD Goodies New Tablet-First Page Template – Optimized for tablet-landscape and desktop Client-side CSS rules Copyright © 2013, Oracle and/or its affiliates. All rights reserved.49 – ADF skinning framework now supports client side rules such as @charset, @document, @font-face, @import, @keyframes, @media, @page, @supports. Optimized table scrolling on tablets – A.k.a. “high water mark scrolling”
  • 50. More Info Going Mobile with ADF – Running ADF Faces on Mobile Phones and Tablets – http://www.ateam-oracle.com/going-mobile-with-adf-running-adf-faces-on- mobile-phones-and-tablets/ ADF-WebCenter Responsive-Adaptive Design Beyond – http://www.ateam-oracle.com/adf-webcenter-responsive-adaptive-design- Copyright © 2013, Oracle and/or its affiliates. All rights reserved.50 – http://www.ateam-oracle.com/adf-webcenter-responsive-adaptive-design- beyond/ Responsive Design for your ADF Faces Web Application – https://blogs.oracle.com/shay/entry/responsive_design_for_your_adf
  • 51. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.51