SlideShare a Scribd company logo
Front-End
                  Frameworks:
                a quick overview
Javier Cuevas
@javier_dev
Diacode.com
Front-End Development

HTML     CSS    Javascript
Frameworks
                                  Toolkits
                                  Libraries
              Front-End           Grid systems (CSS)
                                  Boilerplates (HTML)
                                  Syntatic Sugar
                                  ...
                Multiple names and approaches.
Same idea: make front-end development easier, faster, stronger.
Why do we need
 Front-End Superpowers?
• HTML is ugly and old.
• Javascript is ugly and old.
• CSS is not that ugly but is totally Anti-DRY.
• User Interfaces are each day more complex.
• Cross-browser compatibility.
• Device Heterogeneity: tablets, smartphones,
  desktops... A jungle of different screens.
HTML
HAML
        • Syntatic sugar for HTML and ERB (embedded Ruby).
        • HAML is for Ruby, but there are equivalents for other
             languages (SHPAML, GHRML).

        • White space aware syntax.
HAML                                    HTML
#profile                                <div id="profile">
  .left.column                            <div class="left column">
    #date= print_date                       <div id="date"><%= print_date %></div>
    %p.address= current_user.address        <p class="address"><%= current_user.address %></p>
  .right.column                           </div>
    #email= current_user.email            <div class="right column">
    #bio= current_user.bio                  <div id="email"><%= current_user.email %></div>
                                            <div id="bio"><%= current_user.bio %></div>
                                          </div>
                                        </div>

                                                                      http://bit.ly/VzHwc
CSS
SASS
• CSS on steroids: variables, mixins, nested rules and
       math functions.

• Two different syntaxes: .SCSS (new) and .SASS (old)
• SCSS/SASS is compiled to CSS on the server side.
SCSS                            CSS
$blue: #3bbfce;                 .content {
$margin: 16px;                    color: #3bbfce;
                                }
.content{
  color: $blue;                 .content p {
  p {                             padding: 8px;
    padding: $margin / 2;         margin: 8px;
    margin: $margin / 2;          border-color: #3bbfce;
    border-color: $blue;        }
  }
}                                                   http://bit.ly/3wRpzR
LESS
• Very similar to SASS.
• Main difference is that it gives you a “client side”
   version. This means LESS code is transformed to CSS
   into the browser client using Javascript.

• It does have a server side version too.
• Fans of SASS often are haters of LESS and viceversa.
• Some discussion about SASS vs LESS:
   http://wrangl.com/sass-v-less


                                              http://bit.ly/12gGr0
JAVASCRIPT
jQuery
• Do I have to tell you what is jQuery
  about? :)
• Briefly:
  jQuery is a Javascript library to easily
  change and animate the DOM (HTML
  nodes).
• I would say it’s a must in every project.
                                    http://jquery.com/
jQuery Mobile
• Despite of its name, it is more about the
  layout (user interface) and a bit less about
  Javascript superpowers.
• Is a whole framework to develop web
  applications for mobile devices by using
  HTML5 features.
• By using Phonegap you can embed your
  web mobile app into a native mobile app.
                              http://jquerymobile.com/
CoffeeScript
•   Is an alternative syntax for Javascript.

•   Coffeescript files compile into Javascript.

•   Basically offers syntactic sugar for JS.

•   Is white space aware, i.e. indentation instead of curly braces
    everywhere.

    CoffeScript                        Javascript
    $ ->                               $(function() {
      $("body").html "Hello!"             $("body").html("Hello!");
                                       })




                                                    http://coffeescript.org/
Modernizr
• Is a Javascript library allowing you to use CSS3
  & HTML5 while maintaining control over
  unsupported browsers.
• Detects what features are supported by the
  user’s browser.
• If some features are missing you can still use
  them by using “polyfills” (JS scripts that imitate
  HTML5/CSS3 features for older browsers).

                               http://www.modernizr.com/docs/
Handlebars
      • Is a Javascript template system.
      • Lets you populate data from JS (for instance AJAX
           responses) into HTML without having to write the
           chunk of HTML into the JS code.

      • Extends Mustache template system.
TEMPLATE               JAvASCRIPT                          OUTPUT
<div class="entry">    var context = {                     <div class="entry">
  <h1>{{title}}</h1>     title: "My New Post",               <h1>My New Post</h1>
  <div class="body">     body: "This is my first post!"}     <div class="body">
    {{body}}           var html    = template(context);        This is my first post!
  </div>                                                     </div>
</div>                                                     </div>



                                                              http://handlebarsjs.com/
Backbone
• Is a JavaScript framework that allows you to
   structure your Javascript code in an MVC (Model,
   View, Controller) fashion.

• Instead of storing data in HTML data attributes,
   store them into JS Models.

