SlideShare uma empresa Scribd logo
1 de 28
Get the best out of
Bootstrap
with
Bootstrap4XPages
Mark Leusink, LinQed
Agenda
 Bootstrap; the world's most popular UI framework
 Bring Bootstrap to XPages with Bootstrap4XPages
 “Bootstrapping” your XPages Application
 Insights on the library
 And demos!
Speaker introduction
 Freelance consultant/ developer
 Web, XPages, Java, mobile
 OpenNTF board member and
contributor
 IBM Champion
 Creator of www.bootstrap4xpages.com
Why a design framework?
 Users are demanding a sleek and polished UI
 But we're developers, not designers...
 Consistent UI makes your applications easier to use
 Develop for mobile
 Responsive design
 Standardized look for all applications
 Deal with cross browser issues
 Remember: IBM OneUI, as implemented in the
Extension Library, is also a UI framework
What is Bootstrap?
 A set of UI elements available to web
applications
 Very (very) popular in the web developers
community
 Empowering front-end developers to kickstart
projects more efficiently and effectively
 Version 3 built from the ground up
 Mobile first
 Released in 2013
 Responsive by default (optional in earlier versions)
6#engageug
Source: http://trends.builtwith.com/docinfo/Twitter-Bootstrap
What is Bootstrap?
 Carefully crafted CSS styles for
 Typography
 Navigation
 Common controls (buttons, input controls, tables)
 Layouts and grids
 With responsive features
 Icons
 Using the Glyphicon font
 JavaScript components
 Relies on jQuery
 Tabs, dialogs, tooltips, drop down buttons/menus
7#engageug
What is Bootstrap?
Many add-ons available
 Free and paid
 Custom themes
 New controls
 Code snippets
Support for IE8+
Available for free at http://getbootstrap.com/
What is Bootstrap?
9#engageug
Introducing Bootstrap4XPages
Introducing Bootstrap4XPages
 Bootstrap rendering for all existing XPages
components
 Core and Extension Library
 Including the Dojo controls
 Provides the easiest Bootstrap integration
mechanism to XPages
 Change the theme and your application is enabled
 Get all the resources (CSS, JavaScript, fonts) served
from the core runtime
 No resources have to be added within the NSF
 Participate in the XPages resource file aggregation
Introducing Bootstrap4XPages
Support for multiple versions of Bootstrap
 2.3.1, 2.3.2, 3.0.0 and 3.1.1
 Focus now on Bootstrap 3.x, but 2.3.2 is kept for
compatibility
Make it easy to create new Bootstrap specific
components
12#engageug
Installing Bootstrap4XPages
 Get the Bootstrap4XPages (OSGi) plugin from OpenNTF
 Compiled version available from the OpenNTF web site
 Source code available on GitHub
 Part of the OpenNTF Essentials
Deploy the plugin:
 On the Domino server (and Notes Client)
 Use an update site database (preferred) or copy the OSGi plug-
in to the server
 In Domino Designer
 File > Application > Install > import the update site
Installation using the OpenNTF Essentials
 Download OpenNTF essentials
 http://essentials.openntf.org/
 The install procedure is the same
 The OpenNTF Essentials NSF contains
Bootstrap4XPages as one of its components
 More on the OpenNTF Essentials in the October
2013 webinar
Two steps to enable Bootstrap in you app
1. Enable the necessary XPages libraries
[x] com.ibm.xsp.extlib.library
[x] org.openntf.xsp.bootstrap.library
2. Set the application theme
bootstrapv3.1.1 (bootstrapv3.1.1_3d)
bootstrapv3.0.0 (bootstrapv3.0.0_3d)
bootstrapv2.3.2 (bootstrap2.3.2r)
Best practices using Bootstrap4XPages
Avoid hard coding style classes/ styles in your
pages
 Might (will) break third party themes
 Use the components as they render as much as
possible
 Use a custom theme when you want to assign
specific styles to components
Leverage the extension library components
instead of straight Bootstrap/ jQuery
 Dialogs, as they are optimized and well tested
with the JSF lifecycle
Best practices using Bootstrap4XPages
Use the build from OpenNTF, not the source
code, in production
 The build has its own resources
(CSS, JavaScript), thus provides better
performance
 You can use the resources from the plugin
without using the theme(s)
 But that's not advised
What does Bootstrap4XPages give you?
Global resources served by a single URL
Theme files that include these resources and
define the components properties
 Directly sets classes/ styles on controls when
sufficient
Custom JSF renderer for more complex cases
 Organized in an hierarchy, (relatively) easy to
inherit/ customize
Bootstrap4XPages: provided resources
Several versions of Bootstrap
 2.3.1, 2.3.2, 3.0.0 and 3.1.1
 Older will be deprecated/removed over
