SlideShare a Scribd company logo
1 of 92
Download to read offline
Creating a Business-Oriented
UI in APEX
Jorge Rimblas & Scott Spendolini

!1
About Enkitec
— Oracle Platinum Partner
— Established in 2004
— Headquartered in Dallas, TX
— Locations throughout the US & EMEA

— Specialties include
— Exadata Implementations
— Development Services
— PL/SQL / Java / APEX

— DBA/Data Warehouse/RAC
— Business Intelligence
!2
Jorge Rimblas
— jorge.rimblas@enkitec.com
—

@rimblas

rimblas.com/blog

— Using Oracle since 1995
— Focused on Web Technologies
— OWA, Web DB, HTML-DB, APEX

— Using APEX since 2006
— Joined Enkitec in June 2012
— “jrimblas” on OTN Forums

!3
Scott Spendolini
— scott.spendolini@enkitec.com
— @sspendol
— Ex-Oracle Employee of 10 years
— Senior Product Manager for Oracle APEX

from 2002 through 2005

— Founded Sumner Technologies

in October 2005
— Co-Founded Sumneva in January 2010
— Joined Enkitec in June 2012
— Oracle Ace Director
— Co-Author, Pro Oracle Application Express
— Author, Expert Oracle Application Express Security
— “Scott” on OTN Forums

!4
Agenda
— Introduction
— Strategic
— Tactical
— Summary

!5
INTRODUCTION

!6
Question
— How many of you design APEX applications that
are Internet-facing and used for commercial
purposes?

!7
Question
— Which looks more like the applications that
you’re tasked to build with APEX?

!8
Question
— What device do your end users use when running
most APEX applications?

!9
Realities
— The majority of APEX developers build:
— Applications that are used internally
— Which consist of multiple, complex forms & reports
— That are run from desktop computers

!10
“Responsive web design is a web
design approach 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 http://en.wikipedia.org/wiki/Responsive_design
!11
apex.oracle.com

!12
Is Responsive Design for You?

!13
Is Responsive Design for You?
Top 100 Tablet Screen Sizes
2560 x 1600
2048 x 1536
1920 x 1280
1920 x 1200
1920 x 1080
1440 x 900
1366 x 768
1280 x 800
1024 x 786
1024 x 600

0

6

12

18

24

30

Data from http://www.tabletpccomparison.net
!14
Is Responsive Design for You?

Slide from http://apex.shak.us/post/37807712185/responsive-web-design-in-apex-updated-for-nyoug

!15
Unresponsive
— Not being responsive does not mean that your
applications have to suck
— There’s quite a bit of practical & easy
enhancements that can be made to enhance the
UI of your business applications
— No Photoshop or Advanced HTML/CSS Skills Required

— Keep in mind that the reality is your application
is likely run on a standard desktop PC and is
internal to your organization and doesn’t need
to be responsive

!16
STRATEGIC

!17
Strategic Tips
— Theme Selection & Modification
— Screen Design Patterns
— Template Consolidation
— Subscriptions
— Just Say No

!18
THEME SELECTION & MODIFICATION

!19
Theme Selection
— Most developers will simply pick an embedded
APEX theme and stick with that
— And that’s perfectly fine for most applications, especially
those that are internal-only

— However, it is important to 

standardize on a single 

theme vs. allowing any 

developer to pick their

favorite
— Consistency is key

!20
Theme Selection
— Avoid Themes 1 through 23
— These are older, less optimal and generally dated
— Unless you have to support IE6 (see “Just Say No”)

— Best to use Theme 24, 25 or 26
— All are responsive and differ only slightly
— Should standardize one and stick with it for all
applications

!21
Theme Modification Rules
— Never modify the core CSS or images associated
with a theme
— Other applications may use the same theme and assume
that no modifications were made

— Instead, either work with copies of the media or
augment it with your changes
— Acceptable to put a region with CSS overrides on the
global page or use an image from the Shared Components

!22
Augmenting the CSS
— Before:







— After:

!23
Augmenting the CSS

!24
Augmenting the CSS
<style type=“text/css">

header#uHeader {

background-image: linear-gradient(rgb(255, 

165, 0), rgb(255, 222, 163));

}




header#uHeader nav {

background-image: linear-gradient(rgb(0, 15, 

229), rgb(34, 40, 127));

}
header#uHeader nav ul.uMainNav li a {

color: rgba(255, 255, 255, 0.75);

text-shadow: none;

}

</style>
!25
AUGMENTING A THEME CSS
D E M O N S T R A T I O N

!26
Working with CSS Copies
— Optimal to put a new CSS or image on the web
server and include that in your theme
— This way, it will be cached by the browser
— Easier to change in one place and reference from multiple
applications

