SlideShare a Scribd company logo
1 of 7
SlickGrid Touch
Making a complex JavaScript table widget work
            on mobile devices

     Lightning talk, Plone Conference, Arnhem
                     2012-10-11

                 Balázs Reé
                 @reebalazs
Base
• Your website has to work on mobile.
• Older javascript widgets do not work on touch
  devices.

• How can we make it feel like a touch
  application?

• Looking at an application being ported:
 • the biggest lack is a functional grid table.
 • How hard would it be to fix it?
Introducing SlickGrid
• https://github.com/mleibman/SlickGrid
• fast,
• configurable,
• compatible,
• no touch support
•   client or server side data
•   cell formatting
•   inline editing
•   sorting and filtering
•   column resize and reorder
•   ... and more.
Wait, there is more.
   • What do we mean by touch support?


           Lorem Ipsum...

 select/      follow link   menu           delete row
unselect
  row                              scroll reorder rows
                   select row
Demo
• The “fastbreak” application is written by Paul
  Everitt @paulweveritt

• It is Pyramid based and uses Bootstrap in the
  front-end

• .... tables, tables everywhere!
• Look at the screencast of the demo:
  https://vimeo.com/channels/greenfinity/
  51291141
Technology
• Keep the same features, add touch support.
• Styling.
 • out with jquery-ui, in with bootstrap
 • some responsiveness problems
• Events.
 • hammer.js: desktop events translated to
     touch events (hold tap doubletap transformstart transform
     transformend dragstart drag dragend swipe release)


• SlickGrid: our code is in plugins.
Summary
• http://github.com/reebalazs/SlickGrid-touch
   https://github.com/pauleveritt/fastbreak

• Touch compatibility is feasible to reach, even
   with complex widgets

• Thank you! @reebalazs @paulweveritt
• Yes, we will use it in production. No, it is not
   released, not finished, and it still has bugs.

• Questions?

More Related Content

What's hot

jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
dmethvin
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin
 
jQuery Foundation Keynote
jQuery Foundation KeynotejQuery Foundation Keynote
jQuery Foundation Keynote
Richard Worth
 
Web, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js AppWeb, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js App
FITC
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
Hristo Chakarov
 

What's hot (20)

Going Node.js at Netflix
Going Node.js at NetflixGoing Node.js at Netflix
Going Node.js at Netflix
 
Unit testing
Unit testingUnit testing
Unit testing
 
Smooth Animations for Web & Hybrid
Smooth Animations for Web & HybridSmooth Animations for Web & Hybrid
Smooth Animations for Web & Hybrid
 
JS Framework Comparison - An infographic
JS Framework Comparison - An infographicJS Framework Comparison - An infographic
JS Framework Comparison - An infographic
 
jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010
 
The Onion
The OnionThe Onion
The Onion
 
jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and BackboneJavascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
 
jQuery Foundation Keynote
jQuery Foundation KeynotejQuery Foundation Keynote
jQuery Foundation Keynote
 
Web, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js AppWeb, Native iOS and Native Android with One Ember.js App
Web, Native iOS and Native Android with One Ember.js App
 
Azure functions and container instances
Azure functions and container instancesAzure functions and container instances
Azure functions and container instances
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
 
Introduction to SPA with AngularJS
Introduction to SPA with AngularJSIntroduction to SPA with AngularJS
Introduction to SPA with AngularJS
 
Building Apps with React Native - Lessons Learned
Building Apps with React Native - Lessons LearnedBuilding Apps with React Native - Lessons Learned
Building Apps with React Native - Lessons Learned
 
Spa with angular
Spa with angularSpa with angular
Spa with angular
 
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps TipsPhonegap Day 2016: Ember/JS & Hybrid Apps Tips
Phonegap Day 2016: Ember/JS & Hybrid Apps Tips
 
Sfk13
Sfk13Sfk13
Sfk13
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 

Similar to SlickGrid Touch: Making complex JavaScript widgets work on mobile devices

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
 
Making operations visible - devopsdays tokyo 2013
Making operations visible  - devopsdays tokyo 2013Making operations visible  - devopsdays tokyo 2013
Making operations visible - devopsdays tokyo 2013
Nick Galbreath
 
Making operations visible - Nick Gallbreath
Making operations visible - Nick GallbreathMaking operations visible - Nick Gallbreath
Making operations visible - Nick Gallbreath
Devopsdays
 

Similar to SlickGrid Touch: Making complex JavaScript widgets work on mobile devices (20)

All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
 
