SlideShare a Scribd company logo
11/17 – 1 / 20
sovanta AG, 28.06.2019
How to build the ultimate Custom Controls UI5 Library
Daniel Barthel, Sebastian Mahr
© sovanta AG 2019 2
Who we are ...
Daniel Barthel
Software Engineer
Daniel.Barthel@sovanta.com
• Development Lead of UI5 Custom Control
Library
• 2.5 years experience in OpenUI5
Sebastian Mahr
Software Engineer
Sebastian.Mahr@sovanta.com
• DevOps Lead of UI5 Custom Control Library
• 2.5 years experience in OpenUI5
© sovanta AG 2019 3
sovanta AG
Leading in SAP User Experience
simplicity first
Founded with the goal of fundamentally simplifying the way business software is used.
One team – all competences
Experts from the areas of business, design, and technology.
Design Driven Development
Standardized method set from ideation through to operation.
SHAPE® – systematic digitalization
Our building blocks for the development of user-centered business solutions.
§ UI5 Experience since 2013
§ 180 employees
§ 250 projects and 1 million users
§ 100 customers
§ Offices in Heidelberg, Hamburg and Buenos Aires
§ Close partnership with SAP in product development and technology
§ Awarded several times as top innovator
11/17 – 4 / 20
Agenda
© sovanta AG 2019 5
What we will show
§ Painpoints in our first Library project
§ Improvements for our current Libraries
§ White-Label strategy and Theme concepts
§ Inhouse Tooling for development
§ Demokit extension for custom Library documentation
© sovanta AG 2019 6
What you should know
§ Basic Control development
§ Styling development
11/17 – 7 / 20
Why we started building Custom Control Libraries
© sovanta AG 2019 8
The beginning of building Control Libraries ...
§ 1 Customer, multiple applications
§ Cluster often used controls, code and concepts
§ Reuse code instead of copy & paste in every application
§ Customer CI, Fiori Design not fitting to Customer Styleguide
© sovanta AG 2019 9
Issues we ran into ...
Development of new controls inside the application first
§ Most of the time with a lot of Business Logic
§ Copied it into the Library when needed somewhere else
We've build very specific Controls
§ Often not customizable / flexible enough
§ Build multiple Variants (e.g.
Button, LightButton, PanelWithHeader, ...)
§ Bad extensibility
§ Too many internal dependencies
One single Theme
Build on one specific UI5 Version
Developer driven Controls
11/17 – 10 / 20
- Alan Cooper
"The value of a prototype is in the education it gives you, not
in the code itself."
11/17 – 11 / 20
What we have learned
© sovanta AG 2019 12
Architecture is key ...
Design first, development second
§ Which controls do we need all the time ?
§ How should they behave ?
§ How should they look like ?
Architecture and planning
§ Which UI5 Control we can use as base ?
§ Define Properties, Events, Aggregations the control
need before development
Development
§ Cluster and encapsulate (e.g. own namespaces, ...)
§ Build lightweight controls
§ Avoid dependencies that you can't control
© sovanta AG 2019 13
Design Systems lay the foundation...
§ We’ve our own internally used Design System called
SHAPE®
§ A set of components, connected patterns and shared
practices, coherently organized to serve the purpose of
digital products.
§ We use Customer Design Systems as a base for Libraries to
fit their CI and Design specifications
§ Design Systems are good foundation for the communication
between Design and Development
© sovanta AG 2019 14
Our demands on UI5 Libraries ...
§ Coexistence with UI5
§ White-Label possibilities
§ Easy to use development Tools
§ Documentation, a damn good documentation
§ No need to reinvent the wheel
§ Know your framework
§ Use the features
§ Stay by the standard
11/17 – 15 / 20
Themes and White-Labeling
© sovanta AG 2019 16
Theme Designer
Base Theme Customer Theme
Theming/White-Labeling
Requirements
§ Extension of UI5 Theme (Theme Designer)
§ Standard UI5 Control styling can coexist with Library Control styling
© sovanta AG 2019 17
Base Theme
Base Theme architecture
Includes Font, Color, Layout, Spacing definitions
One LESS-File for each control
Base-Theme color definition Base-Theme color usage
© sovanta AG 2019 18
Customer Theme
Customer Theme extension
Easy to set up
Fully flexible to customize
Customer Theme needs a animation that was not designed in the base themeCustomer-Theme color redefinition
© sovanta AG 2019 19
Control styling
Minimum overstyle of extended controls
Encapsulate all style Rules via distinct CSS Class
Control.lessControl.js
11/17 – 20 / 20
Tooling
© sovanta AG 2019 21
Tooling
Tooling for assisting the library development
Currently grunt base
Tasks for the building process
§ Sync theme less files with the controls in the library
§ Update Control samples
§ Register Iconfont
§ Update the test suite with all unit tests
§ Run UI5 CLI tooling
§ NPM deployment
© sovanta AG 2019 22
Tooling
Tooling for assisting the library development
Tasks for the developer
§ Add Control
§ Add Sample
§ Add Unit Test
§ Delete Control
Add Control
</> Control.js
</> Sample
</> …
</> UnitTest.js
</> Controll.less
© sovanta AG 2019 23
Tooling
UI5-Tooling
Rootproject
§ Control library
§ Theme x
§ Theme y
§ …
UI5 YAML is included in every module
Subfolder (Library, Themes) managed as dependencies
11/17 – 24 / 20
Custom Demokit / Documentation
© sovanta AG 2019 25
Demokit
Demokit extension as documentation tool
§ Hook into UI5 Demokit
§ Use Demokit to show custom Library Documentation
§ Provide custom Samples
§ Theme change
§ Show external Iconfonts in Icon Explorer
© sovanta AG 2019 26
Summary ...
What we‘ve shown today
Development process with
Design and Architecture
White-Label concepts and
Theme strategies
Supporting development
and Build Tooling
Demokit documentation for
custom Libraries
© sovanta AG 2019 27
We are hiring …
www.github.com/sovantaTel. +49 (0)6221 18733-0
Fax +49 (0)6221 18733-44
info@sovanta.com
www.sovanta.com
sovanta AG
X-House
11/17 – 28 / 20
Have a nice UI5Con

