SlideShare a Scribd company logo
Going Mobile with RichFaces
Lukáš Fryč
Who am I?
• Lukáš Fryč
• JBoss Software Engineer
• RichFaces Core Developer

• @lfryc
• #richfaces @ irc.freenode.net
• http://bit.ly/lfryc-blog
Agenda
•   Mobile Era
•   HTML5
•   Mobile with JSF
•   Mobile with RichFaces
•   The Future
Why Mobile?
The Rising Platform
Going mobile with RichFaces
Why Mobile Web?
Going mobile with RichFaces
One Common Denominator: Web Browser
One Common Denominator: Web Browser
Why Mobile Web Rocks?
•   Multi-platform
•   Cost
•   Time-to-Market
•   Online Identity
•   Continuous Evolution
Appeal to your users...
Appeal to your users, or Die!
Going mobile with RichFaces
The Birth of HTML5
What is HTML5?
• HTML5
• CSS3
• JavaScript
HTML5 is a Game-Changer
•   Fast
•   Secure
•   Responsive design
•   Interactive
•   Cross-Device
•   Stunningly beautiful
Going mobile with RichFaces
Enterprise Ready?
•   Performance
•   Security
•   Connectivity
•   Device Access
•   Off-line Storage
User Experience on Steroids!
It's going to be HUGE!
But evolving slowly...
HTML5 Features
Features are Coming
• Slow Adoption
   ●
     Standardization
• Fast Development
   ●
     Browser Vendors
Cross-Platform Development
Let's go WebKit Only!
But: Web != WebKit
• Opera
• Firefox
• Internet Explorer
Just WebKit, please...
• Symbian 1, 2, 3, S40
• iOS 2, 3, 4, 5
• Android 1, 2, 3, 4

• http://bit.ly/webkit-comparison
The Age of Frameworks
Leveraging Mobile Web Frameworks
• Off-load Messy Job → Frameworks
   ●
     Device Interoperability
   ●
     Debugging Hell
Why Mobile JSF?
Why mobile JSF?
• Encapsulation of logic
• Standard component-oriented programming
  model
• Reusing the knowledge you have
Why not use mobile frameworks with JSF?
• jQuery Mobile
   ●
     Not component oriented
   ●
     Prescribed programming model
   ●
     jQuery AJAX
   ●
     No support for HTML5's @data- in JSF
How Mobile JSF?
UI Components
• Optimized for Mobile
   ●
     Usability
      – Touch interface
   ●
     Responsive design
   ●
     Rich Client-Side API
Single-page model
• Facelets
• Behaviors
   ●
     AJAX Page Transitions
      – <f:ajax />
   ●
     Avoiding communication
      – <rich:componentControl />
Navigation & Context
• Support for history and bookmarking
• Interactive Controls
• CSS Transitions
Resource Optimizations
• Request Aggregation
• Minification
• Gzip Compression
Performance Optimizations
• CSS first
• JavaScript at the end

