SlideShare a Scribd company logo
1 of 26
JavaScript Library Toolbox
Essential JavaScript Libraries for Frontend Designers
and Developers
Justin Hu web developer at EMU Design
Email Justinhu-cg@msn.com
Why there are so many JavaScript libraries ?
Why we should invest time to learn them?
What can JavaScript libraries do ?
How to choose a JavaScript wisely ?
How to effectively learn JavaScript and
libraries ?
Structure of This Talk
• Why ?
• What ?
• How ?
• Resource
Why ? Why there are so many JavaScript libraries ?
Why ? we should invest time to learn them?
There is a fuzzy grey area to consider in frontend web
development for dynamic content.
The solution is JavaScript and this boost the popularity of
libraries, frameworks and plugins such as
query, Backbone.js, Require.js etc.
Frontend Backend
Why ? we should invest time to learn them?
Why ? we should invest time to learn them?
1. For better team communication
2. For career path – strong marketable skill
3. For self-development – logical thinking skills
4. For Fun
Old days
1. Solve browser issues
2. Dynamic and Interactive UI elements
What ? What can JavaScript libraries do ?
Now and the future
1. Solve browser issues
2. Dynamic and Interactive UI elements
3. Advanced web applications – MVC, Modulate
4. Server-Side JavaScript
What ? What can JavaScript libraries do ?
What ? What can JavaScript libraries do ?
JavaScript Libraries
UI
Elements
UI
Elements
Multimedia
Graphics
Multimedia
Animation
Audio
Video
Players
Graphics
Data Visualization
WebGL
Mapping
the top of the Iceberg
What ? Checklist for Web site project
Libraries Responsibility
Essential
query UI Web UI elements
query Mobile Mobile friendly widgets
Bootstrap Responsive layout and
visual elements
Modernizr Feature Detector
Optional
TweenLite Animation
soundmanager2 audio
Jquery.easing.js Transition
Jquery.cookie.js Cookie
Jquery.history.js History
What ? JavaScript is not just ‘JavaScript’ anymore
JavaScript Libraries
Visual
UI Elements
Multimedia
Graphics
Development
Package
Management
Compilers
Debugging
Build Utilities
Testing
Data
Data
Structure
Storage
Validation
File Formats
Architecture
App
Frameworks
Mobile
Desktop GUI
Dependency
management
Templating
Misc.
Class System
i18n
DOM
Routing
Server-Side
The Full Picture
What ? Sample Site – ANZ
http://www.anz.com.au/personal/travel-foreign-exchange/currency-
converter/
Technology:
Backbone.js - MVC
Handlebar.js - Templating
jQueryUI - Buttons
What ? Checklist for Web application project
Libraries Responsibility Alternative Libraries
Require.js Module, dependency
management
Backbone.js Model-View-Controller Knockout.js
Handlerbar.js Templating Engine Mustache.js
Modernizr Browser issue handling
Bootstrap Responsive layout Fondation, BluePrint
query UI, query Mobile UI widgets Zepto.js
D3.js Data Visualization
Node.js Server-side
development
Rich text editor
Autocompletion tools
HTML generation tools
Widgets themeable / skinnable
GUI resizable panels and modal
dialogs
GUI page layout
Canvas support
Mobile/ tablet support ( touch
events)
Accessibility / graceful degradation
ARIA compliant
Developer tools, Visual design
offline storage
Cross-browser 2d Vector
Charting & Dashboard
RTL Support in UI Components
How ? How to choose a JavaScript wisely ?
Things to consider :
feature detection
DOM wrapped
XMLHttpRequest data retrieval
JSON data retrieval
Server puch data retrieval
Other data retrieval
Drag and drop
Simple visual effects
Animation/ advanced visual effects
event handling
back button support/ history
management
Input form widgets & validation
Grid
Hierarchical Tree
How ? How to choose a JavaScript wisely ?
My JavaScript library decision making workflow - MCMT
Sample Site – ANZ Currency Converter
http://www.anz.com.au/personal/travel-foreign-exchange/currency-
converter/
Technology Analysis:
Application Architecture -
MVC – Backbone.js
Templating - Handlebars.js
Module loader – Require.js
UI elements –
lightbox
button dropdowns
button groups
tabs
pager
Effect - Flip
How ? How to choose a JavaScript wisely ?
Item Library candidates
‘Visible’ part
UI - Light box Colorbox facyBox
UI - Button
dropdown
Bootstrap jQuery
UI - Button group Bootstrap jQueryUI jQuery
UI - Tabs Bootstrap jQueryUI jQuery
UI - Pager Bootstrap jQueryUI jQuery
Effect - Flip Flippy Flip! jQuery
‘Invisible’ part
MVC Backbone.js Spine.js Knockout.js
Angular.js
Templating Mustache.js Handlebars
Module loader Require.js
Step 1 Make a list of UI items need to be used for the project
Criteria for UI libraries:
ct - customizable theme
ca - customizable animation
in - integration – nesting, AJAX
support
bf - * browser friendly
mf - * mobile friendly - responsive
How ? How to choose a JavaScript wisely ?
General criteria:
ds - data retrieving support
ap - application
performance
v - version
doc - documentation
com - community
How ? How to choose a JavaScript wisely ?
Component Bootstrap Fuel UX MetroUI …
ct,ca,in,bf,mf,ds,
ap,v
ct,ca,in,bf,mf,
v
ct,bf,mf,ds,ap,v
Tiles *
Menu * *
Sidebar * *
spinner *
Accordion * *
Buttons set * ?
Rating *
Progress bars *
Carousel
List view *
Slider *
….
Step 2 Check UI Components Comparison Table
How ? How to choose a JavaScript wisely ?
Item Library Notes Backup
‘Visible’ part
UI - Light box Colorbox No browser issue
UI - Button
dropdown
Bootstrap
UI - Button group Bootstrap
UI - Tabs Bootstrap
UI - Pager Bootstrap
Effect - Flip Flip! Non javascript
animation
‘Invisible’ part
MVC Backbone.js Community
support
Templating Handlebars Learning curve
Module loader Require.js Optional
Step 3 Make a decision
How ? How to choose a JavaScript wisely ?
Step 4 - Test , Implement - Doesn’t work 100% ? Don’t give up!
Common Scenarios (rank by complexity level )
• one UI library solve all problem - yippee !
• one UI library + one or two support plugins
example : jQueryUI + jQuery UI Touch Punch
• one UI library ( + one or two plugins ) + browser support +
conflict solving
example : x + y + modernizr.js
x + y + old school JavaScript debugging
Mobile generation -> Rich interactive web
application and dynamic content -> A niche
job market is opened up which is full of
potential
With the support of large library community,
JavaScript still does what it does for stunning
visual experience and it is secretly expanding
to nearly every corner of web development
4 steps workflow for effective decision
making - MCMT
Wrap it up
• Why ?
• What ?
• How ?
Grid / Spreadsheet: SlickGrid
Windows 8 style tiles: Metro UI
Drag-and –drop grid: gridster.js
Flip book: Turn.js
Twitter Bootstrap Extension : Fuel UX
Light weight bootstrap substitution: w2ui
Small helper libraries: jquery.imgpreload, jquery-cookie
events support:
Cascading grid layout: Isotope , Masonry.js
Sliders: Royal slider , circular, Flexslider2
Resources - short list of small libraries worth taking a look
Repository and Resource Sites :
https://github.com/ - large community
http://jster.net/catalog - handy JavaScript library review site
http://stackoverflow.com/ - find answers to JavaScript issues
http://jsfiddle.net/ - test libraries online
Blogs :
http://www.paulirish.com/
http://ejohn.org/category/blog/
http://addyosmani.com/blog/
http://benalman.com/
http://james.padolsey.com/
http://www.jspatterns.com/
Resources
{ Thank You }
Essential JavaScript Libraries for Frontend Designers
and Developers
Justin Hu web developer at EMU Design
Email Justinhu-cg@msn.com

