SlideShare une entreprise Scribd logo
1  sur  77
Top front-end techniques
for OutSystems
Free OutSystems webinar
18 August 2016
Source: http://goo.gl/uyRtWF
Top front-end techniques for OutSystems
Rúben Lumberjack Gonçalves
Head of Mobile & Front-End Experts @ OutSystems
@techrug
2
Disclaimer
! This is an extensive subject, so expect simplifications and homework !
Top front-end techniques for OutSystems
Once upon a time…
YouCannotDoThisIn
OutSystems
5
Top front-end techniques for OutSystems
Agenda
● What’s under the hood?
● Top front-end techniques
○ Best practices
○ Rediscovering the personal area
○ Changing the <head>
○ Browser support and testing
○ Cutting corners or how to avoid 1-click publish
● Fighting the dragon
5
What’s under the hood?
OutSystems front-end 101
Top front-end techniques for OutSystems
OutSystems Platform
7
Top front-end techniques for OutSystems
OutSystems Page
8
Top front-end techniques for OutSystems
OutSystems Page - head
9
Top front-end techniques for OutSystems
OutSystems Page - head
10
Top front-end techniques for OutSystems
OutSystems Page - head
11
Top front-end techniques for OutSystems
OutSystems Page - head
12
webblock css
platform css
theme css
page css
Top front-end techniques for OutSystems
Adding CSS
13
In specific page In every page using
the web block
In every page that
is using the theme
Top front-end techniques for OutSystems
Adding CSS
14
1
2
3
Tip
This is what enable
us to create enterprise
grade styleguides
Top front-end techniques for OutSystems
Learn more about CSS
15
See chapter 4: http://goo.gl/HxyQQg
Top front-end techniques for OutSystems
OutSystems Page - head
16
Top front-end techniques for OutSystems
OutSystems Page - head
17
platform JS
webblock JS
page JS
injected JS
Top front-end techniques for OutSystems
Adding JavaScript
18
In specific page In every page using
the web block
In every page
of the eSpace
_OSGlobalJS.js HomePage.js Line.js
Top front-end techniques for OutSystems
Adding JavaScript
19
1
3
2
Top front-end techniques for OutSystems
OutSystems body
20
Viewstate
EPA taskbox
(BPT)
Platform JS
Developer code
Top front-end techniques for OutSystems
Recap
● JavaScript and CSS files are automatically added in the head
● Platform organizes resources in a specific order:
1. Meta tags – responsive, favicon, mobile web apps, SEO…
2. CSS files – web blocks, theme, page
3. JavaScript files – eSpace, web blocks, page
● All code is placed inside a <form>
21
Top front-end techniques
Applied to OutSystems Platform
Top front-end techniques for OutSystems
Agenda
● What’s under the hood?
● Top front-end techniques
23
○ Best practices
Top front-end techniques for OutSystems
Best practices
1. CSS
2. JavaScript
3. Assorted (like candies!)
24
Top front-end techniques for OutSystems
Best practices - CSS
25
● Have code conventions
○ Create & enforce your code conventions
○ See example: https://goo.gl/uEkvvl, http://goo.gl/djF26t, http://goo.gl/We1yvt
○ Silk UI example:
■ one rule per line;
■ space between property and value, and semicolon at
the end of line;
■ ordered alphabetically;
■ whenever possible, make the animation in CSS
■ keep z-index values as low as possible
■ …
Tip
We’ll be creating a KB article
with the guidelines followed,
when creating Silk UI
Top front-end techniques for OutSystems
Best practices - CSS
26
● Have code conventions
● Avoid unnecessary vendor prefixes
Autoprefixer: https://autoprefixer.github.io/ Can I Use: https://caniuse.com/ http://shouldiprefix.com/
Top front-end techniques for OutSystems
Best practices - CSS
27
● Have code conventions
● Avoid unnecessary vendor prefixes
○ transform: -webkit-transform, -ms-transform
○ animation: -webkit-animation
○ display flex: names change with vendor
○ background with gradient: -webkit-gradient
○ calc: no prefix, but Android 4.4 can’t divide or multiply
○ box-shadow: no prefix
○ box-sizing: no prefix
○ transition: no prefix
Tip
Use Autoprefixer
and Can I Use for
correct prefixes.
Autoprefixer: https://autoprefixer.github.io/ Can I Use: https://caniuse.com/
Top front-end techniques for OutSystems
Best practices - CSS
28
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
Top front-end techniques for OutSystems
Best practices - CSS
29
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
○ Automatically generated
○ Depend on hierarchy of blocks
○ Use Classes instead
Top front-end techniques for OutSystems
Best practices - CSS
30
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
1. ID, e.g. #header
2. Class, e.g. .promo
3. Type, e.g. div
4. Adjacent sibling, e.g. h2 + p
5. Child, e.g. li > ul
6. Descendant, e.g. ul a
7. Universal, i.e. *
8. Attribute, e.g. [type="text"]
9. Pseudo-classes/-elements, e.g. a:hover
Less performant
Read more: http://goo.gl/KkdKLK
Top front-end techniques for OutSystems 31
See webinar: http://goo.gl/aiUlvb
Learn to measure performance
Top front-end techniques for OutSystems
Best practices - CSS
32
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
● Avoid defining CSS in web blocks or Pages
○ Leads to styles duplication
○ Hard to maintain and evolve applications
○ Impact in performance – number of files
17 CSS
25 JS
21 img
4 fonts
Top front-end techniques for OutSystems
Learn performance techniques
33
See session: https://goo.gl/arvD3Q
Top front-end techniques for OutSystems
Best practices - CSS
34
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
● Avoid defining CSS in web blocks or Pages
● Organize your theme CSS
○ Create an Index
Top front-end techniques for OutSystems
Best practices - CSS
35
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
● Avoid defining CSS in web blocks or Pages
● Organize your theme CSS
○ Create an Index
○ Separate CSS into sections
Top front-end techniques for OutSystems
Best practices - CSS
36
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
● Avoid defining CSS in web blocks or Pages
● Organize your theme CSS
○ Create an Index
○ Separate CSS into sections
○ Add all media queries to end of file
Top front-end techniques for OutSystems
Best practices - CSS
37
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
● Avoid defining CSS in web blocks or Pages
● Organize your theme CSS
○ Create an Index
○ Separate CSS into sections
○ Add all media queries to end of file
○ Using Silk UI, leave patterns CSS together
Responsive
Pattern
Top front-end techniques for OutSystems
Best practices - CSS
38
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
● Avoid defining CSS in web blocks or Pages
● Organize your theme CSS
● Be aware of theme dependencies – will lead to @imports
Top front-end techniques for OutSystems
Best practices - CSS
39
● Have code conventions
● Avoid unnecessary vendor prefixes
● Avoid using ID selectors
● Be aware of selectors performance
● Avoid defining CSS in web blocks or Pages
● Organize your theme CSS
● Be aware of theme dependencies – will lead to @imports
Tip
CSS is render blocking,
so avoid @imports, since
will delay page render
Sequential download
Top front-end techniques for OutSystems 40
See webinar: http://goo.gl/Qr4i50
Learn to architecture your CSS
Top front-end techniques for OutSystems
Best practices - CSS
41
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables - Messi code
○ Non-locality
○ No Access Control
○ Memory allocation
But if you really must… then be explicit:
42
Read more: http://goo.gl/g1Z4Vn P.s. – I don’t care about football at all…
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables
● Avoid console.log pollution
43
Read more: http://goo.gl/rSBT5S
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables
● Avoid console.log pollution
● Avoid doing animations with JavaScript
44
Read more: http://goo.gl/yhav2M
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables
● Avoid console.log pollution
● Avoid doing animations with JavaScript
45
Read more: http://goo.gl/UpH68x
The only way to 60 fps
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables
● Avoid console.log pollution
● Avoid doing animations with JavaScript
● Use platform jQuery ($)
46
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables
● Avoid console.log pollution
● Avoid doing animations with JavaScript
● Use platform jQuery ($)
● Use type and value comparison === vs ==
47
Avoid
Safer
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables
● Avoid console.log pollution
● Avoid doing animations with JavaScript
● Use platform jQuery ($)
● Use type and value comparison === vs ==
● Use Object Module approach
○ To avoid global functions
○ To avoid global variables
48
Read more: http://goo.gl/NFYIWT
Top front-end techniques for OutSystems
Best practices - JavaScript
● Avoid global variables
● Avoid console.log pollution
● Avoid doing animations with JavaScript
● Use platform jQuery ($)
● Use type and value comparison === vs ==
● Use Object Module approach
● Follow common JavaScript practices
○ w3schools - http://goo.gl/mIrWDF
○ Idiomatic - http://goo.gl/Hs6h47
49
Top front-end techniques for OutSystems
Best practices - Assorted
● EPA taskbox
50
EPA taskbox
(BPT)
Top front-end techniques for OutSystems
Best practices - Assorted
● Remove EPA taskbox if not in use
○ Remove programmatically
51
Top front-end techniques for OutSystems
Best practices - Assorted
● Remove EPA taskbox if not in use
○ Remove programmatically
○ Add exception to a specific eSpace – https://yourenvironment/EPA_Taskbox/
52
See help: https://goo.gl/u9nqPr
Top front-end techniques for OutSystems
Best practices - Assorted
● Remove EPA taskbox if not in use
● Checkout talk Delivering Mobile Apps that Perform
53
See session: https://goo.gl/arvD3Q
Top front-end techniques for OutSystems
Agenda
● What’s under the hood?
● Top front-end techniques
54
○ Best practices
○ Rediscovering the personal area
Top front-end techniques for OutSystems
“the developer can then test his changes privately without affecting any other developer”
CSS and JavaScript are local
Personal Area
55
Top front-end techniques for OutSystems
Personal Area
“the developer can then test his changes privately without affecting any other developer”
56
Top front-end techniques for OutSystems
Personal Area - limitations
57
Changes to the following elements require
See platform help: http://goo.gl/VGD7aA
Top front-end techniques for OutSystems
Agenda
● What’s under the hood?
● Top front-end techniques
○ Best practices
○ Rediscovering the personal area
○ Changing the <head>
58
Top front-end techniques for OutSystems
Changing the <head>
● HTTPRequestHandler
○ AddJavaScriptTag
○ AddStyleSheetTag
○ Add PostProcessingFilter
59
Top front-end techniques for OutSystems
Changing the <head> like a boss
● HTTPRequestHandler
● IncludeJavascript_API
60
Top front-end techniques for OutSystems
Agenda
● What’s under the hood?
● Top front-end techniques
○ Best practices
○ Rediscovering the personal area
○ Changing the <head> like a boss
○ Browser support and testing
61
Top front-end techniques for OutSystems
Browser support and testing
1. Ever increasing number of devices
62
Read more: http://goo.gl/YmLOn3
Top front-end techniques for OutSystems
Browser support and testing
1. Ever increasing number of devices
2. Identify target devices for market
63
Read more: http://goo.gl/apBVGF
Top front-end techniques for OutSystems
Browser support and testing
1. Ever increasing number of devices
2. Identify target devices for market
3. Test in target browsers / devices
64
BrowserStack: http://goo.gl/jwIuJM CrossBrowserTesting: http://goo.gl/cOkpE1
Top front-end techniques for OutSystems
Agenda
● What’s under the hood?
● Top front-end techniques
○ Best practices
○ Rediscovering the personal area
○ Changing the <head> like a boss
○ Browser support and testing
○ Cutting corners or how to avoid 1-click publish
65
Top front-end techniques for OutSystems
Cutting corners
66
Mauro Vieira
Top front-end techniques for OutSystems
How to avoid 1-click publish
● Tools of the trade
○ Sublime Text 3
○ Google Chrome
○ Xampp
○ Node JS
○ CSS Inject (chrome extension)
○ LiveReload (desktop + chrome extension)
67
Tip
Worry not, we’ll be creating
a post to explain step by
step how to do this.
Live demo
Where things will go wrong. Definitely.
Defeating the dragon
YouCannotDoThisInOutSystems
Top front-end techniques for OutSystems
Rule of thumb…
70
If it can be done in the web technology…
Then, it can be done in
OutSystems
Top front-end techniques for OutSystems
Great UIs
71
See webinar: http://goo.gl/3D2Xqm
Top front-end techniques for OutSystems
Great UIs
72
See demo: https://goo.gl/NU78vt Download code: http://goo.gl/N5QNq7
Top front-end techniques for OutSystems
Great UIs
73
See demo: https://goo.gl/NU78vt Download code: http://goo.gl/N5QNq7
Top front-end techniques for OutSystems
Great UIs
74
Takeaways
Or things to keep in mind
Top front-end techniques for OutSystems
Takeaways
76
● Front-end is no different in OutSystems
● Same techniques and approaches apply
● Leverage platform mechanisms, jQuery, HTTPRequestHandler, …
● Everything is possible, but with necessary care
Thank you