•   (JSF doesn't play nice here)
Too many concerns...
Frameworks save our but!
RichFaces Slidfast.js
Introducing Slidfast
• Light-weight JS library
    ●
      7 kilobytes
• Single-page
    ●
      JSF AJAX
    ●
      Facelets ui:include
• CSS transitions
    ●
      GPU Accelerated
• Back-button support
Demo: JSF + Slidfast
What we have seen?
• Single-page programming model
• GPU Accelerated CSS transitions
• Bookmarking and Navigation
   ●
     location.hash
• Running on OpenShift
Demo: RichFaces + Slidfast

       http://bit.ly/rf-ks
What we have seen?
•   Mobile Optimized Components
•   Push
•   <slidfast:page />
•   <slidfast:pageChanger />
Demo: RichFaces Showcase

     showcase.richfaces.org
Behind the Scene
Resource Optimization
• web.xml switch
• One compressed package (CSS/JS)
• Development friendly
   ●
     Project stage
• Cloud ready
   ●
     Resource Mapping
   ●
     CDN
Push Technology
• WebSockets / Comet
   ●
     Atmosphere
• JMS Integration
• CDI Integration
3 Paths
3 Paths
• Mobile Compatible

• Degrade Gracefully

• Mobile Optimized
3 Paths with RichFaces
• Mobile Compatible
   ●
     Today
• Degrade Gracefully

• Mobile Optimized
3 Paths with RichFaces
• Mobile Compatible
   ●
     Today
• Degrade Gracefully
   ●
     Near Future
• Mobile Optimized




                         Bootstrap
3 Paths with RichFaces
• Mobile Compatible
   ●
     Today
• Degrade Gracefully
   ●
     Near Future
• Mobile Optimized
   ●
     On the table
The RichFaces Community
Developing in Sandbox
• Community contributed components
   ●
      http://bit.ly/rf-sandbox
• Slidfast mobile navigation
• jQuery UI
• Twitter Bootstrap Components
   ●
      http://bit.ly/rf-bootstrap




                                Bootstrap
Developing in Sandbox – Ctn'd
• Component Development Kit
   ●
     Easy-to-Wrap Widgets
      – http://bit.ly/brian-on-cdk
   ●
     Fast Turnaround
      – http://bit.ly/fast-cdk
The Future
Mobile Specific Render-Kits
• Components nicely degrades to mobile versions
   ●
     e.g. WYSIWYG editor → <textarea />
Taking Advantage of more APIs
• Off-line Storage
   ●
     caching
• Security
• Connectivity
   ●
     Offline/Online
• Navigation
   ●
     pushState
• Performance Optimizations
Appeal to your users!
Thank you
• @lfryc     +Lukas Fryc
• #richfaces @ irc.freenode.net
• http://bit.ly/lfryc-blog
Credits
• Photographs and graphs used in presentation have been authored by various authors, published
  under Creative Commons license. There are links for original works:
 • http://gs.statcounter.com/
 • http://strategy.wikimedia.org/wiki/Mobile/Forecasts
 • http://www.flickr.com/photos/txh62/478812294/
 • http://www.flickr.com/photos/59937401@N07/5857835480/
 • http://www.flickr.com/photos/twicepix/3332881889/
 • http://www.flickr.com/photos/mollystevens/5179946914/
 • http://www.flickr.com/photos/mikecogh/5677982965/
 • http://www.flickr.com/photos/breatheindigital/4689159475/
 • http://www.flickr.com/photos/wilhei/109403306/
 • http://www.flickr.com/photos/8431398@N04/2680944871/
 • http://www.flickr.com/photos/halfbisqued/2353845688/
 • http://www.flickr.com/photos/gemsling/416891927/
 • http://www.flickr.com/photos/nirak/644335254/
 • http://www.flickr.com/photos/countylemonade/5940227329/
 • http://www.flickr.com/photos/tomergabel/3348629201/

More Related Content

What's hot (20)

Spsmi13 charts
Spsmi13 chartsSpsmi13 charts
Spsmi13 charts
Derek Gusoff
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Gabriel Villa
 
How To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit AgheraHow To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit Aghera
DrupalMumbai
 
An evening with React Native
An evening with React NativeAn evening with React Native
An evening with React Native
Mike Melusky
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A Team
Muhammad Akbar Yasin
 
A Gentle Introduction to Blazor
A Gentle Introduction to BlazorA Gentle Introduction to Blazor
A Gentle Introduction to Blazor
Jose Javier Columbie
 
gwt-pushstate
gwt-pushstategwt-pushstate
gwt-pushstate
Johannes Barop
 
Introduction to react native with redux
Introduction to react native with reduxIntroduction to react native with redux
Introduction to react native with redux
Mike Melusky
 
MEAN Stack
MEAN Stack MEAN Stack
MEAN Stack
RoshanTak1
 
Share point saturday presentation 9 29-2012-2
Share point saturday presentation 9 29-2012-2Share point saturday presentation 9 29-2012-2
Share point saturday presentation 9 29-2012-2
Derek Gusoff
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
Domingo Suarez Torres
 
Agile sites @ telmore
Agile sites @ telmore Agile sites @ telmore
Agile sites @ telmore
Michele Sciabarrà
 
Agile sites2
Agile sites2Agile sites2
Agile sites2
Michele Sciabarrà
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React Native
Nuxeo
 
Full stack JavaScript - the folly of choice
Full stack JavaScript - the folly of choiceFull stack JavaScript - the folly of choice
Full stack JavaScript - the folly of choice
FDConf
 
Introduction to JavaScript Full Stack
Introduction to JavaScript Full StackIntroduction to JavaScript Full Stack
Introduction to JavaScript Full Stack
Mindfire Solutions
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontends
Eugene Fidelin
 
How to Successfully Implement Headless Drupal
How to Successfully Implement Headless DrupalHow to Successfully Implement Headless Drupal
How to Successfully Implement Headless Drupal
Acquia
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPress
Pantheon
 
Alloy Framework
Alloy FrameworkAlloy Framework
Alloy Framework
Mads Møller
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Gabriel Villa
 
How To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit AgheraHow To Write Dynamic Migrations - Mohit Aghera
How To Write Dynamic Migrations - Mohit Aghera
DrupalMumbai
 
An evening with React Native
An evening with React NativeAn evening with React Native
An evening with React Native
Mike Melusky
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A Team
Muhammad Akbar Yasin
 
Introduction to react native with redux
Introduction to react native with reduxIntroduction to react native with redux
Introduction to react native with redux
Mike Melusky
 
Share point saturday presentation 9 29-2012-2
Share point saturday presentation 9 29-2012-2Share point saturday presentation 9 29-2012-2
Share point saturday presentation 9 29-2012-2
Derek Gusoff
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React Native
Nuxeo
 
Full stack JavaScript - the folly of choice
Full stack JavaScript - the folly of choiceFull stack JavaScript - the folly of choice
Full stack JavaScript - the folly of choice
FDConf
 
Introduction to JavaScript Full Stack
Introduction to JavaScript Full StackIntroduction to JavaScript Full Stack
Introduction to JavaScript Full Stack
Mindfire Solutions
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontends
Eugene Fidelin
 
How to Successfully Implement Headless Drupal
How to Successfully Implement Headless DrupalHow to Successfully Implement Headless Drupal
How to Successfully Implement Headless Drupal
Acquia
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPress
Pantheon
 

Similar to Going mobile with RichFaces (20)

Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
Bojan Veljanovski
 
Developing and deploying a website with html5
Developing and deploying a website with html5Developing and deploying a website with html5
Developing and deploying a website with html5
Chris Love
 
Frontend State of the union
Frontend State of the unionFrontend State of the union
Frontend State of the union
Filip Bruun Bech-Larsen
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) future
Filip Bruun Bech-Larsen
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
Chris Morrell
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps development
saritasingh19866
 