More Related Content

What's hot

Kalagram- An Art Centre
Kalagram- An Art CentreKalagram- An Art Centre
Kalagram- An Art Centre
Parag Nandalaskar
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
MongoDB
 
River - Front Development with 2 Examples
River - Front Development with 2 ExamplesRiver - Front Development with 2 Examples
River - Front Development with 2 Examples
Rohit Kumar Singh
 
Urban Pod - Design the Sustainable Experience
Urban Pod - Design the Sustainable Experience Urban Pod - Design the Sustainable Experience
Urban Pod - Design the Sustainable Experience
jilli43488
 
urban design case study of old city Jodhpur
urban design case study of  old city Jodhpururban design case study of  old city Jodhpur
urban design case study of old city Jodhpur
SreyaseeNath1
 
Micro-Frontend Architecture
Micro-Frontend ArchitectureMicro-Frontend Architecture
Micro-Frontend Architecture
Livares Technologies Pvt Ltd
 
Bineet portfolio
Bineet portfolioBineet portfolio
Bineet portfolio
Bineet Chhajer
 
Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web Development
Yash Sati
 
Data collection to design art and craft villege
Data collection to design art and craft villegeData collection to design art and craft villege
Data collection to design art and craft villege
Nilanjana Pal
 
Karnataka & andhra pradesh
Karnataka & andhra pradeshKarnataka & andhra pradesh
Karnataka & andhra pradesh
benazirmohamedkhan
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and Akka
Yung-Lin Ho
 
Front end architecture patterns
Front end architecture patternsFront end architecture patterns
Front end architecture patterns
Oleksandr Tryshchenko
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDB
Lee Theobald
 
Design portfolio
Design portfolioDesign portfolio
Design portfolio
Hardip Parmar
 
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 JavaScript - Chapter 9 - TypeConversion and Regular Expressions  JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
WebStackAcademy
 
Web-Development-ppt.pptx
Web-Development-ppt.pptxWeb-Development-ppt.pptx
Web-Development-ppt.pptx
EleenaJha
 
NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT
NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT
NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT
NikitaLondhe6
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core Components
Gabriel Walt
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
DivyanshGupta922023
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
Jeevesh Pandey
 

What's hot (20)

Kalagram- An Art Centre
Kalagram- An Art CentreKalagram- An Art Centre
Kalagram- An Art Centre
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
River - Front Development with 2 Examples
River - Front Development with 2 ExamplesRiver - Front Development with 2 Examples
River - Front Development with 2 Examples
 
Urban Pod - Design the Sustainable Experience
Urban Pod - Design the Sustainable Experience Urban Pod - Design the Sustainable Experience
Urban Pod - Design the Sustainable Experience
 
urban design case study of old city Jodhpur
urban design case study of  old city Jodhpururban design case study of  old city Jodhpur
urban design case study of old city Jodhpur
 
Micro-Frontend Architecture
Micro-Frontend ArchitectureMicro-Frontend Architecture
Micro-Frontend Architecture
 
Bineet portfolio
Bineet portfolioBineet portfolio
Bineet portfolio
 
Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web Development
 
Data collection to design art and craft villege
Data collection to design art and craft villegeData collection to design art and craft villege
Data collection to design art and craft villege
 
Karnataka & andhra pradesh
Karnataka & andhra pradeshKarnataka & andhra pradesh
Karnataka & andhra pradesh
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and Akka
 
Front end architecture patterns
Front end architecture patternsFront end architecture patterns
Front end architecture patterns
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDB
 
Design portfolio
Design portfolioDesign portfolio
Design portfolio
 
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 JavaScript - Chapter 9 - TypeConversion and Regular Expressions  JavaScript - Chapter 9 - TypeConversion and Regular Expressions
JavaScript - Chapter 9 - TypeConversion and Regular Expressions
 
Web-Development-ppt.pptx
Web-Development-ppt.pptxWeb-Development-ppt.pptx
Web-Development-ppt.pptx
 
NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT
NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT
NIKITA LONDHE | FASHION HUB AT GOA - THESIS PROJECT
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core Components
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
 

Similar to How to build the ultimate Custom Controls UI5 Library

Ruby on Rails & Version Control
Ruby on Rails & Version ControlRuby on Rails & Version Control
Ruby on Rails & Version Control
Yash Mittal
 
Make software like they make cars!
Make software like they make cars!Make software like they make cars!
Make software like they make cars!
Ashish Belagali
 
Tips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Tips for Beginning Cognos Report Studio Authors: Demonstration of TechniquesTips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Tips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Senturus
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...
AEGIS-ACCESSIBLE Projects
 
Next Generation Of Enterprise RIA's
Next Generation Of Enterprise RIA'sNext Generation Of Enterprise RIA's
Next Generation Of Enterprise RIA's
Matthias Zeller
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
Noga Manela
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
Strongback Consulting
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
Keith Boyd
 
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
OW2
 
Social Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDKSocial Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDK
IBM Connections Developers
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with Behat
Promet Source
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
Brad Williams
 
Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...
Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...
Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...
SAP Customer Experience
 
UI5 Tooling & Ecosystem
UI5 Tooling & EcosystemUI5 Tooling & Ecosystem
UI5 Tooling & Ecosystem
Peter Muessig
 
Mini training- Scenario Driven Design
Mini training- Scenario Driven DesignMini training- Scenario Driven Design
Mini training- Scenario Driven Design
Betclic Everest Group Tech Team
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
LetsConnect
 
2014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.02014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.0
aaronwso2
 
Low Code Capabilities of Digital Product Design Platforms
Low Code Capabilities of Digital Product Design PlatformsLow Code Capabilities of Digital Product Design Platforms
Low Code Capabilities of Digital Product Design Platforms
JohnMcGuigan10
 
ABAP State of the Art
ABAP State of the ArtABAP State of the Art
ABAP State of the Art
Tobias Trapp
 
Tips and Tricks for Beginning Cognos Report Studio Authors
Tips and Tricks for Beginning Cognos Report Studio AuthorsTips and Tricks for Beginning Cognos Report Studio Authors
Tips and Tricks for Beginning Cognos Report Studio Authors
Senturus
 

Similar to How to build the ultimate Custom Controls UI5 Library (20)

