SlideShare a Scribd company logo
1 of 45
Download to read offline
Rapid UI Development
with Aikau
Dave Draper
Senior Software Engineer, Alfresco
Introduction
Aikau Basics
• Internally developed UI framework
• Designed for re-usability, customizability and
accessibility
• Initially part of Share, now an external GitHub project
• Used for:
+ Share header
+ Faceted search and faceted search management
+ Sites management
+ Custom Model Management (5.1 and 5.0 module)
+ Parts of Record Management
• Best unit test code-coverage of any Alfresco project
Hundreds of Modules
• 25 different form controls
• 20 different layout containers
• 20 different menu controls
• 44 different property renderers
• 8 variations of lists
+ 7 list views
+ 10 list view layout containers
• Document previewing
• Keyboard accessible drag-and-drop framework
• 30 different services
Processes
• Small Agile team
+ Supporting internal product feature development
• Public GitHub repository
• Use “GitFlow” process
+ Every Pull Request is code reviewed
• One week sprints
• Weekly backwards compatible releases
• Zero technical debt
+ Bugs prioritized over features
• Automated unit testing for regressions
+ Unit tests added for all new features
+ Unit tests add for all new bugs
Fast Turnaround
• Features and bugs not added mid-sprint
• Maximum wait of 2 weeks to turnaround a
bug or feature request
Sprint N+1
Bug Raised Added to Sprint Fix Delivered
Sprint N
One Week
Creation
Page Creation Basics
• An Aikau page is defined by a single WebScript
+ “Legacy” Share pages are defined by Surf Pages,
Templates, Regions, Components and WebScripts
• Pages are mapped using “URI Templates”
• Four templates are available out-of-the-box
+ “dp” (dynamic-page)
+ “hdp” (hybrid-dynamic-page)
+ “rp” (remote-page)
+ “hrp” (hybrid-remote-page)
• Recommended to use “dp”
• Custom templates can be defined
Example URL
Declarative UI
Decoupled Model
• Widgets decoupled from each other by
pub/sub
• Widgets decoupled from data via Services
Standalone Clients
Easy Client Creation
• Maven Archetype
• Pre-configured for local Alfresco
Repository
• Login and home page
• Demo…
“My Alfresco Files”
Customization
Customize…
• Existing pages via extension modules
+ Use the “Developer View”
• Create new or extend existing widgets
• Style through LESS variables in Theme
• Demo…
Multi-Select Actions
A New Way of Thinking
Remember…
• Today’s page will have tomorrow’s widgets
• Use what’s available now and request
something better for tomorrow
Records Management
Example
Benefits
• Fast prototyping
• Can work on server side code
• Simple to swap out when new widgets are
available
Best Practices
In General…
• Always feedback
+ Bugs, feature requests, requests for examples and
documentation, provide use cases, request extension
points, etc.
• Never copy and paste
+ Always extend or re-use
• Create composite widgets and libraries
• Use Services to access data
+ Normalize JSON response schemas
+ Avoid coupling widgets to data
• Use Pub/Sub or Events for communication
+ Avoid fixed references
NEVER USE A CSS
OVERLAY !!!
“A widget doesn’t do what I want”
• Widgets are intentionally written to be easily
extendable
• Functions are small to encapsulate code that
might want to be changed
• Closures are generally avoided to make
functions available to be overridden or
extended
• Functions can be extended or overridden
+ Use this.inherited(arguments); to extend
Extending a Widget
30
Extending a Function
Mix-In Modules
• Widgets support “multiple inheritance”
+ Widgets extend a primary module and then “mix-
in” additional modules
• “alfresco/core/Core” should be mixed-in
to all widgets
+ Provides core pub/sub and logging capabilities
• Abstract cross-cutting function to mix-in
modules
• Request abstraction of existing widget
code into a mix-in module
Education
Resources
• Tutorial on GitHub
+ https://github.com/Alfresco/Aikau/blob/master/tuto
rial/chapters/Contents.md
• JSDoc
+ http://dev.alfresco.com/resource/docs/aikau-
jsdoc/
• Blogs
+ https://www.alfresco.com/blogs/developer/author/
ddraper/
+ Follow me on twitter for announcements
(@_DaveDraper)
Questions?
Debugging
Debugging Methods
• Console log
• Publication/subscription log
• Demo…
JavaScript Debugging
Finding Source (Chrome)
• Use CTRL-P with text “surf” to find
aggregated resource
• Use CTRL-F with function name to find
target
39
Source Matching (Chrome)
40
Finding Source (FireBug)
• Use CTRL-F to find (with “Multiple Files”
option checked)
41
Breakpoints
• Logged error may not provide link to line
number
• Break on exceptions to zero in on error
conditions
• Need to include caught exceptions (Aikau
exceptions are caught)
• Need to typically skip past 3rd party
exceptions on page load
42
Break on Exception
43
WebScript JS Debugger
44
45