More Related Content

Viewers also liked

JavaScript - Programming Languages course
JavaScript - Programming Languages course JavaScript - Programming Languages course
JavaScript - Programming Languages course yoavrubin
 
Introduction to the wonderful world of JavaScript
Introduction to the wonderful world of JavaScriptIntroduction to the wonderful world of JavaScript
Introduction to the wonderful world of JavaScriptJakob Torp
 
The JavaScript Programming Primer
The JavaScript  Programming PrimerThe JavaScript  Programming Primer
The JavaScript Programming PrimerMike Wilcox
 
Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Brent Noorda
 

Viewers also liked (7)

JavaScript - Programming Languages course
JavaScript - Programming Languages course JavaScript - Programming Languages course
JavaScript - Programming Languages course
 
Java Script Overview
Java Script OverviewJava Script Overview
Java Script Overview
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Introduction to the wonderful world of JavaScript
Introduction to the wonderful world of JavaScriptIntroduction to the wonderful world of JavaScript
Introduction to the wonderful world of JavaScript
 
Predictive Modelling
Predictive ModellingPredictive Modelling
Predictive Modelling
 
The JavaScript Programming Primer
The JavaScript  Programming PrimerThe JavaScript  Programming Primer
The JavaScript Programming Primer
 
Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.
 

Similar to Javascript library toolbox