time, new ones will be added
jQuery 1.8.2
No longer in use, but still bundled:
 DBootstrap
 Dojo Bootstrap
Demo: build an app with Bootstrap4XPages
20#engageug
Demo
Designing a responsive application
Responsive design: the approach that suggests
that design and development should respond to
the user’s behaviour and environment based on
screen size, platform and orientation.
(http://coding.smashingmagazine.com/2011/01/12/guidelines-
for-responsive-web-design/)
Bootstrap 3 is responsive by default
Supported by Bootstrap4XPages in Banner
and Menu
Demo
Third party plugins in the library
Select2
Value picker with support for
 Search
 Multi-value select (easier to use than a
combobox)
 Remote data sources
 Templates
Demo
Using custom themes
Create a theme using the Bootstrap web site
 http://getbootstrap.com/customize/
 http://stylebootstrap.info
Get a pre-built theme from the Internet
 https://wrapbootstrap.com/
 http://bootswatch.com
Demo
Understanding the library implementation
 Feels intimidating at the first glance, but it is not that
hard once the development environment is installed and
the XPages/ JSF concepts known
 Remember: you don’t have to start from scratch
 More details in the OpenNTF Webinar: Bootstrap for
XPages
 Quick walkthrough
 Windows, Designer & Domino on a single (virtual) machine
 Install Eclipse RCP (just get the latest version)
 Install the Eclipse SDK for XPages and Domino Debug Plugin
 Get them from OpenNTF
 Get the plugin source from GitHub
Wrapping up
Don't reinvent the wheel but rather consume the
project
 It is more efficient than throwing Bootstrap within an
NSF
 It is more manageable than copying the files into
domino/data/html
Want to help?
 The project is missing some features: feel free to
help and contribute
 Fully open source, and accepts external
contributors
 There are many ways to help, depending on your
skills
 Add new XPages components
 Implement new Bootstrap releases
 Create, integrate and distribute themes
 Write documentation
 Help testing
References
 Bootstrap4XPages project on OpenNTF
 http://bootstrap4xpages.openntf.org/
 Bootstrap4XPages source code on GitHub
 https://github.com/OpenNTF/Bootstrap4XPages
 Webinar on Bootstrap4XPages
 http://www.youtube.com/watch?v=uAff5uNwhn0
 http://www.slideshare.net/philipperiand/bootstrap4-x-pages
 OpenNTF Essentials
 http://essentials.openntf.org
 http://www.youtube.com/watch?feature=player_embedded&v=EUrLfJ
cCQhY#t=12m00s
 Bootstrap4XPages – the site
 Source of information on using Bootstrap with XPages
 http://bootstrap4xpages.com/
Thank you!
28#engageug

Mais conteúdo relacionado

Mais procurados

August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
dominion
 

Mais procurados (20)

XPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 WebinarXPages Application Layout Control - TLCC March, 2014 Webinar
XPages Application Layout Control - TLCC March, 2014 Webinar
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub Explained
 
OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020
 
Using Features
Using FeaturesUsing Features
Using Features
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPages
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
 
February OpenNTF Webinar: Introduction to Ansible for Newbies
February OpenNTF Webinar: Introduction to Ansible for NewbiesFebruary OpenNTF Webinar: Introduction to Ansible for Newbies
February OpenNTF Webinar: Introduction to Ansible for Newbies
 
Show110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real WorldShow110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real World
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates Everywhere
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
Git and Github - a 90 Minute interactive workshop
Git and Github - a 90 Minute interactive workshopGit and Github - a 90 Minute interactive workshop
Git and Github - a 90 Minute interactive workshop
 
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
 
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
October OpenNTF Webinar - What we like about Domino/Notes 12, recommended new...
 
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
 
OpenNTF Webinar, March, 2021
OpenNTF Webinar, March, 2021OpenNTF Webinar, March, 2021
OpenNTF Webinar, March, 2021
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
December OpenNTF Webinar: The Volt MX LotusScript ToolkitDecember OpenNTF Webinar: The Volt MX LotusScript Toolkit
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages Experts
 

Semelhante a Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014

Semelhante a Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014 (20)

Connect 2014 - AD202 - Get the best out of bootstrap with bootstrap4 x-pages
Connect 2014 - AD202 -  Get the best out of bootstrap with bootstrap4 x-pagesConnect 2014 - AD202 -  Get the best out of bootstrap with bootstrap4 x-pages
Connect 2014 - AD202 - Get the best out of bootstrap with bootstrap4 x-pages
 
Bootstrap4 x pages
Bootstrap4 x pagesBootstrap4 x pages
Bootstrap4 x pages
 