Contenu connexe

Tendances

Accessibility with OutSystems
Accessibility with OutSystemsAccessibility with OutSystems
Accessibility with OutSystemsBruno Marcelino
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completionRuben Goncalves
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeOutSystems
 
Service Actions
Service ActionsService Actions
Service ActionsOutSystems
 
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...OutSystemsNeo
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data GridOutSystems
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with JavascriptRitaDias72
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsOutSystems
 
BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTGonçalo Borrêga
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksOutSystems
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With OutsystemsOutSystems
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsOutSystems
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureOutSystems
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?OutSystems
 
Architecture 101 + Libraries
Architecture 101 + LibrariesArchitecture 101 + Libraries
Architecture 101 + LibrariesOutSystems
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best PracticesOutSystems
 
Sync or swim: the challenge of complex offline apps
Sync or swim:  the challenge of complex offline appsSync or swim:  the challenge of complex offline apps
Sync or swim: the challenge of complex offline appsOutSystems
 

Tendances (20)

Accessibility with OutSystems
Accessibility with OutSystemsAccessibility with OutSystems
Accessibility with OutSystems
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completion
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
 
Service Actions
Service ActionsService Actions
Service Actions
 
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data Grid
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
 
OutSystems Platform Troubleshooting
OutSystems Platform TroubleshootingOutSystems Platform Troubleshooting
OutSystems Platform Troubleshooting
 
