Slide 1

Slide 1 text

With Yeoman (Yo, Grunt, Bower) Automating Front-end Workflow Yeoman (n) 1. A noble servant, carrying out various duties for the sovereign. Associated with hard toil. 2. Your new favorite web application stack and development tool.http://yeoman.io

Slide 2

Slide 2 text

Ahmad Nassri Instructors & Mentors Pearl Chen API Master @ Mashape DevRel @ Google

Slide 3

Slide 3 text

Basic / Typical Workflow 1. download external libraries and frameworks (jquery, bootstrap, etc …) 2. setup dev environments (Apache, localhost) 3. write code (what we are paid to do) 4. refresh browser all the time (manually) 5. fix bugs and solve common problems (we get paid for that too) 6. test on various screen resolutions (and manually refresh) 7. make code production ready (minify and concatenate) 8. commit to version control system

Slide 4

Slide 4 text

1. download external libraries and frameworks (jquery, bootstrap, etc …) 2. setup dev environments (Apache, localhost) 3. write code (what we are paid to do) 4. refresh browser all the time (manually) 5. fix bugs and solve common problems (we get paid for that too) 6. test on various screen resolutions (and manually refresh) 7. make code production ready (minify and concatenate) 8. commit to version control system Basic / Typical Workflow

Slide 5

Slide 5 text

Problem Solved! Scaffolds a boilerplate Build-processes Dependency management

Slide 6

Slide 6 text

WHY ?! Lint Resolve dependencies concatenate modules Flatten your CSS @imports Remove debugging statements Compress images Precompile templates Run tests in a variety of environments Revs asset paths for caching Affirm code quality Zero environment config Keep externals outside your repo Live reload

Slide 7

Slide 7 text

WHY ?!

Slide 8

Slide 8 text

WHO USES THIS STUFF ANYWAYS?

Slide 9

Slide 9 text

Check your JS with JSHint Check your CSS with CSS Lint Sample Tasks

Slide 10

Slide 10 text

Reload the browser when a file is changed Take care of assets expiration Sample Tasks

Slide 11

Slide 11 text

Sample Tasks Concatenate your files Optimize your images

Slide 12

Slide 12 text

SHUT UP AND SHOW US THE CODE!

Slide 13

Slide 13 text

OMG! SHOW ME MOAR! bit.ly/gruntsync Grunt - Synchronised Testing Between Browsers/Devices grunt-uncss Remove unused CSS across your project at build time grunt-responsive-images Generate multi-resolution (responsive) screenshots grunt-autoprefixer Parse CSS and add vendor-prefixed CSS properties using the Can I Use database. grunt-datauri create base64 encoded data-uris for css from images grunt-connect-proxy Provides a http proxy as middleware for grunt connect. grunt-assets-versioning Versioning static assets with Grunt grunt-remove-logging Grunt task to remove console logging statements grunt-selenium Run Selenium suite grunt-contrib-imageoptim Lower page-weight by applying optimizations to JPG/PNG/Gif

Slide 14

Slide 14 text

AND MORE!

Slide 15

Slide 15 text

No content