!27
APEX Theme CSS
— All APEX theme assets (CSS, JS, Images) are
stored in this location: /i/themes/theme_XX
— Where XX is the Theme Number

— It’s best to copy the required assets to a custom
directory - for example: /c/themes/theme_XX
— All changes can be made to the copy without impacting
any other application that relies on the same theme

!28
Page Template Updates
— Once copied, the corresponding Page Templates
will need to be altered to look at the new CSS file
location
— Page Templates > Cascading Style Sheet > File URLs
— Change #IMAGE_PREFIX# to /c/
— Will have to do this for each Page Template used

!29
Beautifying CSS
— All APEX Theme CSS files have been minified,
which makes them difficult to work with
— It’s best to “Beautify” them, as they will be much
easier to work with
— CSS Beautifier: http://html.fwpolice.com/css/

!30
CUSTOM THEME CSS FILES
D E M O N S T R A T I O N

!31
SCREEN DESIGN PATTERNS

!32
Screen Design Patterns
— A Screen Design Pattern is a fixed set of content
regions that make up a page
— Establishing - and adhering to - a set of Screen
Design Patterns is essential for a good Business UI

!33
Screen Design Patterns
— Examples of common screen design patterns

From http://designingwebinterfaces.com/designing-web-interfaces-12-screen-patterns
!34
Balsamiq Mockups
— Screen Mockup tool that focuses on the
structure of the page, not the style
— Allows most of the design & layout of screens to
be done by the business users, not developers
— Think of it as a blueprint

— Desktop & Web versions
— $79 or $12/month

!35
TEMPLATE CONSOLIDATION

!36
Too Many Templates
— Theme 25 contains 75 templates
— Of which you need about 20 or so

— Consolidate and remove any extraneous ones
— If you need a specific template in the future, you can
always re-install the theme in a new application and copy
it back over

— Consider renaming to more intuitive names
— Content Region vs. Form/Report/Wizard Region

!37
Deleting Templates
Included

Ideal

Deleted

Breadcrumb

1

1

0

Button

6

2

4

Calendar

1

1

0

Label

7

2

5

List

14

2

12

Page

17

3

14

Popup LOV

1

1

0

Region

17

2

15

Report

11

1

10

TOTAL

75

15

60

!38
SUBSCRIPTIONS

!39
Subscriptions
— APEX Subscriptions link the content of some
Shared Components across applications within a
workspace
— Once linked, content can be either pushed to all
subscribers or pulled by individual subscribers
— Push will refresh all; pull can refresh on an individual basis

— Using subscriptions takes some getting used to
— Changes will take longer to implement, but over time will
be more efficient

!40
Subscriptions
!
!
Template A

App 200
!
!
Template A

!
!
Template A

App 100

App 300
!
!
Template A

App 400

!41
Subscriptions
— Its a good idea to create a application exclusively
for storing all of the master copies of templates
— All other applications can subscribe to those templates
— In the case of a change, make it at the master and publish
to all other apps

— Caution: Subscriptions only work within a single
workspace
— Other Shared Components can be subscribed to:
— Lists, LOVs, Authentication Schemes, Authorization
Schemes & Shortcuts

!42
SUBSCRIPTIONS
D E M O N S T R A T I O N

!43
JUST SAY NO

!44
Just Say No
— “No.” is a complete sentence
— Should be exercised with good judgement, as it is not the
answer to each and every question - but it is to many

— Be ready to justify with facts
— Device Types common to your

organization
— Page Views
— Time to Complete vs. Alternatives
— Opportunity Costs

!45
TACTICAL

!46
HTML/CSS FRAMEWORKS

!47
HTML/CSS Frameworks
— Also called Boilerplates
— They help you with consistency
— They do the leg work for you
— Responsive
— Compatibility across browsers

— Usually “easy” to customize via CSS
!

— Bootstrap, ZURB Foundation, Responsive Grid
Systems
!48
… and APEX Themes
!

— Don’t forget, you do have APEX Themes

!49
GROUPING TECHNIQUES

!50
Why group?
— Guide the eye
— Communicate which things are related
— The more elements on the page, the more
important grouping becomes

!51
jQuery Tabs

!52
jQuery Tabs

!53
jQuery Tabs: How To
— Need some CSS for styling
#IMAGE_PREFIX#libraries/jquery-ui/1.8/themes/base/
jquery.ui.tabs.css

— Need some JavaScript for functionality
#IMAGE_PREFIX#libraries/jquery-ui/1.8/ui/minified/
jquery.ui.tabs.min.js

— Need HTML as a container for each tab

!54
jQuery Tabs: How To
— Define a new template

