Transcript
Page 1: Creating a Business Oriented UI in APEX

Creating a Business-Oriented UI in APEX

Jorge Rimblas & Scott Spendolini

!1

Page 2: Creating a Business Oriented UI in APEX

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

Page 3: Creating a Business Oriented UI in APEX

[email protected]

� @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

Jorge Rimblas

!3

Page 4: Creating a Business Oriented UI in APEX

[email protected]

� @sspendol

� Ex-Oracle Employee of 10 years

� Senior Product Manager for Oracle APEXfrom 2002 through 2005

� Founded Sumner Technologiesin 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

Scott Spendolini

!4

Page 5: Creating a Business Oriented UI in APEX

Agenda� Introduction

� Strategic

� Tactical

� Summary

!5

Page 6: Creating a Business Oriented UI in APEX

INTRODUCTION

!6

Page 7: Creating a Business Oriented UI in APEX

Question

!7

� How many of you design APEX applications that are Internet-facing and used for commercial purposes?

Page 8: Creating a Business Oriented UI in APEX

Question� Which looks more like the applications that

you’re tasked to build with APEX?

!8

Page 9: Creating a Business Oriented UI in APEX

Question� What device do your end users use when running

most APEX applications?

!9

Page 10: Creating a Business Oriented UI in APEX

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

Page 11: Creating a Business Oriented UI in APEX

“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”

!11

From http://en.wikipedia.org/wiki/Responsive_design

Page 12: Creating a Business Oriented UI in APEX

apex.oracle.com

!12

Page 13: Creating a Business Oriented UI in APEX

Is Responsive Design for You?

!13

Page 14: Creating a Business Oriented UI in APEX

Is Responsive Design for You?

!14

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

Top 100 Tablet Screen Sizes

Page 15: Creating a Business Oriented UI in APEX

Is Responsive Design for You?

!15

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

Page 16: Creating a Business Oriented UI in APEX

Unresponsive

!16

� 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

Page 17: Creating a Business Oriented UI in APEX

STRATEGIC

!17

Page 18: Creating a Business Oriented UI in APEX

Strategic Tips

!18

� Theme Selection & Modification

� Screen Design Patterns

� Template Consolidation

� Subscriptions

� Just Say No

Page 19: Creating a Business Oriented UI in APEX

THEME SELECTION & MODIFICATION

!19

Page 20: Creating a Business Oriented UI in APEX

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

Page 21: Creating a Business Oriented UI in APEX

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

Page 22: Creating a Business Oriented UI in APEX

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

Page 23: Creating a Business Oriented UI in APEX

Augmenting the CSS� Before:

� After:

!23

Page 24: Creating a Business Oriented UI in APEX

Augmenting the CSS

!24

Page 25: Creating a Business Oriented UI in APEX

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

Page 26: Creating a Business Oriented UI in APEX

D E M O N S T R A T I O N

AUGMENTING A THEME CSS

!26

Page 27: Creating a Business Oriented UI in APEX

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

Page 28: Creating a Business Oriented UI in APEX

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 29: Creating a Business Oriented UI in APEX

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

Page 30: Creating a Business Oriented UI in APEX

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

Page 31: Creating a Business Oriented UI in APEX

D E M O N S T R A T I O N

CUSTOM THEME CSS FILES

!31

Page 32: Creating a Business Oriented UI in APEX

SCREEN DESIGN PATTERNS

!32

Page 33: Creating a Business Oriented UI in APEX

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

Page 34: Creating a Business Oriented UI in APEX

Screen Design Patterns� Examples of common screen design patterns

!34

From http://designingwebinterfaces.com/designing-web-interfaces-12-screen-patterns

Page 35: Creating a Business Oriented UI in APEX

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

Page 36: Creating a Business Oriented UI in APEX

TEMPLATE CONSOLIDATION

!36

Page 37: Creating a Business Oriented UI in APEX

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

Page 38: Creating a Business Oriented UI in APEX

Deleting Templates

!38

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

Page 39: Creating a Business Oriented UI in APEX

SUBSCRIPTIONS

!39

Page 40: Creating a Business Oriented UI in APEX

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

Page 41: Creating a Business Oriented UI in APEX

Subscriptions

!41

!!

Template A App 100

!!

Template A App 200

!!

Template A App 300

!!

Template A App 400

Page 42: Creating a Business Oriented UI in APEX

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

Page 43: Creating a Business Oriented UI in APEX

D E M O N S T R A T I O N

SUBSCRIPTIONS

!43

Page 44: Creating a Business Oriented UI in APEX

JUST SAY NO

!44

Page 45: Creating a Business Oriented UI in APEX

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

Page 46: Creating a Business Oriented UI in APEX

TACTICAL

!46

Page 47: Creating a Business Oriented UI in APEX

HTML/CSS FRAMEWORKS

!47

Page 48: Creating a Business Oriented UI in APEX

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

Page 49: Creating a Business Oriented UI in APEX