Bootstrap Fundamentals
Bootstrap FundamentalsBootstrap Fundamentals
Bootstrap Fundamentals
 
Bootstrap4XPages - an introduction
Bootstrap4XPages - an introductionBootstrap4XPages - an introduction
Bootstrap4XPages - an introduction
 
Bootstrap By Shafeeq
Bootstrap By Shafeeq Bootstrap By Shafeeq
Bootstrap By Shafeeq
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEM
 
FAT.Seminar.FOSS_Joomla!
FAT.Seminar.FOSS_Joomla!FAT.Seminar.FOSS_Joomla!
FAT.Seminar.FOSS_Joomla!
 
Know the reason behind choosing bootstrap as css framework
Know the reason behind choosing bootstrap as css frameworkKnow the reason behind choosing bootstrap as css framework
Know the reason behind choosing bootstrap as css framework
 
Analyzing bootsrap and foundation font-end frameworks : a comparative study
Analyzing bootsrap and foundation font-end frameworks : a comparative studyAnalyzing bootsrap and foundation font-end frameworks : a comparative study
Analyzing bootsrap and foundation font-end frameworks : a comparative study
 
Rapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPressRapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPress
 
LVPHP.org
LVPHP.orgLVPHP.org
LVPHP.org
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
Spring hibernate tutorial
Spring hibernate tutorialSpring hibernate tutorial
Spring hibernate tutorial
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4
 
Bootstrap Framework and Drupal
Bootstrap Framework and DrupalBootstrap Framework and Drupal
Bootstrap Framework and Drupal
 
Bootstrap seminar presentation
Bootstrap seminar presentationBootstrap seminar presentation
Bootstrap seminar presentation
 
.NET Recommended Resources
.NET Recommended Resources.NET Recommended Resources
.NET Recommended Resources
 
Flask
FlaskFlask
Flask
 

Mais de Mark Leusink

Mais de Mark Leusink (9)

Now what can you really build with DQL and web components?
Now what can you really build with DQL and web components?Now what can you really build with DQL and web components?
Now what can you really build with DQL and web components?
 
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJSICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
A 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developersA 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developers
 
Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)
 
Stop (de)bugging me - ICON UK 2013
Stop (de)bugging me - ICON UK 2013Stop (de)bugging me - ICON UK 2013
Stop (de)bugging me - ICON UK 2013
 
Stop (de)bugging me!
Stop (de)bugging me!Stop (de)bugging me!
Stop (de)bugging me!
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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)
 
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
 