More Related Content

What's hot

Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersJohn Ferringer
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsPop Apps
 
Kickstart android development with xamarin
Kickstart android development with xamarinKickstart android development with xamarin
Kickstart android development with xamarinFoyzul Karim
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionJeff Geerling
 
Phase2 Large Drupal Multisites (gta case study)
Phase2   Large Drupal Multisites (gta case study)Phase2   Large Drupal Multisites (gta case study)
Phase2 Large Drupal Multisites (gta case study)Phase2
 
SharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsSharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsGunjan Datta
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHPhernanibf
 
A User Interface for adding Machine Learning tools into GitHub
A User Interface for adding Machine Learning tools into GitHubA User Interface for adding Machine Learning tools into GitHub
A User Interface for adding Machine Learning tools into GitHubRumyana Rumenova
 
No Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with BootiqueNo Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with BootiqueAndrus Adamchik
 
itPage LDC 09 Presentation
itPage LDC 09 PresentationitPage LDC 09 Presentation
itPage LDC 09 PresentationEric Landmann
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesBoyan Borisov
 
OpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseOpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseBenjamin Cabé
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5Jon Galloway
 
Building a cross-framework design system
Building a cross-framework design systemBuilding a cross-framework design system
Building a cross-framework design systemMichael Schinis
 
ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012rushabh_mehta
 
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015Dropsolid
 

What's hot (20)

Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developers
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page Apps
 
Kickstart android development with xamarin
Kickstart android development with xamarinKickstart android development with xamarin
Kickstart android development with xamarin
 
Drupal 8 - A Brief Introduction
Drupal 8 - A Brief IntroductionDrupal 8 - A Brief Introduction
Drupal 8 - A Brief Introduction
 
Phase2 Large Drupal Multisites (gta case study)
Phase2   Large Drupal Multisites (gta case study)Phase2   Large Drupal Multisites (gta case study)
Phase2 Large Drupal Multisites (gta case study)
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 
SharePoint Development in Government Environments
SharePoint Development in Government EnvironmentsSharePoint Development in Government Environments
SharePoint Development in Government Environments
 
Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
 
Backbonejs
BackbonejsBackbonejs
Backbonejs
 
A User Interface for adding Machine Learning tools into GitHub
A User Interface for adding Machine Learning tools into GitHubA User Interface for adding Machine Learning tools into GitHub
A User Interface for adding Machine Learning tools into GitHub
 
No Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with BootiqueNo Container: a Modern Java Stack with Bootique
No Container: a Modern Java Stack with Bootique
 
itPage LDC 09 Presentation
itPage LDC 09 PresentationitPage LDC 09 Presentation
itPage LDC 09 Presentation
 
Large Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the ScenesLarge Scale Drupal - Behind the Scenes
Large Scale Drupal - Behind the Scenes
 
OpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseOpenSocial gadgets at Eclipse
OpenSocial gadgets at Eclipse
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5
 
Building a cross-framework design system
Building a cross-framework design systemBuilding a cross-framework design system
Building a cross-framework design system
 
ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012ERPNext Demo Day - June 2012
ERPNext Demo Day - June 2012
 
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
State of Search, Solr and Facets in Drupal 8 - Drupalcamp Belgium 2015
 
Solr
SolrSolr
Solr
 

Similar to Alfresco Day Stockholm 2015 - Rapid UI Development

OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseEric Shupps
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Cacereshernanibf
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareAlfresco Software
 
Git Going w/ Git
Git Going w/ GitGit Going w/ Git
Git Going w/ GitheyMP
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...eZ Systems
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish DatabaseGaetano Giunta
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection NavigationThomas Daly
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfOrtus Solutions, Corp
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp Londonhernanibf
 
Atlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event SlidesAtlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event SlidesMarlon Palha
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your WebsiteAcquia
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExBradley Brown
 
GateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web AppsGateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web AppsWesley Hales
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...Jon Peck
 
The WordPress University
The WordPress UniversityThe WordPress University
The WordPress UniversityStephanie Leary
 
Wordpress intro
Wordpress introWordpress intro
Wordpress introthe-colab
 
Drupal case study: Behind the scenes of website of University of Tartu
Drupal case study: Behind the scenes of website of University of TartuDrupal case study: Behind the scenes of website of University of Tartu
Drupal case study: Behind the scenes of website of University of TartuRené Lasseron
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 

Similar to Alfresco Day Stockholm 2015 - Rapid UI Development (20)

OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
 
72d5drupal
72d5drupal72d5drupal
72d5drupal
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in Share
 
Git Going w/ Git
Git Going w/ GitGit Going w/ Git
Git Going w/ Git
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp London
 
Atlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event SlidesAtlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event Slides
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApEx
 
GateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web AppsGateIn - The Solution for Managing and Building Enterprise Web Apps
GateIn - The Solution for Managing and Building Enterprise Web Apps
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
 
The WordPress University
The WordPress UniversityThe WordPress University
The WordPress University
 
Wordpress intro
Wordpress introWordpress intro
Wordpress intro
 
Drupal case study: Behind the scenes of website of University of Tartu
Drupal case study: Behind the scenes of website of University of TartuDrupal case study: Behind the scenes of website of University of Tartu
Drupal case study: Behind the scenes of website of University of Tartu
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 

More from Nicole Szigeti

Alfresco Partner Lightning Talk: fme
Alfresco Partner Lightning Talk: fmeAlfresco Partner Lightning Talk: fme
Alfresco Partner Lightning Talk: fmeNicole Szigeti
 
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support EngineerSupport Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support EngineerNicole Szigeti
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...
Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...
Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...Nicole Szigeti
 
Alfresco Partner Lightning Talk: Westernacher
Alfresco Partner Lightning Talk: WesternacherAlfresco Partner Lightning Talk: Westernacher
Alfresco Partner Lightning Talk: WesternacherNicole Szigeti
 
Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...
Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...
Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...Nicole Szigeti
 
Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...
Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...
Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...Nicole Szigeti
 
Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...
Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...
Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...Nicole Szigeti
 
Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...
Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...
Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...Nicole Szigeti
 
Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...
Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...
Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...Nicole Szigeti
 
Maximizing the Value of Your Content - John Pomeroy, Alfresco
Maximizing the Value of Your Content - John Pomeroy, AlfrescoMaximizing the Value of Your Content - John Pomeroy, Alfresco
Maximizing the Value of Your Content - John Pomeroy, AlfrescoNicole Szigeti
 
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHTrends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHNicole Szigeti
 
Alfresco Day Stockholm 2015 - Platform Update
Alfresco Day Stockholm 2015 - Platform UpdateAlfresco Day Stockholm 2015 - Platform Update
Alfresco Day Stockholm 2015 - Platform UpdateNicole Szigeti
 
Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...
Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...
Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...Nicole Szigeti
 
Alfresco Day Stockholm 2015 - Case Study: Scania
Alfresco Day Stockholm 2015 - Case Study: ScaniaAlfresco Day Stockholm 2015 - Case Study: Scania
Alfresco Day Stockholm 2015 - Case Study: ScaniaNicole Szigeti
 
Alfresco Day Stockholm 2015 - Case Study: Tieto
Alfresco Day Stockholm 2015 - Case Study: TietoAlfresco Day Stockholm 2015 - Case Study: Tieto
Alfresco Day Stockholm 2015 - Case Study: TietoNicole Szigeti
 
Alfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco OneAlfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco OneNicole Szigeti
 
Alfresco Day Stockholm 2015 - Business Process Management with Alfresco Activiti
Alfresco Day Stockholm 2015 - Business Process Management with Alfresco ActivitiAlfresco Day Stockholm 2015 - Business Process Management with Alfresco Activiti
Alfresco Day Stockholm 2015 - Business Process Management with Alfresco ActivitiNicole Szigeti
 
Alfresco Day Stockholm 2015 - Accelerating Digital Transformation - Keynote
Alfresco Day Stockholm 2015 - Accelerating Digital Transformation - KeynoteAlfresco Day Stockholm 2015 - Accelerating Digital Transformation - Keynote
Alfresco Day Stockholm 2015 - Accelerating Digital Transformation - KeynoteNicole Szigeti
 