• Views (HTML) change when models change.
• Using it together with Node.js (JS on the server
   side), you can share code between client and server,
   i.e. same models in both sides.


                                           http://bit.ly/dk9Eki
Spine
• Same idea than Backbone: MVC for Javascript
• It’s pretty light weight.
• Has a mobile extension (Spine Mobile), that can be
   combined with Phonegap to build “native” mobile
   apps.

• It’s written in CoffeeScript, so if you don’t know
   CoffeeScript it could be harder to use it.

• There is an O’Reilly book by the author of Spine
   http://oreil.ly/pbxy4I

                                            http://bit.ly/tozpso
HTML + CSS + JS
HTML5 Boilerplate
•   Gives you a starting point for a new web app.
•   Is a package that includes several useful things ready to use:
    •   CSS resets
    •   jQuery
    •   Modernizr
    •   Layout with HTML5 doctype
    •   Cross-browser compatibility (even IE6 with Chrome Frame)
    •   Mobile browser-optimization
    •   Google Analytics snippet
    •   .htaccess optimizations
    •   ....
                                                      http://bit.ly/8Xe4wy
Twitter Bootstrap
• Developed by Twitter’s programmers.
• Includes:
 • Grid system with support for Responsive Design.
 • CSS classes for buttons, forms, tables, icons,
     navigation bars, labels, badges, progress bars, etc.

  • Javascript UI widgets: modals, menu dropdowns,
     images slider, accordions, alerts, notifications, etc.

• Highly customizable using LESS.
                                               http://bit.ly/q2G9Mm
Zurb Foundation
•   Very similar to Twitter Bootstrap. Made by Zurb.

•   Zurb’s developers stand very hard for some relevant ideas:

    •   960 pixels designs are dead.

    •   Develop a specific mobile version of your site is painful,
        so you must go for Responsive Design.

    •   With a tool like Zurb Foundation you can do
        Rapid Prototyping in HTML5 (no more vector
        wireframes).
        http://foundation.zurb.com/prototyping.php
        http://www.youtube.com/watch?v=V2EjipWZ7co

                                                     http://bit.ly/p9rfyt
There are hundred
of tools like these.
Some of them are
even more complex
    and exotic.
Learning all of them
   is impossible.
Don’t be afraid of
trying new things.
Use the ones you feel
will help you out and
 let the hype aside.
Thanks for coming!

More Related Content

What's hot

Angular 14.pptx
Angular 14.pptxAngular 14.pptx
Angular 14.pptx
MohaNedGhawar
 
CSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive DesignCSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive Design
Zoe Gillenwater
 
Learn react-js
Learn react-jsLearn react-js
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
Jadson Santos
 
Javascript
JavascriptJavascript
Javascript
Manav Prasad
 
CSS3 Media Queries
CSS3 Media QueriesCSS3 Media Queries
CSS3 Media Queries
Russ Weakley
 
Intro to React
Intro to ReactIntro to React
Intro to React
Justin Reock
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
Arulmurugan Rajaraman
 
JavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM ManipulationJavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM Manipulation
borkweb
 
Angular
AngularAngular
Angular
Lilia Sfaxi
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
David Parsons
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
Eyal Vardi
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
Abhishekchauhan863165
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page ApplicationKMS Technology
 
Angular
AngularAngular
Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdf
Bareen Shaikh
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
Ashok Raj
 

What's hot (20)

Angular 14.pptx
Angular 14.pptxAngular 14.pptx
Angular 14.pptx
 
CSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive DesignCSS3, Media Queries, and Responsive Design
CSS3, Media Queries, and Responsive Design
 
Learn react-js
Learn react-jsLearn react-js
Learn react-js
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
Javascript
JavascriptJavascript
Javascript
 
CSS3 Media Queries
CSS3 Media QueriesCSS3 Media Queries
CSS3 Media Queries
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
JavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM ManipulationJavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM Manipulation
 
Angular
AngularAngular
Angular
 
AngularJS
AngularJS AngularJS
AngularJS
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
JavaScript and BOM events
JavaScript and BOM eventsJavaScript and BOM events
JavaScript and BOM events
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
 
Introduction To Single Page Application
Introduction To Single Page ApplicationIntroduction To Single Page Application
Introduction To Single Page Application
 
Angular
AngularAngular
Angular
 
Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdf
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
 

Similar to Front-End Frameworks: a quick overview

Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Erin M. Kidwell
 
Java script
Java scriptJava script
Java script
umesh patil
 
Java script
Java scriptJava script
Java script
sanjay joshi
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
Naga Harish M
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
Michael Enslow
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
netc2012
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
koppenolski
 
Survive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and TricksSurvive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and Tricks
Juho Vepsäläinen
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
zonathen
 