<div id="#REGION_STATIC_ID#"
#REGION_ATTRIBUTES# class="jQueryTabsWide">
#BODY#
</div>

!55
jQuery Tabs: How To
— Opening jQuery Tabs container in an HTML Region:

TABS - OPEN

<div id="tabs_start_reg"
style="display:none;width:750px;">
<ul>
<li><a href="#region1">Region 1</a></li>

<li><a href="#region2">Region 2</a></li>
</ul>

!56
jQuery Tabs: How To
— Add your regions in between “TABS - OPEN” and
“TABS - CLOSE”
— Region IDs need to match the IDs on your list
— Opening jQuery Tabs container in an HTML Region:

TABS - CLOSE
</div>

— Visit ARC: http://www.enkitec.com/resources/apex

!57
REGIONS AND SUB REGIONS

!58
Regions and Subregions

!59
Regions and Subregions

!60
Regions and Subregions
parent tab

!61
WIZARDS

!62
Wizards Inside APEX

!63
Implementing Wizards (easy)
— Use APEX session state to “remember” values
— On your final step, reference the items from
other pages

!64
Implementing Wizards (easy)
insert into inventory_items (

name

, description

, status

, category

, {30 other fields}

)

values (

:P10_NAME

, :P20_DESCRIPTION

, :P30_STATUS

, :P40_CATEGORY);

!65
Implementing Wizards (option 2)
— After each step capture your values in a
collection
— Use a collection for each page



or
— Use the same collection for all values

!66
ALIGNMENT OF ITEMS/REGIONS

!67
Why is alignment important?
— Sits in the background, but provides a backbone
to your design
— Broken alignment interrupts the eye scanning
— Alignment is a form of grouping (the oposite is
also true)

!68
Why is alignment important?

!69
Why is alignment important?

!70
SPACING

!71
Spacing
— Don’t think of white space as “empty space”
— Space is not just tabs, carriage return and spaces
— Space between elements
— Margins and padding
— Space doesn’t have to be white
— Provides
— Legibility: micro level
— Tone: macro level

!72
Spacing

!73
Spacing

!74
Spacing

!75
Spacing

!76
OTHER TECHNIQUES

!77
Error Messages
— Don’t be a developer, be a user
— Is the message useful to the end user?
— Will the user know what to do?

!78
Long text
— Use an ellipsis (…) or other indicator where
appropriate
— Use three dots or &#0133; or the ellipsis character
— Optionally have a link to see the rest of the text

— Use an image and use the title attribute as the
text (good option when mouse hover is a
available)

!79
Long text

!80
Long text

!81
Ellipsis example
-1 for negative values
0
+1 for positive values
decode(sign(length(t.notes)-50)

, null, null

, -1, t.notes

, substr(t.notes,1,50) ||'…') note

!82
Ellipsis example w/link

decode(sign(length(t.notes)-40)

, -1, t.notes

, substr(t.notes,1,40) || '&#0133; '

|| '<a href=“f?p=&APP_ID.:
2:&SESSION.::NO:::#'||t.id

|| '">read more</a>') note

!83
Ellipsis example: CLOB

decode(sign(dbms_lob.getlength(t.notes)-50)

, -1, t.notes

, dbms_lob.substr(t.notes,1,50) ||'…'

) note

!84
Long text (Icon)

!85
Long text (Icon)

!86
Long text (Icon)

!
!
!
<a href="#"

Added by APEX

</a>
<img src="chk_#ACTIVE#.png" alt=“#ACTIVE#"/>
<a href="#" class=“hideMe508">
</a>

!87
Icons

Theme by Nick Buytaert http://apexplained.wordpress.com/2013/11/20/front-end-frameworks-in-oracle-apex/

!88
Icons

Bootstrap

Font Awesome

!89
SUMMARY

!90
“Perfection is achieved, not
when there is nothing more to
add, but when there is nothing
left to take away.”
!

― Antoine de Saint-Exupéry, Airman's Odyssey

!91
http://www.enkitec.com

!92

More Related Content

What's hot

What's hot (20)

Builder Design Pattern (Generic Construction -Different Representation)
Builder Design Pattern (Generic Construction -Different Representation)Builder Design Pattern (Generic Construction -Different Representation)
Builder Design Pattern (Generic Construction -Different Representation)
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHP
 
Responsive web design ppt
Responsive web design pptResponsive web design ppt
Responsive web design ppt
 
Html & Css presentation
Html  & Css presentation Html  & Css presentation
Html & Css presentation
 
CSS3 Media Queries
CSS3 Media QueriesCSS3 Media Queries
CSS3 Media Queries
 
