SlideShare a Scribd company logo
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

More Related Content

What's hot

Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
Gh-Mohammed Eldadah
 
OutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help DeckOutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help Deck
Fábio Godinho
 
アクセシビリティvsセキュリティ ~こんな対策はいらない!~
アクセシビリティvsセキュリティ ~こんな対策はいらない!~ アクセシビリティvsセキュリティ ~こんな対策はいらない!~
アクセシビリティvsセキュリティ ~こんな対策はいらない!~
Yoshinori OHTA
 
CSS Systems
CSS SystemsCSS Systems
CSS Systems
Natalie Downe
 
Geohashing with Uber’s H3 Geospatial Index
Geohashing with Uber’s H3 Geospatial Index Geohashing with Uber’s H3 Geospatial Index
Geohashing with Uber’s H3 Geospatial Index
HPCC Systems
 
Go入門
Go入門Go入門
Go入門
Takuya Ueda
 
Scalable webservice
Scalable webserviceScalable webservice
Scalable webservice
DaeMyung Kang
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
glen_a_smith
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
Bo-Yi Wu
 
Modernising AEM Sites Codebase (AEM Meetup 2019)
Modernising AEM Sites Codebase  (AEM Meetup 2019)Modernising AEM Sites Codebase  (AEM Meetup 2019)
Modernising AEM Sites Codebase (AEM Meetup 2019)
Hanish Bansal
 
Exploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraphExploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraph
Jason Plurad
 
Creating custom themes in AtoM
Creating custom themes in AtoMCreating custom themes in AtoM
Creating custom themes in AtoM
Artefactual Systems - AtoM
 
"허니몬의 마크다운 사용기"
"허니몬의 마크다운 사용기""허니몬의 마크다운 사용기"
"허니몬의 마크다운 사용기"
Ji Heon Kim
 
From framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytvFrom framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytv
CodelyTV
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
Anwarul Islam
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
Saeko Yamamoto
 
Coding with golang
Coding with golangCoding with golang
Coding with golang
HannahMoss14
 
Git internals
Git internalsGit internals
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStorming
Alberto Brandolini
 

What's hot (20)

Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
 
OutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help DeckOutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help Deck
 
アクセシビリティvsセキュリティ ~こんな対策はいらない!~
アクセシビリティvsセキュリティ ~こんな対策はいらない!~ アクセシビリティvsセキュリティ ~こんな対策はいらない!~
アクセシビリティvsセキュリティ ~こんな対策はいらない!~
 
CSS Systems
CSS SystemsCSS Systems
CSS Systems
 
Geohashing with Uber’s H3 Geospatial Index
Geohashing with Uber’s H3 Geospatial Index Geohashing with Uber’s H3 Geospatial Index
Geohashing with Uber’s H3 Geospatial Index
 
Go入門
Go入門Go入門
Go入門
 
Scalable webservice
Scalable webserviceScalable webservice
Scalable webservice
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
Modernising AEM Sites Codebase (AEM Meetup 2019)
Modernising AEM Sites Codebase  (AEM Meetup 2019)Modernising AEM Sites Codebase  (AEM Meetup 2019)
Modernising AEM Sites Codebase (AEM Meetup 2019)
 
Exploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraphExploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraph
 
Creating custom themes in AtoM
Creating custom themes in AtoMCreating custom themes in AtoM
Creating custom themes in AtoM
 
"허니몬의 마크다운 사용기"
"허니몬의 마크다운 사용기""허니몬의 마크다운 사용기"
"허니몬의 마크다운 사용기"
 
From framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytvFrom framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytv
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 
Coding with golang
Coding with golangCoding with golang
Coding with golang
 
Git internals
Git internalsGit internals
Git internals
 
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStorming
 

Viewers also liked

CSS Basic and Tips
CSS Basic and TipsCSS Basic and Tips
CSS Basic and Tips
nyatto73
 