Introduction to Jquery
Introduction to JqueryIntroduction to Jquery
Introduction to Jquery
Gurpreet singh
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
Ashlimarie
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
Sachin Walvekar
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
Chen-Tien Tsai
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
Derek Jacoby
 
Ease into HTML5 and CSS3
Ease into HTML5 and CSS3Ease into HTML5 and CSS3
Ease into HTML5 and CSS3
Brian Moon
 
Bootstrap [part 1]
Bootstrap [part 1]Bootstrap [part 1]
Bootstrap [part 1]
Ghanshyam Patel
 
Web design-workflow
Web design-workflowWeb design-workflow
Web design-workflowPeter Kaizer
 

Similar to Front-End Frameworks: a quick overview (20)

Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
 
Java script
Java scriptJava script
Java script
 
Java script
Java scriptJava script
Java script
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with Grails
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
 
Survive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and TricksSurvive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and Tricks
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
 
Introduction to Jquery
Introduction to JqueryIntroduction to Jquery
Introduction to Jquery
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
 
Ease into HTML5 and CSS3
Ease into HTML5 and CSS3Ease into HTML5 and CSS3
Ease into HTML5 and CSS3
 
Html5 public
Html5 publicHtml5 public
Html5 public
 
Bootstrap [part 1]
Bootstrap [part 1]Bootstrap [part 1]
Bootstrap [part 1]
 
Web design-workflow
Web design-workflowWeb design-workflow
Web design-workflow
 

More from Diacode

CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
Diacode
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
Diacode
 
Introduction to Elixir
Introduction to ElixirIntroduction to Elixir
Introduction to Elixir
Diacode
 
Startup nomads
Startup nomadsStartup nomads
Startup nomads
Diacode
 
Ruby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpecRuby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpec
Diacode
 
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Diacode
 
TLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers MadridTLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers Madrid
Diacode
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
Diacode
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
Diacode
 
Presentación de Kogi
Presentación de KogiPresentación de Kogi
Presentación de KogiDiacode
 
Educación: The Next Big Thing
Educación: The Next Big ThingEducación: The Next Big Thing
Educación: The Next Big Thing
Diacode
 
Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)
Diacode
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on Rails
Diacode
 

More from Diacode (13)

CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)CI/CD with Kubernetes, Helm & Wercker (#madScalability)
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
 
Introduction to Elixir
Introduction to ElixirIntroduction to Elixir
Introduction to Elixir
 
Startup nomads
Startup nomadsStartup nomads
Startup nomads
 
Ruby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpecRuby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpec
 
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)Hacking your bank with Ruby and reverse engineering (Madrid.rb)
Hacking your bank with Ruby and reverse engineering (Madrid.rb)
 
TLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers MadridTLKR.io @ Betabeers Madrid
TLKR.io @ Betabeers Madrid
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
 
Métricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyectoMétricas para hacer crecer tu proyecto
Métricas para hacer crecer tu proyecto
 
Presentación de Kogi
Presentación de KogiPresentación de Kogi
Presentación de Kogi
 
Educación: The Next Big Thing
Educación: The Next Big ThingEducación: The Next Big Thing
Educación: The Next Big Thing
 
Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)Taller de Introducción a Ruby on Rails (2ª parte)
Taller de Introducción a Ruby on Rails (2ª parte)
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on Rails
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