Introduction to backbone_js
Introduction to backbone_jsIntroduction to backbone_js
Introduction to backbone_jsMohammed Saqib
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web ApplicationYakov Fain
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesMark Roden
 
Large-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScriptLarge-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScriptNavid Ahmadi
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba - .toster
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadRuss Fustino
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampChris Love
 
An Angular developer moving to React
An Angular developer moving to ReactAn Angular developer moving to React
An Angular developer moving to ReactSouvik Basu
 
Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentationcolberding
 
jQuery programming with visual web part
jQuery programming with visual web partjQuery programming with visual web part
jQuery programming with visual web partSenthamil Selvan
 
Asp.net mvc - Better User Experience with Kendo UI
Asp.net mvc - Better User Experience with Kendo UIAsp.net mvc - Better User Experience with Kendo UI
Asp.net mvc - Better User Experience with Kendo UILohith Goudagere Nagaraj
 
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 html5Chris Love
 
Web development at Live: Frontend Software Intro + Trade-offs, React, Angular
Web development at Live: Frontend Software Intro + Trade-offs, React, AngularWeb development at Live: Frontend Software Intro + Trade-offs, React, Angular
Web development at Live: Frontend Software Intro + Trade-offs, React, AngularAmy Hua
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
 
Online Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UIOnline Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UILohith Goudagere Nagaraj
 

Similar to Javascript library toolbox (20)

Introduction to backbone_js
Introduction to backbone_jsIntroduction to backbone_js
Introduction to backbone_js
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
 
KATHY ZHANG_3
KATHY ZHANG_3KATHY ZHANG_3
KATHY ZHANG_3
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPages
 
Large-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScriptLarge-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScript
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba -
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
 
Angular JS - UI Development Online Training
Angular JS - UI Development Online TrainingAngular JS - UI Development Online Training
Angular JS - UI Development Online Training
 
Tasvir_UI Developer
Tasvir_UI DeveloperTasvir_UI Developer
Tasvir_UI Developer
 
An Angular developer moving to React
An Angular developer moving to ReactAn Angular developer moving to React
An Angular developer moving to React
 
Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentation
 
jQuery programming with visual web part
jQuery programming with visual web partjQuery programming with visual web part
jQuery programming with visual web part
 
Asp.net mvc - Better User Experience with Kendo UI
Asp.net mvc - Better User Experience with Kendo UIAsp.net mvc - Better User Experience with Kendo UI
Asp.net mvc - Better User Experience with Kendo UI
 
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
 
Web development at Live: Frontend Software Intro + Trade-offs, React, Angular
Web development at Live: Frontend Software Intro + Trade-offs, React, AngularWeb development at Live: Frontend Software Intro + Trade-offs, React, Angular
Web development at Live: Frontend Software Intro + Trade-offs, React, Angular
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
 