Universal React apps in Next.js
Universal React apps in Next.jsUniversal React apps in Next.js
Universal React apps in Next.js
 
Html5 semantics
Html5 semanticsHtml5 semantics
Html5 semantics
 
Mern stack developement
Mern stack developementMern stack developement
Mern stack developement
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScript
 
Flexbox
FlexboxFlexbox
Flexbox
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
 
Reactjs
ReactjsReactjs
Reactjs
 
Introduction to BOOTSTRAP
Introduction to BOOTSTRAPIntroduction to BOOTSTRAP
Introduction to BOOTSTRAP
 
Bootstrap Part - 1
Bootstrap Part - 1Bootstrap Part - 1
Bootstrap Part - 1
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
React Tech Salon
React Tech SalonReact Tech Salon
React Tech Salon
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
 
JAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptxJAVASCRIPT PPT [Autosaved].pptx
JAVASCRIPT PPT [Autosaved].pptx
 
Laravel overview
Laravel overviewLaravel overview
Laravel overview
 

Viewers also liked

Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
Abhinaw Kumar
 
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
 

Viewers also liked (16)

APEX 5 Demo and Best Practices
APEX 5 Demo and Best PracticesAPEX 5 Demo and Best Practices
APEX 5 Demo and Best Practices
 
Get the Look and Feel You Want in Oracle APEX
Get the Look and Feel You Want in Oracle APEXGet the Look and Feel You Want in Oracle APEX
Get the Look and Feel You Want in Oracle APEX
 
5 Cool Things you can do with HTML5 and APEX
5 Cool Things you can do with HTML5 and APEX5 Cool Things you can do with HTML5 and APEX
5 Cool Things you can do with HTML5 and APEX
 
Building a Flexible UI with Oracle ApEx
Building a Flexible UI with Oracle ApExBuilding a Flexible UI with Oracle ApEx
Building a Flexible UI with Oracle ApEx
 
APEX Dashboard Competition - Winners
APEX Dashboard Competition - WinnersAPEX Dashboard Competition - Winners
APEX Dashboard Competition - Winners
 
Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
 
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
 
Moving to the APEX Listener
Moving to the APEX ListenerMoving to the APEX Listener
Moving to the APEX Listener
 
Oracle SOA and BPM
Oracle SOA and BPMOracle SOA and BPM
Oracle SOA and BPM
 
SOA_BPM_12c_launch_event_BPM_track_proficiency_features_joost_volker_oracle
SOA_BPM_12c_launch_event_BPM_track_proficiency_features_joost_volker_oracleSOA_BPM_12c_launch_event_BPM_track_proficiency_features_joost_volker_oracle
SOA_BPM_12c_launch_event_BPM_track_proficiency_features_joost_volker_oracle
 
Oracle BPM workflow and Open-XDX web services (Part 2)
Oracle BPM workflow and Open-XDX web services (Part 2)Oracle BPM workflow and Open-XDX web services (Part 2)
Oracle BPM workflow and Open-XDX web services (Part 2)
 
Pretius Oracle Apex Primer
Pretius Oracle Apex PrimerPretius Oracle Apex Primer
Pretius Oracle Apex Primer
 
Business Integration for the 21st Century
Business Integration for the 21st Century Business Integration for the 21st Century
Business Integration for the 21st Century
 
Electronic patients records system based on oracle apex
Electronic patients records system based on oracle apexElectronic patients records system based on oracle apex
Electronic patients records system based on oracle apex
 
Oracle APEX or ADF? From Requirements to Tool Choice
Oracle APEX or ADF? From Requirements to Tool ChoiceOracle APEX or ADF? From Requirements to Tool Choice
Oracle APEX or ADF? From Requirements to Tool Choice
 
Mastering universal theme
Mastering universal themeMastering universal theme
Mastering universal theme
 

Similar to Creating a Business Oriented UI in APEX

Web Design & UI/UX Bootcamp [Online & Offline] In Bangla
Web Design & UI/UX Bootcamp [Online & Offline] In BanglaWeb Design & UI/UX Bootcamp [Online & Offline] In Bangla
Web Design & UI/UX Bootcamp [Online & Offline] In Bangla
Stack Learner
 
web -development- course - Continued - Learning
web -development- course - Continued - Learningweb -development- course - Continued - Learning
web -development- course - Continued - Learning
Continued Learning
 
Developing the unknown
Developing the unknownDeveloping the unknown
Developing the unknown
paul22blue
 

Similar to Creating a Business Oriented UI in APEX (20)

SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
 
Web Design & UI/UX Bootcamp [Online & Offline] In Bangla
Web Design & UI/UX Bootcamp [Online & Offline] In BanglaWeb Design & UI/UX Bootcamp [Online & Offline] In Bangla
Web Design & UI/UX Bootcamp [Online & Offline] In Bangla
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)
 
Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)
 