Ruby on Rails & Version Control
Ruby on Rails & Version ControlRuby on Rails & Version Control
Ruby on Rails & Version Control
 
Make software like they make cars!
Make software like they make cars!Make software like they make cars!
Make software like they make cars!
 
Tips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Tips for Beginning Cognos Report Studio Authors: Demonstration of TechniquesTips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
Tips for Beginning Cognos Report Studio Authors: Demonstration of Techniques
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...
 
Next Generation Of Enterprise RIA's
Next Generation Of Enterprise RIA'sNext Generation Of Enterprise RIA's
Next Generation Of Enterprise RIA's
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
 
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
Choosing the right business model and license - OW2con'19, June 12-13, 2019, ...
 
Social Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDKSocial Applications made easy with the new Social Business Toolkit SDK
Social Applications made easy with the new Social Business Toolkit SDK
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with Behat
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...
Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...
Extending the SAP Hybris Cloud for Customer Solution From Personalization to ...
 
UI5 Tooling & Ecosystem
UI5 Tooling & EcosystemUI5 Tooling & Ecosystem
UI5 Tooling & Ecosystem
 
Mini training- Scenario Driven Design
Mini training- Scenario Driven DesignMini training- Scenario Driven Design
Mini training- Scenario Driven Design
 
Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...Philipe Riand - Building Social Applications using the Social Business Toolki...
Philipe Riand - Building Social Applications using the Social Business Toolki...
 
2014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.02014-wso2 platform-v1.1.0
2014-wso2 platform-v1.1.0
 
Low Code Capabilities of Digital Product Design Platforms
Low Code Capabilities of Digital Product Design PlatformsLow Code Capabilities of Digital Product Design Platforms
Low Code Capabilities of Digital Product Design Platforms
 
ABAP State of the Art
ABAP State of the ArtABAP State of the Art
ABAP State of the Art
 
Tips and Tricks for Beginning Cognos Report Studio Authors
Tips and Tricks for Beginning Cognos Report Studio AuthorsTips and Tricks for Beginning Cognos Report Studio Authors
Tips and Tricks for Beginning Cognos Report Studio Authors
 

Recently uploaded

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 

Recently uploaded (20)

OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 