Wordpress
WordpressWordpress
Wordpress
 
BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPT
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI Integrations
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With Outsystems
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of Applications
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?
 
Architecture 101 + Libraries
Architecture 101 + LibrariesArchitecture 101 + Libraries
Architecture 101 + Libraries
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
 
Sync or swim: the challenge of complex offline apps
Sync or swim:  the challenge of complex offline appsSync or swim:  the challenge of complex offline apps
Sync or swim: the challenge of complex offline apps
 

En vedette

CSS Basic and Tips
CSS Basic and TipsCSS Basic and Tips
CSS Basic and Tipsnyatto73
 
Joanne Snodgrass Power Point Resume
Joanne Snodgrass Power Point ResumeJoanne Snodgrass Power Point Resume
Joanne Snodgrass Power Point ResumeJoanne Snodgrass
 
Drupal 7, Custom Developments
Drupal 7, Custom DevelopmentsDrupal 7, Custom Developments
Drupal 7, Custom DevelopmentsDrupal Expert
 
Four Square - Gamification in customer engagement - Manu Melwin Joy
Four Square - Gamification in customer engagement  - Manu Melwin JoyFour Square - Gamification in customer engagement  - Manu Melwin Joy
Four Square - Gamification in customer engagement - Manu Melwin Joymanumelwin
 