web development course | web development training in Pune India
web development course | web development training in Pune Indiaweb development course | web development training in Pune India
web development course | web development training in Pune India
 
Web development Course, Web development training, Learn With Continued-Learning
Web development Course, Web development training, Learn With Continued-LearningWeb development Course, Web development training, Learn With Continued-Learning
Web development Course, Web development training, Learn With Continued-Learning
 
web -development- course - Continued - Learning
web -development- course - Continued - Learningweb -development- course - Continued - Learning
web -development- course - Continued - Learning
 
VS Code and Modern Development Environment Preview
VS Code and Modern Development Environment PreviewVS Code and Modern Development Environment Preview
VS Code and Modern Development Environment Preview
 
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS frameworkNot Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
Enhancing SharePoint with Responsive Web Design
Enhancing SharePoint with Responsive Web DesignEnhancing SharePoint with Responsive Web Design
Enhancing SharePoint with Responsive Web Design
 
CRM Science - Dreamforce '14: From Admin to Developer: Learning to Code on F...
CRM Science - Dreamforce '14:  From Admin to Developer: Learning to Code on F...CRM Science - Dreamforce '14:  From Admin to Developer: Learning to Code on F...
CRM Science - Dreamforce '14: From Admin to Developer: Learning to Code on F...
 
Developing the unknown
Developing the unknownDeveloping the unknown
Developing the unknown
 
Design Systems: Enterprise UX Evolution
Design Systems: Enterprise UX EvolutionDesign Systems: Enterprise UX Evolution
Design Systems: Enterprise UX Evolution
 
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by StepBootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
 
ppt of MANOJ KUMAR.pptx
ppt of MANOJ KUMAR.pptxppt of MANOJ KUMAR.pptx
ppt of MANOJ KUMAR.pptx
 
Responsive Design for SavvyMoney Credit Score
Responsive Design for SavvyMoney Credit ScoreResponsive Design for SavvyMoney Credit Score
Responsive Design for SavvyMoney Credit Score
 
Creating Style Guides with Modularity in Mind
Creating Style Guides with Modularity in MindCreating Style Guides with Modularity in Mind
Creating Style Guides with Modularity in Mind
 
Top 10 Front End Developer Skills | How to become a Front End Developer? Edureka
Top 10 Front End Developer Skills | How to become a Front End Developer? EdurekaTop 10 Front End Developer Skills | How to become a Front End Developer? Edureka
Top 10 Front End Developer Skills | How to become a Front End Developer? Edureka
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 

More from Enkitec

Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture Performance
Enkitec
 
OGG Architecture Performance
OGG Architecture PerformanceOGG Architecture Performance
OGG Architecture Performance
Enkitec
 
APEX Security Primer
APEX Security PrimerAPEX Security Primer
APEX Security Primer
Enkitec
 
How Many Ways Can I Manage Oracle GoldenGate?
How Many Ways Can I Manage Oracle GoldenGate?How Many Ways Can I Manage Oracle GoldenGate?
How Many Ways Can I Manage Oracle GoldenGate?
Enkitec
 
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...Understanding how is that adaptive cursor sharing (acs) produces multiple opt...
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...
Enkitec
 
Sql tuning made easier with sqltxplain (sqlt)
Sql tuning made easier with sqltxplain (sqlt)Sql tuning made easier with sqltxplain (sqlt)
Sql tuning made easier with sqltxplain (sqlt)
Enkitec
 
Profiling the logwriter and database writer
Profiling the logwriter and database writerProfiling the logwriter and database writer
Profiling the logwriter and database writer
Enkitec
 
Fatkulin hotsos 2014
Fatkulin hotsos 2014Fatkulin hotsos 2014
Fatkulin hotsos 2014
Enkitec
 

More from Enkitec (20)

Using Angular JS in APEX
Using Angular JS in APEXUsing Angular JS in APEX
Using Angular JS in APEX
 
Controlling execution plans 2014
Controlling execution plans   2014Controlling execution plans   2014
Controlling execution plans 2014
 
Engineered Systems: Environment-as-a-Service Demonstration
Engineered Systems: Environment-as-a-Service DemonstrationEngineered Systems: Environment-as-a-Service Demonstration
Engineered Systems: Environment-as-a-Service Demonstration
 
Think Exa!
Think Exa!Think Exa!
Think Exa!
 
In Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry OsborneIn Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry Osborne
 
In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1In Search of Plan Stability - Part 1
In Search of Plan Stability - Part 1
 