Front-End Frameworks: a quick overview

  • 1. Front-End Frameworks: a quick overview Javier Cuevas @javier_dev Diacode.com
  • 2. Front-End Development HTML CSS Javascript
  • 3. Frameworks Toolkits Libraries Front-End Grid systems (CSS) Boilerplates (HTML) Syntatic Sugar ... Multiple names and approaches. Same idea: make front-end development easier, faster, stronger.
  • 4. Why do we need Front-End Superpowers? • HTML is ugly and old. • Javascript is ugly and old. • CSS is not that ugly but is totally Anti-DRY. • User Interfaces are each day more complex. • Cross-browser compatibility. • Device Heterogeneity: tablets, smartphones, desktops... A jungle of different screens.
  • 6. HAML • Syntatic sugar for HTML and ERB (embedded Ruby). • HAML is for Ruby, but there are equivalents for other languages (SHPAML, GHRML). • White space aware syntax. HAML HTML #profile <div id="profile"> .left.column <div class="left column"> #date= print_date <div id="date"><%= print_date %></div> %p.address= current_user.address <p class="address"><%= current_user.address %></p> .right.column </div> #email= current_user.email <div class="right column"> #bio= current_user.bio <div id="email"><%= current_user.email %></div> <div id="bio"><%= current_user.bio %></div> </div> </div> http://bit.ly/VzHwc
  • 7. CSS
  • 8. SASS • CSS on steroids: variables, mixins, nested rules and math functions. • Two different syntaxes: .SCSS (new) and .SASS (old) • SCSS/SASS is compiled to CSS on the server side. SCSS CSS $blue: #3bbfce; .content { $margin: 16px; color: #3bbfce; } .content{ color: $blue; .content p { p { padding: 8px; padding: $margin / 2; margin: 8px; margin: $margin / 2; border-color: #3bbfce; border-color: $blue; } } } http://bit.ly/3wRpzR
  • 9. LESS • Very similar to SASS. • Main difference is that it gives you a “client side” version. This means LESS code is transformed to CSS into the browser client using Javascript. • It does have a server side version too. • Fans of SASS often are haters of LESS and viceversa. • Some discussion about SASS vs LESS: http://wrangl.com/sass-v-less http://bit.ly/12gGr0
  • 11. jQuery • Do I have to tell you what is jQuery about? :) • Briefly: jQuery is a Javascript library to easily change and animate the DOM (HTML nodes). • I would say it’s a must in every project. http://jquery.com/
  • 12. jQuery Mobile • Despite of its name, it is more about the layout (user interface) and a bit less about Javascript superpowers. • Is a whole framework to develop web applications for mobile devices by using HTML5 features. • By using Phonegap you can embed your web mobile app into a native mobile app. http://jquerymobile.com/
  • 13. CoffeeScript • Is an alternative syntax for Javascript. • Coffeescript files compile into Javascript. • Basically offers syntactic sugar for JS. • Is white space aware, i.e. indentation instead of curly braces everywhere. CoffeScript Javascript $ -> $(function() { $("body").html "Hello!" $("body").html("Hello!"); }) http://coffeescript.org/
  • 14. Modernizr • Is a Javascript library allowing you to use CSS3 & HTML5 while maintaining control over unsupported browsers. • Detects what features are supported by the user’s browser. • If some features are missing you can still use them by using “polyfills” (JS scripts that imitate HTML5/CSS3 features for older browsers). http://www.modernizr.com/docs/
  • 15. Handlebars • Is a Javascript template system. • Lets you populate data from JS (for instance AJAX responses) into HTML without having to write the chunk of HTML into the JS code. • Extends Mustache template system. TEMPLATE JAvASCRIPT OUTPUT <div class="entry"> var context = { <div class="entry"> <h1>{{title}}</h1> title: "My New Post", <h1>My New Post</h1> <div class="body"> body: "This is my first post!"} <div class="body"> {{body}} var html = template(context); This is my first post! </div> </div> </div> </div> http://handlebarsjs.com/
  • 16. Backbone • Is a JavaScript framework that allows you to structure your Javascript code in an MVC (Model, View, Controller) fashion. • Instead of storing data in HTML data attributes, store them into JS Models. • Views (HTML) change when models change. • Using it together with Node.js (JS on the server side), you can share code between client and server, i.e. same models in both sides. http://bit.ly/dk9Eki
  • 17. Spine • Same idea than Backbone: MVC for Javascript • It’s pretty light weight. • Has a mobile extension (Spine Mobile), that can be combined with Phonegap to build “native” mobile apps. • It’s written in CoffeeScript, so if you don’t know CoffeeScript it could be harder to use it. • There is an O’Reilly book by the author of Spine http://oreil.ly/pbxy4I http://bit.ly/tozpso
  • 18. HTML + CSS + JS
  • 19. HTML5 Boilerplate • Gives you a starting point for a new web app. • Is a package that includes several useful things ready to use: • CSS resets • jQuery • Modernizr • Layout with HTML5 doctype • Cross-browser compatibility (even IE6 with Chrome Frame) • Mobile browser-optimization • Google Analytics snippet • .htaccess optimizations • .... http://bit.ly/8Xe4wy
  • 20. Twitter Bootstrap • Developed by Twitter’s programmers. • Includes: • Grid system with support for Responsive Design. • CSS classes for buttons, forms, tables, icons, navigation bars, labels, badges, progress bars, etc. • Javascript UI widgets: modals, menu dropdowns, images slider, accordions, alerts, notifications, etc. • Highly customizable using LESS. http://bit.ly/q2G9Mm
  • 21. Zurb Foundation • Very similar to Twitter Bootstrap. Made by Zurb. • Zurb’s developers stand very hard for some relevant ideas: • 960 pixels designs are dead. • Develop a specific mobile version of your site is painful, so you must go for Responsive Design. • With a tool like Zurb Foundation you can do Rapid Prototyping in HTML5 (no more vector wireframes). http://foundation.zurb.com/prototyping.php http://www.youtube.com/watch?v=V2EjipWZ7co http://bit.ly/p9rfyt
  • 22. There are hundred of tools like these.
  • 23. Some of them are even more complex and exotic.
  • 24. Learning all of them is impossible.
  • 25. Don’t be afraid of trying new things.
  • 26. Use the ones you feel will help you out and let the hype aside.