… and APEX Themes!

� Don’t forget, you do have APEX Themes

!49

Page 50: Creating a Business Oriented UI in APEX

GROUPING TECHNIQUES

!50

Page 51: Creating a Business Oriented UI in APEX

Why group?� Guide the eye

� Communicate which things are related

� The more elements on the page, the more important grouping becomes

!51

Page 52: Creating a Business Oriented UI in APEX

jQuery Tabs

!52

Page 53: Creating a Business Oriented UI in APEX

jQuery Tabs

!53

Page 54: Creating a Business Oriented UI in APEX

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

Page 55: Creating a Business Oriented UI in APEX

jQuery Tabs: How To

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

#BODY#

</div>

!55

� Define a new template

Page 56: Creating a Business Oriented UI in APEX

jQuery Tabs: How To

<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

� Opening jQuery Tabs container in an HTML Region:TABS - OPEN

Page 57: Creating a Business Oriented UI in APEX

jQuery Tabs: How To

!57

� Add your regions in between “TABS - OPEN” and “TABS - CLOSE”

� Region IDs need to match the IDs on your list

</div>

� Opening jQuery Tabs container in an HTML Region:TABS - CLOSE

� Visit ARC: http://www.enkitec.com/resources/apex

Page 58: Creating a Business Oriented UI in APEX

REGIONS AND SUB REGIONS

!58

Page 59: Creating a Business Oriented UI in APEX

Regions and Subregions

!59

Page 60: Creating a Business Oriented UI in APEX

Regions and Subregions

!60

Page 61: Creating a Business Oriented UI in APEX

Regions and Subregions

!61

parent tab

Page 62: Creating a Business Oriented UI in APEX

WIZARDS

!62

Page 63: Creating a Business Oriented UI in APEX

Wizards Inside APEX

!63

Page 64: Creating a Business Oriented UI in APEX

Implementing Wizards (easy)� Use APEX session state to “remember” values

� On your final step, reference the items from other pages

!64

Page 65: Creating a Business Oriented UI in APEX

Implementing Wizards (easy)

insert into inventory_items ( name , description , status , category , {30 other fields}) values ( :P10_NAME, :P20_DESCRIPTION, :P30_STATUS, :P40_CATEGORY);

!65

Page 66: Creating a Business Oriented UI in APEX

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

Page 67: Creating a Business Oriented UI in APEX

ALIGNMENT OF ITEMS/REGIONS

!67

Page 68: Creating a Business Oriented UI in APEX

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

Page 69: Creating a Business Oriented UI in APEX

Why is alignment important?

!69

Page 70: Creating a Business Oriented UI in APEX

Why is alignment important?

!70

Page 71: Creating a Business Oriented UI in APEX

SPACING

!71

Page 72: Creating a Business Oriented UI in APEX

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

Page 73: Creating a Business Oriented UI in APEX

Spacing

!73

Page 74: Creating a Business Oriented UI in APEX

Spacing

!74

Page 75: Creating a Business Oriented UI in APEX

Spacing

!75

Page 76: Creating a Business Oriented UI in APEX

Spacing

!76

Page 77: Creating a Business Oriented UI in APEX

OTHER TECHNIQUES

!77

Page 78: Creating a Business Oriented UI in APEX

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

Page 79: Creating a Business Oriented UI in APEX

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

Page 80: Creating a Business Oriented UI in APEX

Long text

!80

Page 81: Creating a Business Oriented UI in APEX

Long text

!81

Page 82: Creating a Business Oriented UI in APEX

Ellipsis example

decode(sign(length(t.notes)-50) , null, null , -1, t.notes , substr(t.notes,1,50) ||'…') note

!82

-1 for negative values 0 +1 for positive values

Page 83: Creating a Business Oriented UI in APEX

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

Page 84: Creating a Business Oriented UI in APEX

Ellipsis example: CLOB

decode(sign(dbms_lob.getlength(t.notes)-50) , -1, t.notes , dbms_lob.substr(t.notes,1,50) ||'…' ) note

!84

Page 85: Creating a Business Oriented UI in APEX

Long text (Icon)

!85

Page 86: Creating a Business Oriented UI in APEX

Long text (Icon)

!86

Page 87: Creating a Business Oriented UI in APEX

Long text (Icon)

!

!

!

</a>

<img src="chk_#ACTIVE#.png" alt=“#ACTIVE#"/>

<a href="#" class=“hideMe508">

!87

<a href="#"

</a>

Added by APEX

Page 88: Creating a Business Oriented UI in APEX

Icons

!88

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

Page 89: Creating a Business Oriented UI in APEX

Icons

!89

Bootstrap

Font Awesome

Page 90: Creating a Business Oriented UI in APEX

SUMMARY

!90

Page 91: Creating a Business Oriented UI in APEX

“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

Page 92: Creating a Business Oriented UI in APEX

http://www.enkitec.com

!92


Top Related