Mini Session - Using GDB for Profiling
Mini Session - Using GDB for ProfilingMini Session - Using GDB for Profiling
Mini Session - Using GDB for Profiling
 
Profiling Oracle with GDB
Profiling Oracle with GDBProfiling Oracle with GDB
Profiling Oracle with GDB
 
Oracle Performance Tools of the Trade
Oracle Performance Tools of the TradeOracle Performance Tools of the Trade
Oracle Performance Tools of the Trade
 
Oracle Performance Tuning Fundamentals
Oracle Performance Tuning FundamentalsOracle Performance Tuning Fundamentals
Oracle Performance Tuning Fundamentals
 
SQL Tuning Tools of the Trade
SQL Tuning Tools of the TradeSQL Tuning Tools of the Trade
SQL Tuning Tools of the Trade
 
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan StabilityUsing SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
Using SQL Plan Management (SPM) to Balance Plan Flexibility and Plan Stability
 
Oracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture PerformanceOracle GoldenGate Architecture Performance
Oracle GoldenGate Architecture Performance
 
OGG Architecture Performance
OGG Architecture PerformanceOGG Architecture Performance
OGG Architecture Performance
 
APEX Security Primer
APEX Security PrimerAPEX Security Primer
APEX Security Primer
 
How Many Ways Can I Manage Oracle GoldenGate?
How Many Ways Can I Manage Oracle GoldenGate?How Many Ways Can I Manage Oracle GoldenGate?
How Many Ways Can I Manage Oracle GoldenGate?
 
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...Understanding how is that adaptive cursor sharing (acs) produces multiple opt...
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...
 
Sql tuning made easier with sqltxplain (sqlt)
Sql tuning made easier with sqltxplain (sqlt)Sql tuning made easier with sqltxplain (sqlt)
Sql tuning made easier with sqltxplain (sqlt)
 
Profiling the logwriter and database writer
Profiling the logwriter and database writerProfiling the logwriter and database writer
Profiling the logwriter and database writer
 
Fatkulin hotsos 2014
Fatkulin hotsos 2014Fatkulin hotsos 2014
Fatkulin hotsos 2014
 