Marine-Angleren
Marine-AnglerenMarine-Angleren
Marine-Angleren
Marine Ishkhanyan
 
Fracciones parciales
Fracciones parcialesFracciones parciales
Fracciones parciales
Manuelh Villanueva
 
Joanne Snodgrass Power Point Resume
Joanne Snodgrass Power Point ResumeJoanne Snodgrass Power Point Resume
Joanne Snodgrass Power Point Resume
Joanne Snodgrass
 
2016 Monroe COC Directory
2016 Monroe COC Directory2016 Monroe COC Directory
2016 Monroe COC Directory
Monroe Chamber of Commerce
 
Drupal 7, Custom Developments
Drupal 7, Custom DevelopmentsDrupal 7, Custom Developments
Drupal 7, Custom Developments
Drupal Expert
 
Resume Purchasing
Resume PurchasingResume Purchasing
Resume Purchasing
Lori Ambrose
 
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
manumelwin
 
ข้อสอบ 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ón
talihafalcon
 
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
manumelwin
 
Presentation on growing population of india
Presentation on growing population of indiaPresentation on growing population of india
Presentation on growing population of india
Bharateche15
 
Heol
HeolHeol
Heol
miawes
 
Windows 8
Windows 8 Windows 8
Windows 8
erikka890
 
Benevole e newsletter jan 2015
Benevole e newsletter jan 2015Benevole e newsletter jan 2015
Benevole e newsletter jan 2015
Ramabhau 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 photos
SmallAperture
 
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
 

Viewers also liked (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...
 

Similar to Top front-end techniques for OutSystems

OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
OutSystems
 
Using a CSS Framework
Using a CSS FrameworkUsing a CSS Framework
Using a CSS Framework
Gareth Saunders
 
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
 
Beautiful In Print
Beautiful In PrintBeautiful In Print
Beautiful In Print
Emma Jane Hogbin Westby
 
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 final
Mirco 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 Development
Suresh Patidar
 
XPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreXPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and More
Teamstudio
 
Clean low-code - OutSystens
Clean low-code - OutSystensClean low-code - OutSystens
Clean low-code - OutSystens
Hasan 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 typography
iloveigloo
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
Denise 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 process
Christopher 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 web
Felipe Prado
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
Kris 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 Kraus
Women 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 - mini
Rasheed 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 MODX
Jan Tezner
 

Similar to Top front-end techniques for OutSystems (20)

OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
 
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
 

More from Ruben Goncalves

Programming as a form of art
Programming as a form of artProgramming as a form of art
Programming as a form of art
Ruben Goncalves
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completion
Ruben Goncalves
 
Mobile Location workshop
Mobile Location workshopMobile Location workshop
Mobile Location workshop
Ruben Goncalves
 
Creating Mobile Apps like a BOSS
Creating Mobile Apps like a BOSSCreating Mobile Apps like a BOSS
Creating Mobile Apps like a BOSS
Ruben 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 Mobility
Ruben 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 apps
Ruben Goncalves
 
Delivering Mobile Apps That Perform
Delivering Mobile Apps That PerformDelivering Mobile Apps That Perform
Delivering Mobile Apps That Perform
Ruben Goncalves
 
Hardcore Mobile integrations
Hardcore Mobile integrationsHardcore Mobile integrations
Hardcore Mobile integrations
Ruben Goncalves
 
Become a mobile developer from scratch
Become a mobile developer from scratchBecome a mobile developer from scratch
Become a mobile developer from scratch
Ruben Goncalves
 
Usability session @ SEI Universidade do Minho
Usability session @ SEI Universidade do MinhoUsability session @ SEI Universidade do Minho
Usability session @ SEI Universidade do Minho
Ruben 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
 

More from Ruben Goncalves (11)

Programming as a form of art
Programming as a form of artProgramming as a form of art
Programming as a form of art
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completion
 
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
 

Recently uploaded

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 

Recently uploaded (20)

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 

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

Editor's Notes

  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