Scott mc cormick float mobile learning_prototyping strategy_mlearncon 2012
Scott mc cormick float mobile learning_prototyping strategy_mlearncon 2012Scott mc cormick float mobile learning_prototyping strategy_mlearncon 2012
Scott mc cormick float mobile learning_prototyping strategy_mlearncon 2012
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
Developing SPI applications using Grails and AngularJS
Developing SPI applications using Grails and AngularJSDeveloping SPI applications using Grails and AngularJS
Developing SPI applications using Grails and AngularJS
 
Developing an Accessible Web
Developing an Accessible WebDeveloping an Accessible Web
Developing an Accessible Web
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
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
 
Sps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flowSps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flow
 
Siterise for OpenText Web Experience Management, Portal, and Tempo Social.
Siterise for OpenText Web Experience Management, Portal, and Tempo Social.Siterise for OpenText Web Experience Management, Portal, and Tempo Social.
Siterise for OpenText Web Experience Management, Portal, and Tempo Social.
 
Service worker API
Service worker APIService worker API
Service worker API
 
Practical workflows for responsive design
Practical workflows for responsive designPractical workflows for responsive design
Practical workflows for responsive design
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics Short Introduction of software engineering for bioinformatics
Short Introduction of software engineering for bioinformatics
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
Défragmentez vos apps avec Mortar !
Défragmentez vos apps avec Mortar !Défragmentez vos apps avec Mortar !
Défragmentez vos apps avec Mortar !
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build Artifacts
 
Making operations visible - devopsdays tokyo 2013
Making operations visible  - devopsdays tokyo 2013Making operations visible  - devopsdays tokyo 2013
Making operations visible - devopsdays tokyo 2013
 
Making operations visible - Nick Gallbreath
Making operations visible - Nick GallbreathMaking operations visible - Nick Gallbreath
Making operations visible - Nick Gallbreath
 
Mobile web development
Mobile web development Mobile web development
Mobile web development
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

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
 
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
 
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...
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
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
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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...
 

SlickGrid Touch: Making complex JavaScript widgets work on mobile devices

  • 1. SlickGrid Touch Making a complex JavaScript table widget work on mobile devices Lightning talk, Plone Conference, Arnhem 2012-10-11 Balázs Reé @reebalazs
  • 2. Base • Your website has to work on mobile. • Older javascript widgets do not work on touch devices. • How can we make it feel like a touch application? • Looking at an application being ported: • the biggest lack is a functional grid table. • How hard would it be to fix it?
  • 3. Introducing SlickGrid • https://github.com/mleibman/SlickGrid • fast, • configurable, • compatible, • no touch support • client or server side data • cell formatting • inline editing • sorting and filtering • column resize and reorder • ... and more.
  • 4. Wait, there is more. • What do we mean by touch support? Lorem Ipsum... select/ follow link menu delete row unselect row scroll reorder rows select row
  • 5. Demo • The “fastbreak” application is written by Paul Everitt @paulweveritt • It is Pyramid based and uses Bootstrap in the front-end • .... tables, tables everywhere! • Look at the screencast of the demo: https://vimeo.com/channels/greenfinity/ 51291141
  • 6. Technology • Keep the same features, add touch support. • Styling. • out with jquery-ui, in with bootstrap • some responsiveness problems • Events. • hammer.js: desktop events translated to touch events (hold tap doubletap transformstart transform transformend dragstart drag dragend swipe release) • SlickGrid: our code is in plugins.
  • 7. Summary • http://github.com/reebalazs/SlickGrid-touch https://github.com/pauleveritt/fastbreak • Touch compatibility is feasible to reach, even with complex widgets • Thank you! @reebalazs @paulweveritt • Yes, we will use it in production. No, it is not released, not finished, and it still has bugs. • Questions?

Editor's Notes

  1. This talk has nothing to do with Plone. But also, it is a client side thing, and it could be used in Plone.\n
  2. old widgets: (for example a simple jquery-ui dropdown.) “Have you seen a dropdown that did not work?”\nMost of the times, a change in discipline is needed. (for example use native inputs)\nThe best implementation that explores this new discipline is the Twitter Bootstrap.\nSame interface: we do not work to work double, but also do not want that the user has to learn 2 ways.\n\n\n
  3. \n
  4. “things should work”, but how?\nlook and feel of mobile.\npinch... (transform) still here.\n\nThis is close to what we are doing.\n
  5. \n
  6. keep the same features. For example the ajax, or the cell formatting, or the inline editing.\nBUT: \nstyling. Slickgrid does not rely so heavily on jquery-ui, so we could remove it completely.\nresponsiveness problems: for example, row height also would be nice to be responsive.\nhammer.js: ... the touch-punch approach would be the opposite to this and they won’t mix.\nour code:... very minimal changes would be needed to SlickGrid core.\n
  7. .. it is possible but needs a new disciplinary approach in UI design\n