Recently uploaded

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Creating a Business Oriented UI in APEX

  • 1. Creating a Business-Oriented UI in APEX Jorge Rimblas & Scott Spendolini !1
  • 2. About Enkitec — Oracle Platinum Partner — Established in 2004 — Headquartered in Dallas, TX — Locations throughout the US & EMEA — Specialties include — Exadata Implementations — Development Services — PL/SQL / Java / APEX — DBA/Data Warehouse/RAC — Business Intelligence !2
  • 3. Jorge Rimblas — jorge.rimblas@enkitec.com — @rimblas rimblas.com/blog — Using Oracle since 1995 — Focused on Web Technologies — OWA, Web DB, HTML-DB, APEX — Using APEX since 2006 — Joined Enkitec in June 2012 — “jrimblas” on OTN Forums !3
  • 4. Scott Spendolini — scott.spendolini@enkitec.com — @sspendol — Ex-Oracle Employee of 10 years — Senior Product Manager for Oracle APEX
 from 2002 through 2005 — Founded Sumner Technologies
 in October 2005 — Co-Founded Sumneva in January 2010 — Joined Enkitec in June 2012 — Oracle Ace Director — Co-Author, Pro Oracle Application Express — Author, Expert Oracle Application Express Security — “Scott” on OTN Forums !4
  • 7. Question — How many of you design APEX applications that are Internet-facing and used for commercial purposes? !7
  • 8. Question — Which looks more like the applications that you’re tasked to build with APEX? !8
  • 9. Question — What device do your end users use when running most APEX applications? !9
  • 10. Realities — The majority of APEX developers build: — Applications that are used internally — Which consist of multiple, complex forms & reports — That are run from desktop computers !10
  • 11. “Responsive web design is a web design approach 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 http://en.wikipedia.org/wiki/Responsive_design !11
  • 13. Is Responsive Design for You? !13
  • 14. Is Responsive Design for You? Top 100 Tablet Screen Sizes 2560 x 1600 2048 x 1536 1920 x 1280 1920 x 1200 1920 x 1080 1440 x 900 1366 x 768 1280 x 800 1024 x 786 1024 x 600 0 6 12 18 24 30 Data from http://www.tabletpccomparison.net !14
  • 15. Is Responsive Design for You? Slide from http://apex.shak.us/post/37807712185/responsive-web-design-in-apex-updated-for-nyoug !15
  • 16. Unresponsive — Not being responsive does not mean that your applications have to suck — There’s quite a bit of practical & easy enhancements that can be made to enhance the UI of your business applications — No Photoshop or Advanced HTML/CSS Skills Required — Keep in mind that the reality is your application is likely run on a standard desktop PC and is internal to your organization and doesn’t need to be responsive !16
  • 18. Strategic Tips — Theme Selection & Modification — Screen Design Patterns — Template Consolidation — Subscriptions — Just Say No !18
  • 19. THEME SELECTION & MODIFICATION !19
  • 20. Theme Selection — Most developers will simply pick an embedded APEX theme and stick with that — And that’s perfectly fine for most applications, especially those that are internal-only — However, it is important to 
 standardize on a single 
 theme vs. allowing any 
 developer to pick their
 favorite — Consistency is key !20
  • 21. Theme Selection — Avoid Themes 1 through 23 — These are older, less optimal and generally dated — Unless you have to support IE6 (see “Just Say No”) — Best to use Theme 24, 25 or 26 — All are responsive and differ only slightly — Should standardize one and stick with it for all applications !21
  • 22. Theme Modification Rules — Never modify the core CSS or images associated with a theme — Other applications may use the same theme and assume that no modifications were made — Instead, either work with copies of the media or augment it with your changes — Acceptable to put a region with CSS overrides on the global page or use an image from the Shared Components !22
  • 23. Augmenting the CSS — Before:
 
 
 
 — After: !23
  • 25. Augmenting the CSS <style type=“text/css">
 header#uHeader {
 background-image: linear-gradient(rgb(255, 
 165, 0), rgb(255, 222, 163));
 }
 
 header#uHeader nav {
 background-image: linear-gradient(rgb(0, 15, 
 229), rgb(34, 40, 127));
 } header#uHeader nav ul.uMainNav li a {
 color: rgba(255, 255, 255, 0.75);
 text-shadow: none;
 }
 </style> !25
  • 26. AUGMENTING A THEME CSS D E M O N S T R A T I O N !26
  • 27. Working with CSS Copies — Optimal to put a new CSS or image on the web server and include that in your theme — This way, it will be cached by the browser — Easier to change in one place and reference from multiple applications !27
  • 28. APEX Theme CSS — All APEX theme assets (CSS, JS, Images) are stored in this location: /i/themes/theme_XX — Where XX is the Theme Number — It’s best to copy the required assets to a custom directory - for example: /c/themes/theme_XX — All changes can be made to the copy without impacting any other application that relies on the same theme !28
  • 29. Page Template Updates — Once copied, the corresponding Page Templates will need to be altered to look at the new CSS file location — Page Templates > Cascading Style Sheet > File URLs — Change #IMAGE_PREFIX# to /c/ — Will have to do this for each Page Template used !29
  • 30. Beautifying CSS — All APEX Theme CSS files have been minified, which makes them difficult to work with — It’s best to “Beautify” them, as they will be much easier to work with — CSS Beautifier: http://html.fwpolice.com/css/ !30
  • 31. CUSTOM THEME CSS FILES D E M O N S T R A T I O N !31
  • 33. Screen Design Patterns — A Screen Design Pattern is a fixed set of content regions that make up a page — Establishing - and adhering to - a set of Screen Design Patterns is essential for a good Business UI !33
  • 34. Screen Design Patterns — Examples of common screen design patterns From http://designingwebinterfaces.com/designing-web-interfaces-12-screen-patterns !34
  • 35. Balsamiq Mockups — Screen Mockup tool that focuses on the structure of the page, not the style — Allows most of the design & layout of screens to be done by the business users, not developers — Think of it as a blueprint — Desktop & Web versions — $79 or $12/month !35
  • 37. Too Many Templates — Theme 25 contains 75 templates — Of which you need about 20 or so — Consolidate and remove any extraneous ones — If you need a specific template in the future, you can always re-install the theme in a new application and copy it back over — Consider renaming to more intuitive names — Content Region vs. Form/Report/Wizard Region !37
  • 40. Subscriptions — APEX Subscriptions link the content of some Shared Components across applications within a workspace — Once linked, content can be either pushed to all subscribers or pulled by individual subscribers — Push will refresh all; pull can refresh on an individual basis — Using subscriptions takes some getting used to — Changes will take longer to implement, but over time will be more efficient !40
  • 41. Subscriptions ! ! Template A App 200 ! ! Template A ! ! Template A App 100 App 300 ! ! Template A App 400 !41
  • 42. Subscriptions — Its a good idea to create a application exclusively for storing all of the master copies of templates — All other applications can subscribe to those templates — In the case of a change, make it at the master and publish to all other apps — Caution: Subscriptions only work within a single workspace — Other Shared Components can be subscribed to: — Lists, LOVs, Authentication Schemes, Authorization Schemes & Shortcuts !42
  • 43. SUBSCRIPTIONS D E M O N S T R A T I O N !43
  • 45. Just Say No — “No.” is a complete sentence — Should be exercised with good judgement, as it is not the answer to each and every question - but it is to many — Be ready to justify with facts — Device Types common to your
 organization — Page Views — Time to Complete vs. Alternatives — Opportunity Costs !45
  • 48. HTML/CSS Frameworks — Also called Boilerplates — They help you with consistency — They do the leg work for you — Responsive — Compatibility across browsers — Usually “easy” to customize via CSS ! — Bootstrap, ZURB Foundation, Responsive Grid Systems !48
  • 49. … and APEX Themes ! — Don’t forget, you do have APEX Themes !49
  • 51. Why group? — Guide the eye — Communicate which things are related — The more elements on the page, the more important grouping becomes !51
  • 54. jQuery Tabs: How To — Need some CSS for styling #IMAGE_PREFIX#libraries/jquery-ui/1.8/themes/base/ jquery.ui.tabs.css — Need some JavaScript for functionality #IMAGE_PREFIX#libraries/jquery-ui/1.8/ui/minified/ jquery.ui.tabs.min.js — Need HTML as a container for each tab !54
  • 55. jQuery Tabs: How To — Define a new template <div id="#REGION_STATIC_ID#" #REGION_ATTRIBUTES# class="jQueryTabsWide"> #BODY# </div> !55
  • 56. jQuery Tabs: How To — Opening jQuery Tabs container in an HTML Region:
 TABS - OPEN <div id="tabs_start_reg" style="display:none;width:750px;"> <ul> <li><a href="#region1">Region 1</a></li>
 <li><a href="#region2">Region 2</a></li> </ul> !56
  • 57. jQuery Tabs: How To — Add your regions in between “TABS - OPEN” and “TABS - CLOSE” — Region IDs need to match the IDs on your list — Opening jQuery Tabs container in an HTML Region:
 TABS - CLOSE </div> — Visit ARC: http://www.enkitec.com/resources/apex !57
  • 58. REGIONS AND SUB REGIONS !58
  • 64. Implementing Wizards (easy) — Use APEX session state to “remember” values — On your final step, reference the items from other pages !64
  • 65. Implementing Wizards (easy) insert into inventory_items (
 name
 , description
 , status
 , category
 , {30 other fields}
 )
 values (
 :P10_NAME
 , :P20_DESCRIPTION
 , :P30_STATUS
 , :P40_CATEGORY); !65
  • 66. Implementing Wizards (option 2) — After each step capture your values in a collection — Use a collection for each page
 
 or — Use the same collection for all values !66
  • 68. Why is alignment important? — Sits in the background, but provides a backbone to your design — Broken alignment interrupts the eye scanning — Alignment is a form of grouping (the oposite is also true) !68
  • 69. Why is alignment important? !69
  • 70. Why is alignment important? !70
  • 72. Spacing — Don’t think of white space as “empty space” — Space is not just tabs, carriage return and spaces — Space between elements — Margins and padding — Space doesn’t have to be white — Provides — Legibility: micro level — Tone: macro level !72
  • 78. Error Messages — Don’t be a developer, be a user — Is the message useful to the end user? — Will the user know what to do? !78
  • 79. Long text — Use an ellipsis (…) or other indicator where appropriate — Use three dots or &#0133; or the ellipsis character — Optionally have a link to see the rest of the text — Use an image and use the title attribute as the text (good option when mouse hover is a available) !79
  • 82. Ellipsis example -1 for negative values 0 +1 for positive values decode(sign(length(t.notes)-50)
 , null, null
 , -1, t.notes
 , substr(t.notes,1,50) ||'…') note !82
  • 83. Ellipsis example w/link decode(sign(length(t.notes)-40)
 , -1, t.notes
 , substr(t.notes,1,40) || '&#0133; '
 || '<a href=“f?p=&APP_ID.: 2:&SESSION.::NO:::#'||t.id
 || '">read more</a>') note !83
  • 84. Ellipsis example: CLOB decode(sign(dbms_lob.getlength(t.notes)-50)
 , -1, t.notes
 , dbms_lob.substr(t.notes,1,50) ||'…'
 ) note !84
  • 87. Long text (Icon) ! ! ! <a href="#" Added by APEX </a> <img src="chk_#ACTIVE#.png" alt=“#ACTIVE#"/> <a href="#" class=“hideMe508"> </a> !87
  • 88. Icons Theme by Nick Buytaert http://apexplained.wordpress.com/2013/11/20/front-end-frameworks-in-oracle-apex/ !88
  • 91. “Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” ! ― Antoine de Saint-Exupéry, Airman's Odyssey !91