Going Mobile with HTML5
Going Mobile with HTML5Going Mobile with HTML5
Going Mobile with HTML5
John Reiser
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Jeremy Likness
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
Vladislav Bauer
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
Yi-Ting Cheng
 
Mobile Web Apps Overview
Mobile Web Apps OverviewMobile Web Apps Overview
Mobile Web Apps Overview
Ramon Victor
 
Mobile web development
Mobile web development Mobile web development
Mobile web development
Moumie Soulemane
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
Develop a vanilla.js spa you and your customers will love
Develop a vanilla.js spa you and your customers will loveDevelop a vanilla.js spa you and your customers will love
Develop a vanilla.js spa you and your customers will love
Chris Love
 
The shift to the edge
The shift to the edgeThe shift to the edge
The shift to the edge
Jakub Wadolowski
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014
Sean McCullough
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
Louis-Philippe Lavoie
 
Mobile web performance dwx13
Mobile web performance dwx13Mobile web performance dwx13
Mobile web performance dwx13
Avenga Germany GmbH
 
From RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
From RPG OA to Node.js: Approaches to Application Modernization - Greg PattersonFrom RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
From RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
Fresche Solutions
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
Bojan Veljanovski
 
Developing and deploying a website with html5
Developing and deploying a website with html5Developing and deploying a website with html5
Developing and deploying a website with html5
Chris Love
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) future
Filip Bruun Bech-Larsen
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
Chris Morrell
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps development
saritasingh19866
 
Going Mobile with HTML5
Going Mobile with HTML5Going Mobile with HTML5
Going Mobile with HTML5
John Reiser
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Jeremy Likness
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
Yi-Ting Cheng
 
Mobile Web Apps Overview
Mobile Web Apps OverviewMobile Web Apps Overview
Mobile Web Apps Overview
Ramon Victor
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Brian Culver
 
Develop a vanilla.js spa you and your customers will love
Develop a vanilla.js spa you and your customers will loveDevelop a vanilla.js spa you and your customers will love
Develop a vanilla.js spa you and your customers will love
Chris Love
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014
Sean McCullough
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
Louis-Philippe Lavoie
 
From RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
From RPG OA to Node.js: Approaches to Application Modernization - Greg PattersonFrom RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
From RPG OA to Node.js: Approaches to Application Modernization - Greg Patterson
Fresche Solutions
 

More from Lukáš Fryč (9)

Role of QA in Continuous Delivery
Role of QA in Continuous DeliveryRole of QA in Continuous Delivery
Role of QA in Continuous Delivery
Lukáš Fryč
 
Arquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get alongArquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get along
Lukáš Fryč
 
JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5
Lukáš Fryč
 
Web Components: Rethinking Web App Development
Web Components: Rethinking Web App DevelopmentWeb Components: Rethinking Web App Development
Web Components: Rethinking Web App Development
Lukáš Fryč
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
Lukáš Fryč
 
Designing Top-Class Test Suites for Web Applications
Designing Top-Class Test Suites for Web ApplicationsDesigning Top-Class Test Suites for Web Applications
Designing Top-Class Test Suites for Web Applications
Lukáš Fryč
 
Arquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the serverArquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the server
Lukáš Fryč
 
Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and Selenium
Lukáš Fryč
 
RichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile EraRichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile Era
Lukáš Fryč
 
Role of QA in Continuous Delivery
Role of QA in Continuous DeliveryRole of QA in Continuous Delivery
Role of QA in Continuous Delivery
Lukáš Fryč
 
Arquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get alongArquillian: Helping web developers and QA get along
Arquillian: Helping web developers and QA get along
Lukáš Fryč
 
JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5JSF 2.2 Deep Dive with RichFaces 5
JSF 2.2 Deep Dive with RichFaces 5
Lukáš Fryč
 
Web Components: Rethinking Web App Development
Web Components: Rethinking Web App DevelopmentWeb Components: Rethinking Web App Development
Web Components: Rethinking Web App Development
Lukáš Fryč
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
Lukáš Fryč
 
Designing Top-Class Test Suites for Web Applications
Designing Top-Class Test Suites for Web ApplicationsDesigning Top-Class Test Suites for Web Applications
Designing Top-Class Test Suites for Web Applications
Lukáš Fryč
 
Arquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the serverArquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the server
Lukáš Fryč
 
Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and Selenium
Lukáš Fryč
 
RichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile EraRichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile Era
Lukáš Fryč
 

Recently uploaded (20)

Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 