ข้อสอบ o-net 53 สังคมศึกษา
ข้อสอบ o-net 53 สังคมศึกษาข้อสอบ o-net 53 สังคมศึกษา
ข้อสอบ o-net 53 สังคมศึกษาPeera Chumintharajak
 
Sinaptogenesis por taliha falcón
Sinaptogenesis por taliha falcónSinaptogenesis por taliha falcón
Sinaptogenesis por taliha falcóntalihafalcon
 
Disney movie rewards - Gamification in customer engagement - Manu Melwin Joy
 Disney movie rewards - Gamification in customer engagement - Manu Melwin Joy Disney movie rewards - Gamification in customer engagement - Manu Melwin Joy
Disney movie rewards - Gamification in customer engagement - Manu Melwin Joymanumelwin
 
Presentation on growing population of india
Presentation on growing population of indiaPresentation on growing population of india
Presentation on growing population of indiaBharateche15
 
Benevole e newsletter jan 2015
Benevole e newsletter jan 2015Benevole e newsletter jan 2015
Benevole e newsletter jan 2015Ramabhau Patil
 
Five fantastic tips for fabulous phone photos
Five fantastic tips for fabulous phone photosFive fantastic tips for fabulous phone photos
Five fantastic tips for fabulous phone photosSmallAperture
 
Plugin smilk : données liées et traitement de la langue pour améliorer la nav...
Plugin smilk : données liées et traitement de la langue pour améliorer la nav...Plugin smilk : données liées et traitement de la langue pour améliorer la nav...
Plugin smilk : données liées et traitement de la langue pour améliorer la nav...SemWebPro
 

En vedette (17)

CSS Basic and Tips
CSS Basic and TipsCSS Basic and Tips
CSS Basic and Tips
 
Marine-Angleren
Marine-AnglerenMarine-Angleren
Marine-Angleren
 
Fracciones parciales
Fracciones parcialesFracciones parciales
Fracciones parciales
 
Joanne Snodgrass Power Point Resume
Joanne Snodgrass Power Point ResumeJoanne Snodgrass Power Point Resume
Joanne Snodgrass Power Point Resume
 
2016 Monroe COC Directory
2016 Monroe COC Directory2016 Monroe COC Directory
2016 Monroe COC Directory
 
Drupal 7, Custom Developments
Drupal 7, Custom DevelopmentsDrupal 7, Custom Developments
Drupal 7, Custom Developments
 
Resume Purchasing
Resume PurchasingResume Purchasing
Resume Purchasing
 
Four Square - Gamification in customer engagement - Manu Melwin Joy
Four Square - Gamification in customer engagement  - Manu Melwin JoyFour Square - Gamification in customer engagement  - Manu Melwin Joy
Four Square - Gamification in customer engagement - Manu Melwin Joy
 
ข้อสอบ o-net 53 สังคมศึกษา
ข้อสอบ o-net 53 สังคมศึกษาข้อสอบ o-net 53 สังคมศึกษา
ข้อสอบ o-net 53 สังคมศึกษา
 
Sinaptogenesis por taliha falcón
Sinaptogenesis por taliha falcónSinaptogenesis por taliha falcón
Sinaptogenesis por taliha falcón
 
Disney movie rewards - Gamification in customer engagement - Manu Melwin Joy
 Disney movie rewards - Gamification in customer engagement - Manu Melwin Joy Disney movie rewards - Gamification in customer engagement - Manu Melwin Joy
Disney movie rewards - Gamification in customer engagement - Manu Melwin Joy
 
Presentation on growing population of india
Presentation on growing population of indiaPresentation on growing population of india
Presentation on growing population of india
 
Heol
HeolHeol
Heol
 
Windows 8
Windows 8 Windows 8
Windows 8
 
Benevole e newsletter jan 2015
Benevole e newsletter jan 2015Benevole e newsletter jan 2015
Benevole e newsletter jan 2015
 
Five fantastic tips for fabulous phone photos
Five fantastic tips for fabulous phone photosFive fantastic tips for fabulous phone photos
Five fantastic tips for fabulous phone photos
 
Plugin smilk : données liées et traitement de la langue pour améliorer la nav...
Plugin smilk : données liées et traitement de la langue pour améliorer la nav...Plugin smilk : données liées et traitement de la langue pour améliorer la nav...
Plugin smilk : données liées et traitement de la langue pour améliorer la nav...
 

Similaire à Top front-end techniques for OutSystems

How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...bugcrowd
 
DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...
DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...
DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...Gene Kim
 
Mirco hering devops for systems of record final
Mirco hering devops for systems of record finalMirco hering devops for systems of record final
Mirco hering devops for systems of record finalMirco Hering
 
Modern UI Architecture_ Trends and Technologies in Web Development
Modern UI Architecture_ Trends and Technologies in Web DevelopmentModern UI Architecture_ Trends and Technologies in Web Development
Modern UI Architecture_ Trends and Technologies in Web DevelopmentSuresh Patidar
 
XPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreXPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreTeamstudio
 
Clean low-code - OutSystens
Clean low-code - OutSystensClean low-code - OutSystens
Clean low-code - OutSystensHasan Derawan
 
