SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
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
Why Mobile Web?
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!
The Birth of HTML5
What is HTML5?
• HTML5
• CSS3
• JavaScript
HTML5 is a Game-Changer
•   Fast
•   Secure
•   Responsive design
•   Interactive
•   Cross-Device
•   Stunningly beautiful
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/

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (20)

Spsmi13 charts
Spsmi13 chartsSpsmi13 charts
Spsmi13 charts
 
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...
 
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
 
An evening with React Native
An evening with React NativeAn evening with React Native
An evening with React Native
 
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
 
A Gentle Introduction to Blazor
A Gentle Introduction to BlazorA Gentle Introduction to Blazor
A Gentle Introduction to Blazor
 
gwt-pushstate
gwt-pushstategwt-pushstate
gwt-pushstate
 
Introduction to react native with redux
Introduction to react native with reduxIntroduction to react native with redux
Introduction to react native with redux
 
MEAN Stack
MEAN Stack MEAN Stack
MEAN Stack
 
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
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
Agile sites @ telmore
Agile sites @ telmore Agile sites @ telmore
Agile sites @ telmore
 
Agile sites2
Agile sites2Agile sites2
Agile sites2
 
Building our App with React Native
Building our App with React NativeBuilding our App with React Native
Building our App with React Native
 
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
 
Introduction to JavaScript Full Stack
Introduction to JavaScript Full StackIntroduction to JavaScript Full Stack
Introduction to JavaScript Full Stack
 
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
 
How to Successfully Implement Headless Drupal
How to Successfully Implement Headless DrupalHow to Successfully Implement Headless Drupal
How to Successfully Implement Headless Drupal
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPress
 
Alloy Framework
Alloy FrameworkAlloy Framework
Alloy Framework
 

Semelhante a Going mobile with RichFaces

Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
Chris Morrell
 
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
 
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
 

Semelhante a 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
 
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
 
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
 
Frontend State of the union
Frontend State of the unionFrontend State of the union
Frontend State of the union
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) future
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
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
 
Going Mobile with HTML5
Going Mobile with HTML5Going Mobile with HTML5
Going Mobile with HTML5
 
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
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
 
Mobile Web Apps Overview
Mobile Web Apps OverviewMobile Web Apps Overview
Mobile Web Apps Overview
 
Mobile web development
Mobile web development Mobile web development
Mobile web development
 
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)
 
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
 
The shift to the edge
The shift to the edgeThe shift to the edge
The shift to the edge
 
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
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
 
Mobile web performance dwx13
Mobile web performance dwx13Mobile web performance dwx13
Mobile web performance dwx13
 
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
 

Mais de 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č
 

Mais de 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
 
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
 
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
 
Web Components: Rethinking Web App Development
Web Components: Rethinking Web App DevelopmentWeb Components: Rethinking Web App Development
Web Components: Rethinking Web App Development
 
Web Technologies in Java EE 7
Web Technologies in Java EE 7Web Technologies in Java EE 7
Web Technologies in Java EE 7
 
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
 
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
 
Testing JSF with Arquillian and Selenium
Testing JSF with Arquillian and SeleniumTesting JSF with Arquillian and Selenium
Testing JSF with Arquillian and Selenium
 
RichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile EraRichFaces 4 rolling to Mobile Era
RichFaces 4 rolling to Mobile Era
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Going mobile with RichFaces