+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...
 

Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014

  • 1. Get the best out of Bootstrap with Bootstrap4XPages Mark Leusink, LinQed
  • 2. Agenda  Bootstrap; the world's most popular UI framework  Bring Bootstrap to XPages with Bootstrap4XPages  “Bootstrapping” your XPages Application  Insights on the library  And demos!
  • 3. Speaker introduction  Freelance consultant/ developer  Web, XPages, Java, mobile  OpenNTF board member and contributor  IBM Champion  Creator of www.bootstrap4xpages.com
  • 4. Why a design framework?  Users are demanding a sleek and polished UI  But we're developers, not designers...  Consistent UI makes your applications easier to use  Develop for mobile  Responsive design  Standardized look for all applications  Deal with cross browser issues  Remember: IBM OneUI, as implemented in the Extension Library, is also a UI framework
  • 5. What is Bootstrap?  A set of UI elements available to web applications  Very (very) popular in the web developers community  Empowering front-end developers to kickstart projects more efficiently and effectively  Version 3 built from the ground up  Mobile first  Released in 2013  Responsive by default (optional in earlier versions)
  • 7. What is Bootstrap?  Carefully crafted CSS styles for  Typography  Navigation  Common controls (buttons, input controls, tables)  Layouts and grids  With responsive features  Icons  Using the Glyphicon font  JavaScript components  Relies on jQuery  Tabs, dialogs, tooltips, drop down buttons/menus 7#engageug
  • 8. What is Bootstrap? Many add-ons available  Free and paid  Custom themes  New controls  Code snippets Support for IE8+ Available for free at http://getbootstrap.com/
  • 11. Introducing Bootstrap4XPages  Bootstrap rendering for all existing XPages components  Core and Extension Library  Including the Dojo controls  Provides the easiest Bootstrap integration mechanism to XPages  Change the theme and your application is enabled  Get all the resources (CSS, JavaScript, fonts) served from the core runtime  No resources have to be added within the NSF  Participate in the XPages resource file aggregation
  • 12. Introducing Bootstrap4XPages Support for multiple versions of Bootstrap  2.3.1, 2.3.2, 3.0.0 and 3.1.1  Focus now on Bootstrap 3.x, but 2.3.2 is kept for compatibility Make it easy to create new Bootstrap specific components 12#engageug
  • 13. Installing Bootstrap4XPages  Get the Bootstrap4XPages (OSGi) plugin from OpenNTF  Compiled version available from the OpenNTF web site  Source code available on GitHub  Part of the OpenNTF Essentials Deploy the plugin:  On the Domino server (and Notes Client)  Use an update site database (preferred) or copy the OSGi plug- in to the server  In Domino Designer  File > Application > Install > import the update site
  • 14. Installation using the OpenNTF Essentials  Download OpenNTF essentials  http://essentials.openntf.org/  The install procedure is the same  The OpenNTF Essentials NSF contains Bootstrap4XPages as one of its components  More on the OpenNTF Essentials in the October 2013 webinar
  • 15. Two steps to enable Bootstrap in you app 1. Enable the necessary XPages libraries [x] com.ibm.xsp.extlib.library [x] org.openntf.xsp.bootstrap.library 2. Set the application theme bootstrapv3.1.1 (bootstrapv3.1.1_3d) bootstrapv3.0.0 (bootstrapv3.0.0_3d) bootstrapv2.3.2 (bootstrap2.3.2r)
  • 16. Best practices using Bootstrap4XPages Avoid hard coding style classes/ styles in your pages  Might (will) break third party themes  Use the components as they render as much as possible  Use a custom theme when you want to assign specific styles to components Leverage the extension library components instead of straight Bootstrap/ jQuery  Dialogs, as they are optimized and well tested with the JSF lifecycle
  • 17. Best practices using Bootstrap4XPages Use the build from OpenNTF, not the source code, in production  The build has its own resources (CSS, JavaScript), thus provides better performance  You can use the resources from the plugin without using the theme(s)  But that's not advised
  • 18. What does Bootstrap4XPages give you? Global resources served by a single URL Theme files that include these resources and define the components properties  Directly sets classes/ styles on controls when sufficient Custom JSF renderer for more complex cases  Organized in an hierarchy, (relatively) easy to inherit/ customize
  • 19. Bootstrap4XPages: provided resources Several versions of Bootstrap  2.3.1, 2.3.2, 3.0.0 and 3.1.1  Older will be deprecated/removed over time, new ones will be added jQuery 1.8.2 No longer in use, but still bundled:  DBootstrap  Dojo Bootstrap
  • 20. Demo: build an app with Bootstrap4XPages 20#engageug Demo
  • 21. Designing a responsive application Responsive design: the approach that suggests that design and development should respond to the user’s behaviour and environment based on screen size, platform and orientation. (http://coding.smashingmagazine.com/2011/01/12/guidelines- for-responsive-web-design/) Bootstrap 3 is responsive by default Supported by Bootstrap4XPages in Banner and Menu Demo
  • 22. Third party plugins in the library Select2 Value picker with support for  Search  Multi-value select (easier to use than a combobox)  Remote data sources  Templates Demo
  • 23. Using custom themes Create a theme using the Bootstrap web site  http://getbootstrap.com/customize/  http://stylebootstrap.info Get a pre-built theme from the Internet  https://wrapbootstrap.com/  http://bootswatch.com Demo
  • 24. Understanding the library implementation  Feels intimidating at the first glance, but it is not that hard once the development environment is installed and the XPages/ JSF concepts known  Remember: you don’t have to start from scratch  More details in the OpenNTF Webinar: Bootstrap for XPages  Quick walkthrough  Windows, Designer & Domino on a single (virtual) machine  Install Eclipse RCP (just get the latest version)  Install the Eclipse SDK for XPages and Domino Debug Plugin  Get them from OpenNTF  Get the plugin source from GitHub
  • 25. Wrapping up Don't reinvent the wheel but rather consume the project  It is more efficient than throwing Bootstrap within an NSF  It is more manageable than copying the files into domino/data/html
  • 26. Want to help?  The project is missing some features: feel free to help and contribute  Fully open source, and accepts external contributors  There are many ways to help, depending on your skills  Add new XPages components  Implement new Bootstrap releases  Create, integrate and distribute themes  Write documentation  Help testing
  • 27. References  Bootstrap4XPages project on OpenNTF  http://bootstrap4xpages.openntf.org/  Bootstrap4XPages source code on GitHub  https://github.com/OpenNTF/Bootstrap4XPages  Webinar on Bootstrap4XPages  http://www.youtube.com/watch?v=uAff5uNwhn0  http://www.slideshare.net/philipperiand/bootstrap4-x-pages  OpenNTF Essentials  http://essentials.openntf.org  http://www.youtube.com/watch?feature=player_embedded&v=EUrLfJ cCQhY#t=12m00s  Bootstrap4XPages – the site  Source of information on using Bootstrap with XPages  http://bootstrap4xpages.com/