#4 - CSS Selectors, CSS3 and Web typography
#4 - CSS Selectors, CSS3 and Web typography#4 - CSS Selectors, CSS3 and Web typography
#4 - CSS Selectors, CSS3 and Web typographyiloveigloo
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS TroubleshootingDenise Jacobs
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...Max Barrass
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processChristopher Cundill
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)Igalia
 
DEFCON 23 - Jason Haddix - how do i shot web
DEFCON 23 - Jason Haddix - how do i shot webDEFCON 23 - Jason Haddix - how do i shot web
DEFCON 23 - Jason Haddix - how do i shot webFelipe Prado
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 
Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausWomen in Technology Poland
 
Pentester++
Pentester++Pentester++
Pentester++CTruncer
 
Angular js recommended practices - mini
Angular js   recommended practices - miniAngular js   recommended practices - mini
Angular js recommended practices - miniRasheed Waraich
 
Best Practices in Component Development for MODX
Best Practices in Component Development for MODXBest Practices in Component Development for MODX
Best Practices in Component Development for MODXJan Tezner
 
WordPress: After The Install
WordPress: After The InstallWordPress: After The Install
WordPress: After The InstallWordPress NYC
 

Similaire à Top front-end techniques for OutSystems (20)

Using a CSS Framework
Using a CSS FrameworkUsing a CSS Framework
Using a CSS Framework
 
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
 
Beautiful In Print
Beautiful In PrintBeautiful In Print
Beautiful In Print
 
DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...
DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...
DOES15 - Mirco Hering - Adopting DevOps Practices for Systems of Record – An ...
 
Mirco hering devops for systems of record final
Mirco hering devops for systems of record finalMirco hering devops for systems of record final
Mirco hering devops for systems of record final
 
Modern UI Architecture_ Trends and Technologies in Web Development
Modern UI Architecture_ Trends and Technologies in Web DevelopmentModern UI Architecture_ Trends and Technologies in Web Development
Modern UI Architecture_ Trends and Technologies in Web Development
 
XPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreXPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and More
 
Clean low-code - OutSystens
Clean low-code - OutSystensClean low-code - OutSystens
Clean low-code - OutSystens
 
#4 - CSS Selectors, CSS3 and Web typography
#4 - CSS Selectors, CSS3 and Web typography#4 - CSS Selectors, CSS3 and Web typography
#4 - CSS Selectors, CSS3 and Web typography
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)
 
DEFCON 23 - Jason Haddix - how do i shot web
DEFCON 23 - Jason Haddix - how do i shot webDEFCON 23 - Jason Haddix - how do i shot web
DEFCON 23 - Jason Haddix - how do i shot web
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan Kraus
 
Pentester++
Pentester++Pentester++
Pentester++
 
Angular js recommended practices - mini
Angular js   recommended practices - miniAngular js   recommended practices - mini
Angular js recommended practices - mini
 
Best Practices in Component Development for MODX
Best Practices in Component Development for MODXBest Practices in Component Development for MODX
Best Practices in Component Development for MODX
 
WordPress: After The Install
WordPress: After The InstallWordPress: After The Install
WordPress: After The Install
 

Plus de Ruben Goncalves

Programming as a form of art
Programming as a form of artProgramming as a form of art
Programming as a form of artRuben Goncalves
 
Mobile Location workshop
Mobile Location workshopMobile Location workshop
Mobile Location workshopRuben Goncalves
 
Creating Mobile Apps like a BOSS
Creating Mobile Apps like a BOSSCreating Mobile Apps like a BOSS
Creating Mobile Apps like a BOSSRuben Goncalves
 
Dos and Don'ts on the road to Mobility
Dos and Don'ts on the road to MobilityDos and Don'ts on the road to Mobility
Dos and Don'ts on the road to MobilityRuben Goncalves
 
The real impact of mobility on your business apps
The real impact of mobility on your business appsThe real impact of mobility on your business apps
The real impact of mobility on your business appsRuben Goncalves
 
Delivering Mobile Apps That Perform
Delivering Mobile Apps That PerformDelivering Mobile Apps That Perform
Delivering Mobile Apps That PerformRuben Goncalves
 
Hardcore Mobile integrations
Hardcore Mobile integrationsHardcore Mobile integrations
Hardcore Mobile integrationsRuben Goncalves
 
Become a mobile developer from scratch
Become a mobile developer from scratchBecome a mobile developer from scratch
Become a mobile developer from scratchRuben Goncalves
 
Usability session @ SEI Universidade do Minho
Usability session @ SEI Universidade do MinhoUsability session @ SEI Universidade do Minho
Usability session @ SEI Universidade do MinhoRuben Goncalves
 
Grids and Visual hierarchy for developers
Grids and Visual hierarchy for developers Grids and Visual hierarchy for developers
Grids and Visual hierarchy for developers Ruben Goncalves
 

Plus de Ruben Goncalves (10)

Programming as a form of art
Programming as a form of artProgramming as a form of art
Programming as a form of art
 
Mobile Location workshop
Mobile Location workshopMobile Location workshop
Mobile Location workshop
 
Creating Mobile Apps like a BOSS
Creating Mobile Apps like a BOSSCreating Mobile Apps like a BOSS
Creating Mobile Apps like a BOSS
 
Dos and Don'ts on the road to Mobility
Dos and Don'ts on the road to MobilityDos and Don'ts on the road to Mobility
Dos and Don'ts on the road to Mobility
 