Going mobile with RichFaces

  • 1. Going Mobile with RichFaces Lukáš Fryč
  • 2. Who am I? • Lukáš Fryč • JBoss Software Engineer • RichFaces Core Developer • @lfryc • #richfaces @ irc.freenode.net • http://bit.ly/lfryc-blog
  • 3. Agenda • Mobile Era • HTML5 • Mobile with JSF • Mobile with RichFaces • The Future
  • 10. One Common Denominator: Web Browser
  • 11. Why Mobile Web Rocks? • Multi-platform • Cost • Time-to-Market • Online Identity • Continuous Evolution
  • 12. Appeal to your users...
  • 13. Appeal to your users, or Die!
  • 15. The Birth of HTML5
  • 16. What is HTML5? • HTML5 • CSS3 • JavaScript
  • 17. HTML5 is a Game-Changer • Fast • Secure • Responsive design • Interactive • Cross-Device • Stunningly beautiful
  • 19. Enterprise Ready? • Performance • Security • Connectivity • Device Access • Off-line Storage
  • 20. User Experience on Steroids!
  • 21. It's going to be HUGE!
  • 24. Features are Coming • Slow Adoption ● Standardization • Fast Development ● Browser Vendors
  • 27. But: Web != WebKit • Opera • Firefox • Internet Explorer
  • 28. Just WebKit, please... • Symbian 1, 2, 3, S40 • iOS 2, 3, 4, 5 • Android 1, 2, 3, 4 • http://bit.ly/webkit-comparison
  • 29. The Age of Frameworks
  • 30. Leveraging Mobile Web Frameworks • Off-load Messy Job → Frameworks ● Device Interoperability ● Debugging Hell
  • 32. Why mobile JSF? • Encapsulation of logic • Standard component-oriented programming model • Reusing the knowledge you have
  • 33. Why not use mobile frameworks with JSF? • jQuery Mobile ● Not component oriented ● Prescribed programming model ● jQuery AJAX ● No support for HTML5's @data- in JSF
  • 35. UI Components • Optimized for Mobile ● Usability – Touch interface ● Responsive design ● Rich Client-Side API
  • 36. Single-page model • Facelets • Behaviors ● AJAX Page Transitions – <f:ajax /> ● Avoiding communication – <rich:componentControl />
  • 37. Navigation & Context • Support for history and bookmarking • Interactive Controls • CSS Transitions
  • 38. Resource Optimizations • Request Aggregation • Minification • Gzip Compression
  • 39. Performance Optimizations • CSS first • JavaScript at the end • (JSF doesn't play nice here)
  • 43. Introducing Slidfast • Light-weight JS library ● 7 kilobytes • Single-page ● JSF AJAX ● Facelets ui:include • CSS transitions ● GPU Accelerated • Back-button support
  • 44. Demo: JSF + Slidfast
  • 45. What we have seen? • Single-page programming model • GPU Accelerated CSS transitions • Bookmarking and Navigation ● location.hash • Running on OpenShift
  • 46. Demo: RichFaces + Slidfast http://bit.ly/rf-ks
  • 47. What we have seen? • Mobile Optimized Components • Push • <slidfast:page /> • <slidfast:pageChanger />
  • 48. Demo: RichFaces Showcase showcase.richfaces.org
  • 50. Resource Optimization • web.xml switch • One compressed package (CSS/JS) • Development friendly ● Project stage • Cloud ready ● Resource Mapping ● CDN
  • 51. Push Technology • WebSockets / Comet ● Atmosphere • JMS Integration • CDI Integration
  • 53. 3 Paths • Mobile Compatible • Degrade Gracefully • Mobile Optimized
  • 54. 3 Paths with RichFaces • Mobile Compatible ● Today • Degrade Gracefully • Mobile Optimized
  • 55. 3 Paths with RichFaces • Mobile Compatible ● Today • Degrade Gracefully ● Near Future • Mobile Optimized Bootstrap
  • 56. 3 Paths with RichFaces • Mobile Compatible ● Today • Degrade Gracefully ● Near Future • Mobile Optimized ● On the table
  • 58. Developing in Sandbox • Community contributed components ● http://bit.ly/rf-sandbox • Slidfast mobile navigation • jQuery UI • Twitter Bootstrap Components ● http://bit.ly/rf-bootstrap Bootstrap
  • 59. Developing in Sandbox – Ctn'd • Component Development Kit ● Easy-to-Wrap Widgets – http://bit.ly/brian-on-cdk ● Fast Turnaround – http://bit.ly/fast-cdk
  • 61. Mobile Specific Render-Kits • Components nicely degrades to mobile versions ● e.g. WYSIWYG editor → <textarea />
  • 62. Taking Advantage of more APIs • Off-line Storage ● caching • Security • Connectivity ● Offline/Online • Navigation ● pushState • Performance Optimizations
  • 63. Appeal to your users!
  • 64. Thank you • @lfryc +Lukas Fryc • #richfaces @ irc.freenode.net • http://bit.ly/lfryc-blog
  • 65. Credits • Photographs and graphs used in presentation have been authored by various authors, published under Creative Commons license. There are links for original works: • http://gs.statcounter.com/ • http://strategy.wikimedia.org/wiki/Mobile/Forecasts • http://www.flickr.com/photos/txh62/478812294/ • http://www.flickr.com/photos/59937401@N07/5857835480/ • http://www.flickr.com/photos/twicepix/3332881889/ • http://www.flickr.com/photos/mollystevens/5179946914/ • http://www.flickr.com/photos/mikecogh/5677982965/ • http://www.flickr.com/photos/breatheindigital/4689159475/ • http://www.flickr.com/photos/wilhei/109403306/ • http://www.flickr.com/photos/8431398@N04/2680944871/ • http://www.flickr.com/photos/halfbisqued/2353845688/ • http://www.flickr.com/photos/gemsling/416891927/ • http://www.flickr.com/photos/nirak/644335254/ • http://www.flickr.com/photos/countylemonade/5940227329/ • http://www.flickr.com/photos/tomergabel/3348629201/