Alfresco Day Stockholm 2015 - Collaborate to Innovate
Alfresco Day Stockholm 2015 - Collaborate to InnovateAlfresco Day Stockholm 2015 - Collaborate to Innovate
Alfresco Day Stockholm 2015 - Collaborate to InnovateNicole Szigeti
 

More from Nicole Szigeti (20)

Alfresco Partner Lightning Talk: fme
Alfresco Partner Lightning Talk: fmeAlfresco Partner Lightning Talk: fme
Alfresco Partner Lightning Talk: fme
 
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support EngineerSupport Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
Support Tools für die Admin-Konsole - Nebil Kisa, Advanced Support Engineer
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...
Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...
Activiti goes enterprise: Die Evolution der BPM Suite aus Sicht des Alfresco ...
 
Alfresco Partner Lightning Talk: Westernacher
Alfresco Partner Lightning Talk: WesternacherAlfresco Partner Lightning Talk: Westernacher
Alfresco Partner Lightning Talk: Westernacher
 
Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...
Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...
Anwendungsbeispiele verschiedener SAP-Alfresco Umgebungen - Volker Bläsig, CE...
 
Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...
Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...
Alfresco im Einsatz bei SWM – Stadtwerke München, Simon Rittsteiger, Projekt ...
 
Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...
Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...
Alfresco im Einsatz bei SIGNA, Franz Hillebrand, Managing Director, SIGNA Inf...
 
Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...
Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...
Alfresco im Einsatz bei der Bundesnotarkammer, Stefan Semmelroggen, Leiter Re...
 
Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...
Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...
Alfresco im Einsatz: Fraport berichtet - Kai Stephan, Consultant, AirITSystem...
 
Maximizing the Value of Your Content - John Pomeroy, Alfresco
Maximizing the Value of Your Content - John Pomeroy, AlfrescoMaximizing the Value of Your Content - John Pomeroy, Alfresco
Maximizing the Value of Your Content - John Pomeroy, Alfresco
 
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbHTrends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
Trends auf dem ECM-Markt - Bernhard Zöller, Zöller & Partner GmbH
 
Alfresco Day Stockholm 2015 - Platform Update
Alfresco Day Stockholm 2015 - Platform UpdateAlfresco Day Stockholm 2015 - Platform Update
Alfresco Day Stockholm 2015 - Platform Update
 
Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...
Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...
Alfresco Day Stockholm 2015 - Redpill Linpro presents case studies of Trap Da...
 
Alfresco Day Stockholm 2015 - Case Study: Scania
Alfresco Day Stockholm 2015 - Case Study: ScaniaAlfresco Day Stockholm 2015 - Case Study: Scania
Alfresco Day Stockholm 2015 - Case Study: Scania
 
Alfresco Day Stockholm 2015 - Case Study: Tieto
Alfresco Day Stockholm 2015 - Case Study: TietoAlfresco Day Stockholm 2015 - Case Study: Tieto
Alfresco Day Stockholm 2015 - Case Study: Tieto
 
Alfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco OneAlfresco Day Stockholm 2015 - Alfresco One
Alfresco Day Stockholm 2015 - Alfresco One
 
Alfresco Day Stockholm 2015 - Business Process Management with Alfresco Activiti
Alfresco Day Stockholm 2015 - Business Process Management with Alfresco ActivitiAlfresco Day Stockholm 2015 - Business Process Management with Alfresco Activiti
Alfresco Day Stockholm 2015 - Business Process Management with Alfresco Activiti
 
Alfresco Day Stockholm 2015 - Accelerating Digital Transformation - Keynote
Alfresco Day Stockholm 2015 - Accelerating Digital Transformation - KeynoteAlfresco Day Stockholm 2015 - Accelerating Digital Transformation - Keynote
Alfresco Day Stockholm 2015 - Accelerating Digital Transformation - Keynote
 