Online Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UIOnline Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UI
 
Javascript frameworks
Javascript frameworksJavascript frameworks
Javascript frameworks
 

Recently uploaded

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Recently uploaded (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

Javascript library toolbox

  • 1. JavaScript Library Toolbox Essential JavaScript Libraries for Frontend Designers and Developers Justin Hu web developer at EMU Design Email Justinhu-cg@msn.com
  • 2. Why there are so many JavaScript libraries ? Why we should invest time to learn them? What can JavaScript libraries do ? How to choose a JavaScript wisely ? How to effectively learn JavaScript and libraries ? Structure of This Talk • Why ? • What ? • How ? • Resource
  • 3. Why ? Why there are so many JavaScript libraries ?
  • 4. Why ? we should invest time to learn them? There is a fuzzy grey area to consider in frontend web development for dynamic content. The solution is JavaScript and this boost the popularity of libraries, frameworks and plugins such as query, Backbone.js, Require.js etc. Frontend Backend
  • 5. Why ? we should invest time to learn them?
  • 6. Why ? we should invest time to learn them? 1. For better team communication 2. For career path – strong marketable skill 3. For self-development – logical thinking skills 4. For Fun
  • 7. Old days 1. Solve browser issues 2. Dynamic and Interactive UI elements What ? What can JavaScript libraries do ?
  • 8. Now and the future 1. Solve browser issues 2. Dynamic and Interactive UI elements 3. Advanced web applications – MVC, Modulate 4. Server-Side JavaScript What ? What can JavaScript libraries do ?
  • 9. What ? What can JavaScript libraries do ? JavaScript Libraries UI Elements UI Elements Multimedia Graphics Multimedia Animation Audio Video Players Graphics Data Visualization WebGL Mapping the top of the Iceberg
  • 10. What ? Checklist for Web site project Libraries Responsibility Essential query UI Web UI elements query Mobile Mobile friendly widgets Bootstrap Responsive layout and visual elements Modernizr Feature Detector Optional TweenLite Animation soundmanager2 audio Jquery.easing.js Transition Jquery.cookie.js Cookie Jquery.history.js History
  • 11. What ? JavaScript is not just ‘JavaScript’ anymore JavaScript Libraries Visual UI Elements Multimedia Graphics Development Package Management Compilers Debugging Build Utilities Testing Data Data Structure Storage Validation File Formats Architecture App Frameworks Mobile Desktop GUI Dependency management Templating Misc. Class System i18n DOM Routing Server-Side The Full Picture
  • 12. What ? Sample Site – ANZ http://www.anz.com.au/personal/travel-foreign-exchange/currency- converter/ Technology: Backbone.js - MVC Handlebar.js - Templating jQueryUI - Buttons
  • 13. What ? Checklist for Web application project Libraries Responsibility Alternative Libraries Require.js Module, dependency management Backbone.js Model-View-Controller Knockout.js Handlerbar.js Templating Engine Mustache.js Modernizr Browser issue handling Bootstrap Responsive layout Fondation, BluePrint query UI, query Mobile UI widgets Zepto.js D3.js Data Visualization Node.js Server-side development
  • 14. Rich text editor Autocompletion tools HTML generation tools Widgets themeable / skinnable GUI resizable panels and modal dialogs GUI page layout Canvas support Mobile/ tablet support ( touch events) Accessibility / graceful degradation ARIA compliant Developer tools, Visual design offline storage Cross-browser 2d Vector Charting & Dashboard RTL Support in UI Components How ? How to choose a JavaScript wisely ? Things to consider : feature detection DOM wrapped XMLHttpRequest data retrieval JSON data retrieval Server puch data retrieval Other data retrieval Drag and drop Simple visual effects Animation/ advanced visual effects event handling back button support/ history management Input form widgets & validation Grid Hierarchical Tree
  • 15. How ? How to choose a JavaScript wisely ? My JavaScript library decision making workflow - MCMT
  • 16. Sample Site – ANZ Currency Converter http://www.anz.com.au/personal/travel-foreign-exchange/currency- converter/ Technology Analysis: Application Architecture - MVC – Backbone.js Templating - Handlebars.js Module loader – Require.js UI elements – lightbox button dropdowns button groups tabs pager Effect - Flip
  • 17. How ? How to choose a JavaScript wisely ? Item Library candidates ‘Visible’ part UI - Light box Colorbox facyBox UI - Button dropdown Bootstrap jQuery UI - Button group Bootstrap jQueryUI jQuery UI - Tabs Bootstrap jQueryUI jQuery UI - Pager Bootstrap jQueryUI jQuery Effect - Flip Flippy Flip! jQuery ‘Invisible’ part MVC Backbone.js Spine.js Knockout.js Angular.js Templating Mustache.js Handlebars Module loader Require.js Step 1 Make a list of UI items need to be used for the project
  • 18. Criteria for UI libraries: ct - customizable theme ca - customizable animation in - integration – nesting, AJAX support bf - * browser friendly mf - * mobile friendly - responsive How ? How to choose a JavaScript wisely ?
  • 19. General criteria: ds - data retrieving support ap - application performance v - version doc - documentation com - community How ? How to choose a JavaScript wisely ?
  • 20. Component Bootstrap Fuel UX MetroUI … ct,ca,in,bf,mf,ds, ap,v ct,ca,in,bf,mf, v ct,bf,mf,ds,ap,v Tiles * Menu * * Sidebar * * spinner * Accordion * * Buttons set * ? Rating * Progress bars * Carousel List view * Slider * …. Step 2 Check UI Components Comparison Table
  • 21. How ? How to choose a JavaScript wisely ? Item Library Notes Backup ‘Visible’ part UI - Light box Colorbox No browser issue UI - Button dropdown Bootstrap UI - Button group Bootstrap UI - Tabs Bootstrap UI - Pager Bootstrap Effect - Flip Flip! Non javascript animation ‘Invisible’ part MVC Backbone.js Community support Templating Handlebars Learning curve Module loader Require.js Optional Step 3 Make a decision
  • 22. How ? How to choose a JavaScript wisely ? Step 4 - Test , Implement - Doesn’t work 100% ? Don’t give up! Common Scenarios (rank by complexity level ) • one UI library solve all problem - yippee ! • one UI library + one or two support plugins example : jQueryUI + jQuery UI Touch Punch • one UI library ( + one or two plugins ) + browser support + conflict solving example : x + y + modernizr.js x + y + old school JavaScript debugging
  • 23. Mobile generation -> Rich interactive web application and dynamic content -> A niche job market is opened up which is full of potential With the support of large library community, JavaScript still does what it does for stunning visual experience and it is secretly expanding to nearly every corner of web development 4 steps workflow for effective decision making - MCMT Wrap it up • Why ? • What ? • How ?
  • 24. Grid / Spreadsheet: SlickGrid Windows 8 style tiles: Metro UI Drag-and –drop grid: gridster.js Flip book: Turn.js Twitter Bootstrap Extension : Fuel UX Light weight bootstrap substitution: w2ui Small helper libraries: jquery.imgpreload, jquery-cookie events support: Cascading grid layout: Isotope , Masonry.js Sliders: Royal slider , circular, Flexslider2 Resources - short list of small libraries worth taking a look
  • 25. Repository and Resource Sites : https://github.com/ - large community http://jster.net/catalog - handy JavaScript library review site http://stackoverflow.com/ - find answers to JavaScript issues http://jsfiddle.net/ - test libraries online Blogs : http://www.paulirish.com/ http://ejohn.org/category/blog/ http://addyosmani.com/blog/ http://benalman.com/ http://james.padolsey.com/ http://www.jspatterns.com/ Resources
  • 26. { Thank You } Essential JavaScript Libraries for Frontend Designers and Developers Justin Hu web developer at EMU Design Email Justinhu-cg@msn.com