How to build the ultimate Custom Controls UI5 Library

  • 1. 11/17 – 1 / 20 sovanta AG, 28.06.2019 How to build the ultimate Custom Controls UI5 Library Daniel Barthel, Sebastian Mahr
  • 2. © sovanta AG 2019 2 Who we are ... Daniel Barthel Software Engineer Daniel.Barthel@sovanta.com • Development Lead of UI5 Custom Control Library • 2.5 years experience in OpenUI5 Sebastian Mahr Software Engineer Sebastian.Mahr@sovanta.com • DevOps Lead of UI5 Custom Control Library • 2.5 years experience in OpenUI5
  • 3. © sovanta AG 2019 3 sovanta AG Leading in SAP User Experience simplicity first Founded with the goal of fundamentally simplifying the way business software is used. One team – all competences Experts from the areas of business, design, and technology. Design Driven Development Standardized method set from ideation through to operation. SHAPE® – systematic digitalization Our building blocks for the development of user-centered business solutions. § UI5 Experience since 2013 § 180 employees § 250 projects and 1 million users § 100 customers § Offices in Heidelberg, Hamburg and Buenos Aires § Close partnership with SAP in product development and technology § Awarded several times as top innovator
  • 4. 11/17 – 4 / 20 Agenda
  • 5. © sovanta AG 2019 5 What we will show § Painpoints in our first Library project § Improvements for our current Libraries § White-Label strategy and Theme concepts § Inhouse Tooling for development § Demokit extension for custom Library documentation
  • 6. © sovanta AG 2019 6 What you should know § Basic Control development § Styling development
  • 7. 11/17 – 7 / 20 Why we started building Custom Control Libraries
  • 8. © sovanta AG 2019 8 The beginning of building Control Libraries ... § 1 Customer, multiple applications § Cluster often used controls, code and concepts § Reuse code instead of copy & paste in every application § Customer CI, Fiori Design not fitting to Customer Styleguide
  • 9. © sovanta AG 2019 9 Issues we ran into ... Development of new controls inside the application first § Most of the time with a lot of Business Logic § Copied it into the Library when needed somewhere else We've build very specific Controls § Often not customizable / flexible enough § Build multiple Variants (e.g. Button, LightButton, PanelWithHeader, ...) § Bad extensibility § Too many internal dependencies One single Theme Build on one specific UI5 Version Developer driven Controls
  • 10. 11/17 – 10 / 20 - Alan Cooper "The value of a prototype is in the education it gives you, not in the code itself."
  • 11. 11/17 – 11 / 20 What we have learned
  • 12. © sovanta AG 2019 12 Architecture is key ... Design first, development second § Which controls do we need all the time ? § How should they behave ? § How should they look like ? Architecture and planning § Which UI5 Control we can use as base ? § Define Properties, Events, Aggregations the control need before development Development § Cluster and encapsulate (e.g. own namespaces, ...) § Build lightweight controls § Avoid dependencies that you can't control
  • 13. © sovanta AG 2019 13 Design Systems lay the foundation... § We’ve our own internally used Design System called SHAPE® § A set of components, connected patterns and shared practices, coherently organized to serve the purpose of digital products. § We use Customer Design Systems as a base for Libraries to fit their CI and Design specifications § Design Systems are good foundation for the communication between Design and Development
  • 14. © sovanta AG 2019 14 Our demands on UI5 Libraries ... § Coexistence with UI5 § White-Label possibilities § Easy to use development Tools § Documentation, a damn good documentation § No need to reinvent the wheel § Know your framework § Use the features § Stay by the standard
  • 15. 11/17 – 15 / 20 Themes and White-Labeling
  • 16. © sovanta AG 2019 16 Theme Designer Base Theme Customer Theme Theming/White-Labeling Requirements § Extension of UI5 Theme (Theme Designer) § Standard UI5 Control styling can coexist with Library Control styling
  • 17. © sovanta AG 2019 17 Base Theme Base Theme architecture Includes Font, Color, Layout, Spacing definitions One LESS-File for each control Base-Theme color definition Base-Theme color usage
  • 18. © sovanta AG 2019 18 Customer Theme Customer Theme extension Easy to set up Fully flexible to customize Customer Theme needs a animation that was not designed in the base themeCustomer-Theme color redefinition
  • 19. © sovanta AG 2019 19 Control styling Minimum overstyle of extended controls Encapsulate all style Rules via distinct CSS Class Control.lessControl.js
  • 20. 11/17 – 20 / 20 Tooling
  • 21. © sovanta AG 2019 21 Tooling Tooling for assisting the library development Currently grunt base Tasks for the building process § Sync theme less files with the controls in the library § Update Control samples § Register Iconfont § Update the test suite with all unit tests § Run UI5 CLI tooling § NPM deployment
  • 22. © sovanta AG 2019 22 Tooling Tooling for assisting the library development Tasks for the developer § Add Control § Add Sample § Add Unit Test § Delete Control Add Control </> Control.js </> Sample </> … </> UnitTest.js </> Controll.less
  • 23. © sovanta AG 2019 23 Tooling UI5-Tooling Rootproject § Control library § Theme x § Theme y § … UI5 YAML is included in every module Subfolder (Library, Themes) managed as dependencies
  • 24. 11/17 – 24 / 20 Custom Demokit / Documentation
  • 25. © sovanta AG 2019 25 Demokit Demokit extension as documentation tool § Hook into UI5 Demokit § Use Demokit to show custom Library Documentation § Provide custom Samples § Theme change § Show external Iconfonts in Icon Explorer
  • 26. © sovanta AG 2019 26 Summary ... What we‘ve shown today Development process with Design and Architecture White-Label concepts and Theme strategies Supporting development and Build Tooling Demokit documentation for custom Libraries
  • 27. © sovanta AG 2019 27 We are hiring … www.github.com/sovantaTel. +49 (0)6221 18733-0 Fax +49 (0)6221 18733-44 info@sovanta.com www.sovanta.com sovanta AG X-House
  • 28. 11/17 – 28 / 20 Have a nice UI5Con