Alfresco Day Stockholm 2015 - Collaborate to Innovate
Alfresco Day Stockholm 2015 - Collaborate to InnovateAlfresco Day Stockholm 2015 - Collaborate to Innovate
Alfresco Day Stockholm 2015 - Collaborate to Innovate
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Alfresco Day Stockholm 2015 - Rapid UI Development

  • 1. Rapid UI Development with Aikau Dave Draper Senior Software Engineer, Alfresco
  • 3. Aikau Basics • Internally developed UI framework • Designed for re-usability, customizability and accessibility • Initially part of Share, now an external GitHub project • Used for: + Share header + Faceted search and faceted search management + Sites management + Custom Model Management (5.1 and 5.0 module) + Parts of Record Management • Best unit test code-coverage of any Alfresco project
  • 4. Hundreds of Modules • 25 different form controls • 20 different layout containers • 20 different menu controls • 44 different property renderers • 8 variations of lists + 7 list views + 10 list view layout containers • Document previewing • Keyboard accessible drag-and-drop framework • 30 different services
  • 6. • Small Agile team + Supporting internal product feature development • Public GitHub repository • Use “GitFlow” process + Every Pull Request is code reviewed • One week sprints • Weekly backwards compatible releases • Zero technical debt + Bugs prioritized over features • Automated unit testing for regressions + Unit tests added for all new features + Unit tests add for all new bugs
  • 7. Fast Turnaround • Features and bugs not added mid-sprint • Maximum wait of 2 weeks to turnaround a bug or feature request Sprint N+1 Bug Raised Added to Sprint Fix Delivered Sprint N One Week
  • 9. Page Creation Basics • An Aikau page is defined by a single WebScript + “Legacy” Share pages are defined by Surf Pages, Templates, Regions, Components and WebScripts • Pages are mapped using “URI Templates” • Four templates are available out-of-the-box + “dp” (dynamic-page) + “hdp” (hybrid-dynamic-page) + “rp” (remote-page) + “hrp” (hybrid-remote-page) • Recommended to use “dp” • Custom templates can be defined
  • 12. Decoupled Model • Widgets decoupled from each other by pub/sub • Widgets decoupled from data via Services
  • 14. Easy Client Creation • Maven Archetype • Pre-configured for local Alfresco Repository • Login and home page • Demo…
  • 17. Customize… • Existing pages via extension modules + Use the “Developer View” • Create new or extend existing widgets • Style through LESS variables in Theme • Demo…
  • 19. A New Way of Thinking
  • 20. Remember… • Today’s page will have tomorrow’s widgets • Use what’s available now and request something better for tomorrow
  • 22.
  • 23.
  • 24. Benefits • Fast prototyping • Can work on server side code • Simple to swap out when new widgets are available
  • 25.
  • 27. In General… • Always feedback + Bugs, feature requests, requests for examples and documentation, provide use cases, request extension points, etc. • Never copy and paste + Always extend or re-use • Create composite widgets and libraries • Use Services to access data + Normalize JSON response schemas + Avoid coupling widgets to data • Use Pub/Sub or Events for communication + Avoid fixed references
  • 28. NEVER USE A CSS OVERLAY !!!
  • 29. “A widget doesn’t do what I want” • Widgets are intentionally written to be easily extendable • Functions are small to encapsulate code that might want to be changed • Closures are generally avoided to make functions available to be overridden or extended • Functions can be extended or overridden + Use this.inherited(arguments); to extend
  • 32. Mix-In Modules • Widgets support “multiple inheritance” + Widgets extend a primary module and then “mix- in” additional modules • “alfresco/core/Core” should be mixed-in to all widgets + Provides core pub/sub and logging capabilities • Abstract cross-cutting function to mix-in modules • Request abstraction of existing widget code into a mix-in module
  • 34. Resources • Tutorial on GitHub + https://github.com/Alfresco/Aikau/blob/master/tuto rial/chapters/Contents.md • JSDoc + http://dev.alfresco.com/resource/docs/aikau- jsdoc/ • Blogs + https://www.alfresco.com/blogs/developer/author/ ddraper/ + Follow me on twitter for announcements (@_DaveDraper)
  • 37. Debugging Methods • Console log • Publication/subscription log • Demo…
  • 39. Finding Source (Chrome) • Use CTRL-P with text “surf” to find aggregated resource • Use CTRL-F with function name to find target 39
  • 41. Finding Source (FireBug) • Use CTRL-F to find (with “Multiple Files” option checked) 41
  • 42. Breakpoints • Logged error may not provide link to line number • Break on exceptions to zero in on error conditions • Need to include caught exceptions (Aikau exceptions are caught) • Need to typically skip past 3rd party exceptions on page load 42
  • 45. 45