The real impact of mobility on your business apps
The real impact of mobility on your business appsThe real impact of mobility on your business apps
The real impact of mobility on your business apps
 
Delivering Mobile Apps That Perform
Delivering Mobile Apps That PerformDelivering Mobile Apps That Perform
Delivering Mobile Apps That Perform
 
Hardcore Mobile integrations
Hardcore Mobile integrationsHardcore Mobile integrations
Hardcore Mobile integrations
 
Become a mobile developer from scratch
Become a mobile developer from scratchBecome a mobile developer from scratch
Become a mobile developer from scratch
 
Usability session @ SEI Universidade do Minho
Usability session @ SEI Universidade do MinhoUsability session @ SEI Universidade do Minho
Usability session @ SEI Universidade do Minho
 
Grids and Visual hierarchy for developers
Grids and Visual hierarchy for developers Grids and Visual hierarchy for developers
Grids and Visual hierarchy for developers
 

Dernier

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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, Adobeapidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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 WorkerThousandEyes
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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 RobisonAnna Loughnan Colquhoun
 
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 FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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?Igalia
 
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 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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.pdfhans926745
 
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 StrategiesBoston Institute of Analytics
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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 WorkerThousandEyes
 
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 BusinessPixlogix Infotech
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Dernier (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Top front-end techniques for OutSystems

  • 1. Top front-end techniques for OutSystems Free OutSystems webinar 18 August 2016 Source: http://goo.gl/uyRtWF
  • 2. Top front-end techniques for OutSystems Rúben Lumberjack Gonçalves Head of Mobile & Front-End Experts @ OutSystems @techrug 2
  • 3. Disclaimer ! This is an extensive subject, so expect simplifications and homework !
  • 4. Top front-end techniques for OutSystems Once upon a time… YouCannotDoThisIn OutSystems 5
  • 5. Top front-end techniques for OutSystems Agenda ● What’s under the hood? ● Top front-end techniques ○ Best practices ○ Rediscovering the personal area ○ Changing the <head> ○ Browser support and testing ○ Cutting corners or how to avoid 1-click publish ● Fighting the dragon 5
  • 6. What’s under the hood? OutSystems front-end 101
  • 7. Top front-end techniques for OutSystems OutSystems Platform 7
  • 8. Top front-end techniques for OutSystems OutSystems Page 8
  • 9. Top front-end techniques for OutSystems OutSystems Page - head 9
  • 10. Top front-end techniques for OutSystems OutSystems Page - head 10
  • 11. Top front-end techniques for OutSystems OutSystems Page - head 11
  • 12. Top front-end techniques for OutSystems OutSystems Page - head 12 webblock css platform css theme css page css
  • 13. Top front-end techniques for OutSystems Adding CSS 13 In specific page In every page using the web block In every page that is using the theme
  • 14. Top front-end techniques for OutSystems Adding CSS 14 1 2 3 Tip This is what enable us to create enterprise grade styleguides
  • 15. Top front-end techniques for OutSystems Learn more about CSS 15 See chapter 4: http://goo.gl/HxyQQg
  • 16. Top front-end techniques for OutSystems OutSystems Page - head 16
  • 17. Top front-end techniques for OutSystems OutSystems Page - head 17 platform JS webblock JS page JS injected JS
  • 18. Top front-end techniques for OutSystems Adding JavaScript 18 In specific page In every page using the web block In every page of the eSpace _OSGlobalJS.js HomePage.js Line.js
  • 19. Top front-end techniques for OutSystems Adding JavaScript 19 1 3 2
  • 20. Top front-end techniques for OutSystems OutSystems body 20 Viewstate EPA taskbox (BPT) Platform JS Developer code
  • 21. Top front-end techniques for OutSystems Recap ● JavaScript and CSS files are automatically added in the head ● Platform organizes resources in a specific order: 1. Meta tags – responsive, favicon, mobile web apps, SEO… 2. CSS files – web blocks, theme, page 3. JavaScript files – eSpace, web blocks, page ● All code is placed inside a <form> 21
  • 22. Top front-end techniques Applied to OutSystems Platform
  • 23. Top front-end techniques for OutSystems Agenda ● What’s under the hood? ● Top front-end techniques 23 ○ Best practices
  • 24. Top front-end techniques for OutSystems Best practices 1. CSS 2. JavaScript 3. Assorted (like candies!) 24
  • 25. Top front-end techniques for OutSystems Best practices - CSS 25 ● Have code conventions ○ Create & enforce your code conventions ○ See example: https://goo.gl/uEkvvl, http://goo.gl/djF26t, http://goo.gl/We1yvt ○ Silk UI example: ■ one rule per line; ■ space between property and value, and semicolon at the end of line; ■ ordered alphabetically; ■ whenever possible, make the animation in CSS ■ keep z-index values as low as possible ■ … Tip We’ll be creating a KB article with the guidelines followed, when creating Silk UI
  • 26. Top front-end techniques for OutSystems Best practices - CSS 26 ● Have code conventions ● Avoid unnecessary vendor prefixes Autoprefixer: https://autoprefixer.github.io/ Can I Use: https://caniuse.com/ http://shouldiprefix.com/
  • 27. Top front-end techniques for OutSystems Best practices - CSS 27 ● Have code conventions ● Avoid unnecessary vendor prefixes ○ transform: -webkit-transform, -ms-transform ○ animation: -webkit-animation ○ display flex: names change with vendor ○ background with gradient: -webkit-gradient ○ calc: no prefix, but Android 4.4 can’t divide or multiply ○ box-shadow: no prefix ○ box-sizing: no prefix ○ transition: no prefix Tip Use Autoprefixer and Can I Use for correct prefixes. Autoprefixer: https://autoprefixer.github.io/ Can I Use: https://caniuse.com/
  • 28. Top front-end techniques for OutSystems Best practices - CSS 28 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors
  • 29. Top front-end techniques for OutSystems Best practices - CSS 29 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ○ Automatically generated ○ Depend on hierarchy of blocks ○ Use Classes instead
  • 30. Top front-end techniques for OutSystems Best practices - CSS 30 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance 1. ID, e.g. #header 2. Class, e.g. .promo 3. Type, e.g. div 4. Adjacent sibling, e.g. h2 + p 5. Child, e.g. li > ul 6. Descendant, e.g. ul a 7. Universal, i.e. * 8. Attribute, e.g. [type="text"] 9. Pseudo-classes/-elements, e.g. a:hover Less performant Read more: http://goo.gl/KkdKLK
  • 31. Top front-end techniques for OutSystems 31 See webinar: http://goo.gl/aiUlvb Learn to measure performance
  • 32. Top front-end techniques for OutSystems Best practices - CSS 32 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance ● Avoid defining CSS in web blocks or Pages ○ Leads to styles duplication ○ Hard to maintain and evolve applications ○ Impact in performance – number of files 17 CSS 25 JS 21 img 4 fonts
  • 33. Top front-end techniques for OutSystems Learn performance techniques 33 See session: https://goo.gl/arvD3Q
  • 34. Top front-end techniques for OutSystems Best practices - CSS 34 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance ● Avoid defining CSS in web blocks or Pages ● Organize your theme CSS ○ Create an Index
  • 35. Top front-end techniques for OutSystems Best practices - CSS 35 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance ● Avoid defining CSS in web blocks or Pages ● Organize your theme CSS ○ Create an Index ○ Separate CSS into sections
  • 36. Top front-end techniques for OutSystems Best practices - CSS 36 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance ● Avoid defining CSS in web blocks or Pages ● Organize your theme CSS ○ Create an Index ○ Separate CSS into sections ○ Add all media queries to end of file
  • 37. Top front-end techniques for OutSystems Best practices - CSS 37 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance ● Avoid defining CSS in web blocks or Pages ● Organize your theme CSS ○ Create an Index ○ Separate CSS into sections ○ Add all media queries to end of file ○ Using Silk UI, leave patterns CSS together Responsive Pattern
  • 38. Top front-end techniques for OutSystems Best practices - CSS 38 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance ● Avoid defining CSS in web blocks or Pages ● Organize your theme CSS ● Be aware of theme dependencies – will lead to @imports
  • 39. Top front-end techniques for OutSystems Best practices - CSS 39 ● Have code conventions ● Avoid unnecessary vendor prefixes ● Avoid using ID selectors ● Be aware of selectors performance ● Avoid defining CSS in web blocks or Pages ● Organize your theme CSS ● Be aware of theme dependencies – will lead to @imports Tip CSS is render blocking, so avoid @imports, since will delay page render Sequential download
  • 40. Top front-end techniques for OutSystems 40 See webinar: http://goo.gl/Qr4i50 Learn to architecture your CSS
  • 41. Top front-end techniques for OutSystems Best practices - CSS 41
  • 42. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables - Messi code ○ Non-locality ○ No Access Control ○ Memory allocation But if you really must… then be explicit: 42 Read more: http://goo.gl/g1Z4Vn P.s. – I don’t care about football at all…
  • 43. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables ● Avoid console.log pollution 43 Read more: http://goo.gl/rSBT5S
  • 44. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables ● Avoid console.log pollution ● Avoid doing animations with JavaScript 44 Read more: http://goo.gl/yhav2M
  • 45. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables ● Avoid console.log pollution ● Avoid doing animations with JavaScript 45 Read more: http://goo.gl/UpH68x The only way to 60 fps
  • 46. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables ● Avoid console.log pollution ● Avoid doing animations with JavaScript ● Use platform jQuery ($) 46
  • 47. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables ● Avoid console.log pollution ● Avoid doing animations with JavaScript ● Use platform jQuery ($) ● Use type and value comparison === vs == 47 Avoid Safer
  • 48. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables ● Avoid console.log pollution ● Avoid doing animations with JavaScript ● Use platform jQuery ($) ● Use type and value comparison === vs == ● Use Object Module approach ○ To avoid global functions ○ To avoid global variables 48 Read more: http://goo.gl/NFYIWT
  • 49. Top front-end techniques for OutSystems Best practices - JavaScript ● Avoid global variables ● Avoid console.log pollution ● Avoid doing animations with JavaScript ● Use platform jQuery ($) ● Use type and value comparison === vs == ● Use Object Module approach ● Follow common JavaScript practices ○ w3schools - http://goo.gl/mIrWDF ○ Idiomatic - http://goo.gl/Hs6h47 49
  • 50. Top front-end techniques for OutSystems Best practices - Assorted ● EPA taskbox 50 EPA taskbox (BPT)
  • 51. Top front-end techniques for OutSystems Best practices - Assorted ● Remove EPA taskbox if not in use ○ Remove programmatically 51
  • 52. Top front-end techniques for OutSystems Best practices - Assorted ● Remove EPA taskbox if not in use ○ Remove programmatically ○ Add exception to a specific eSpace – https://yourenvironment/EPA_Taskbox/ 52 See help: https://goo.gl/u9nqPr
  • 53. Top front-end techniques for OutSystems Best practices - Assorted ● Remove EPA taskbox if not in use ● Checkout talk Delivering Mobile Apps that Perform 53 See session: https://goo.gl/arvD3Q
  • 54. Top front-end techniques for OutSystems Agenda ● What’s under the hood? ● Top front-end techniques 54 ○ Best practices ○ Rediscovering the personal area
  • 55. Top front-end techniques for OutSystems “the developer can then test his changes privately without affecting any other developer” CSS and JavaScript are local Personal Area 55
  • 56. Top front-end techniques for OutSystems Personal Area “the developer can then test his changes privately without affecting any other developer” 56
  • 57. Top front-end techniques for OutSystems Personal Area - limitations 57 Changes to the following elements require See platform help: http://goo.gl/VGD7aA
  • 58. Top front-end techniques for OutSystems Agenda ● What’s under the hood? ● Top front-end techniques ○ Best practices ○ Rediscovering the personal area ○ Changing the <head> 58
  • 59. Top front-end techniques for OutSystems Changing the <head> ● HTTPRequestHandler ○ AddJavaScriptTag ○ AddStyleSheetTag ○ Add PostProcessingFilter 59
  • 60. Top front-end techniques for OutSystems Changing the <head> like a boss ● HTTPRequestHandler ● IncludeJavascript_API 60
  • 61. Top front-end techniques for OutSystems Agenda ● What’s under the hood? ● Top front-end techniques ○ Best practices ○ Rediscovering the personal area ○ Changing the <head> like a boss ○ Browser support and testing 61
  • 62. Top front-end techniques for OutSystems Browser support and testing 1. Ever increasing number of devices 62 Read more: http://goo.gl/YmLOn3
  • 63. Top front-end techniques for OutSystems Browser support and testing 1. Ever increasing number of devices 2. Identify target devices for market 63 Read more: http://goo.gl/apBVGF
  • 64. Top front-end techniques for OutSystems Browser support and testing 1. Ever increasing number of devices 2. Identify target devices for market 3. Test in target browsers / devices 64 BrowserStack: http://goo.gl/jwIuJM CrossBrowserTesting: http://goo.gl/cOkpE1
  • 65. Top front-end techniques for OutSystems Agenda ● What’s under the hood? ● Top front-end techniques ○ Best practices ○ Rediscovering the personal area ○ Changing the <head> like a boss ○ Browser support and testing ○ Cutting corners or how to avoid 1-click publish 65
  • 66. Top front-end techniques for OutSystems Cutting corners 66 Mauro Vieira
  • 67. Top front-end techniques for OutSystems How to avoid 1-click publish ● Tools of the trade ○ Sublime Text 3 ○ Google Chrome ○ Xampp ○ Node JS ○ CSS Inject (chrome extension) ○ LiveReload (desktop + chrome extension) 67 Tip Worry not, we’ll be creating a post to explain step by step how to do this.
  • 68. Live demo Where things will go wrong. Definitely.
  • 70. Top front-end techniques for OutSystems Rule of thumb… 70 If it can be done in the web technology… Then, it can be done in OutSystems
  • 71. Top front-end techniques for OutSystems Great UIs 71 See webinar: http://goo.gl/3D2Xqm
  • 72. Top front-end techniques for OutSystems Great UIs 72 See demo: https://goo.gl/NU78vt Download code: http://goo.gl/N5QNq7
  • 73. Top front-end techniques for OutSystems Great UIs 73 See demo: https://goo.gl/NU78vt Download code: http://goo.gl/N5QNq7
  • 74. Top front-end techniques for OutSystems Great UIs 74
  • 75. Takeaways Or things to keep in mind
  • 76. Top front-end techniques for OutSystems Takeaways 76 ● Front-end is no different in OutSystems ● Same techniques and approaches apply ● Leverage platform mechanisms, jQuery, HTTPRequestHandler, … ● Everything is possible, but with necessary care

Notes de l'éditeur

  1. Welcome to one more OutSystems webinar. Todays webinar is about Top front-end techniques for OutSystems.
  2. This is something that the platform does in order to improve performance
  3. Meta tags for responsive and for web mobile apps (add To Home Screen).
  4. .IntroStyles .Card { background-image: url(image.jpg); border: 1px solid #ccc; color: #fff; } .Card .StylesDescription{ color: #fff; } http://expertsoutsystems.outsystemscloud.com/ACME_Styleguide/Homepage.aspx
  5. .IntroStyles .Card { background-image: url(image.jpg); border: 1px solid #ccc; color: #fff; } .Card .StylesDescription{ color: #fff; } http://expertsoutsystems.outsystemscloud.com/ACME_Styleguide/Homepage.aspx