SlideShare a Scribd company logo
Rapidly ScaffoldYour Front-End
withYeoman
AngularJS,Twitter Bootstrap and Bower
are just some of the Buzzwords these slides contain
• is 26 years old
• studied Computer Science at Uni Augsburg
• has an affinity for scripting for 15 years
• passionate PHP & JS developer
• on board the Mayflower since August 2012
Simon Waibl
@seym - github/elseym - f/simon.waibl
Yeoman
“Modern workflows for modern web apps”
http://yeoman.io/
Yeoman
“Modern workflows for modern web apps”
http://yeoman.io/
1. Installation via npm:
`npm -g install grunt-cli yo`
2. Create a new web app with:
`yo webapp`
3. ? ? ?
4. ...profit.
Contents
• Yeoman - Modern workflows for modern web apps
• `yo`, generators, sub-generators, generator-generator
• `bower`, packages, configuration, custom endpoints, contributing
• `grunt`, tasks, dev-server, testing and building
• deployment
• AngularJS - HTML enhanced for web apps!
• angular-ui-bootstrap, routes, filters, directives
• Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
`yo`
“Modern workflows for modern web apps”
• scaffolds out new applications
via generators
(like webapp, angular, and many more)
• writes grunt configs
• invokes grunt tasks
http://yeoman.io/
`yo` - The generator
“Modern workflows for modern web apps”
• like a “template for your app”
• type I - the boilerplate copier
copies existing boilerplates to the
application directory
• type II - the application scaffolder
for build systems, sub-generators,
dependency management, etc.
http://yeoman.io/
`yo` - The sub-generator
“Modern workflows for modern web apps”
• like a “specific sub-template”
• used for views, models, themes,
etc.
• called manually and/or by the
generator itself
invoke with `yo generator:sub-generator`
http://yeoman.io/
`yo` - The generator-generator
“Modern workflows for modern web apps”
• like a “meta-template”
• helps building your own
application-scaffolder
http://yeoman.io/
`yo` - Find generators
“Modern workflows for modern web apps”
• generators are installed via npm
`npm search yeoman-generator`
• common generators are
webapp, angular, ember, karma, etc.
http://yeoman.io/
Contents
• Yeoman - Modern workflows for modern web apps
• `yo`, generators, sub-generators, generator-generator
• `bower`, packages, configuration, custom endpoints, contributing
• `grunt`, tasks, dev-server, testing and building
• deployment
• AngularJS - HTML enhanced for web apps!
• angular-ui-bootstrap, routes, filters, directives
• Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
`bower`
“A package manager for the web”
• installs front-end assets, libraries
and frameworks
• manages dependencies
• also a package-browser
http://bower.io/
`bower` - Usage
“A package manager for the web”
• `bower (un)?install (<pkg>)*`
(un-)installs specified packages
• `bower (search|list|info) (<pkg>)*`
searches available, lists installed or prints
information
http://bower.io/
`bower` - Configuration
“A package manager for the web”
• configure via .bowerrc-file
the .bowerrc file resides either
globally in ~ or locally in .
• specify a custom directory,
a custom .json file for dependency
information
and multiple endpoints and their
order
http://bower.io/
`bower` - Configuration
“A package manager for the web”
• configure via .bowerrc-file
the .bowerrc file resides either
globally in ~ or locally in .
• specify a custom directory,
a custom .json file for dependency
information
and multiple endpoints and their
order
http://bower.io/
$ cat .bowerrc
{
"directory": "bower_components",
"endpoint": "https://bower.mycompany.com",
"json": "bower.json",
"searchpath": [
"https://bower.herokuapp.com"
],
"shorthand_resolver": "git://example.com/{{{ organization }}}/{{{ package }}}.git"
}
`bower` - Custom endpoints
“A package manager for the web”
• endpoints are also known as
registries or repositories
• use as main endpoint
and / or additional endpoints
• have your own endpoint with
bower-server
(https://github.com/twitter/bower-server)
http://bower.io/
`bower` - Contributing
“A package manager for the web”
• interactively create a bower.json
by running `bower init`
• provide necessary information
such as: name, version, dependencies, etc.
• register your new package at an
endpoint
`bower register <pkgname> <endpoint>`
• pkgname is reserved on a first
come, first serve basis
http://bower.io/
Contents
• Yeoman - Modern workflows for modern web apps
• `yo`, generators, sub-generators, generator-generator
• `bower`, packages, configuration, custom endpoints, contributing
• `grunt`, tasks, dev-server, testing and building
• deployment
• AngularJS - HTML enhanced for web apps!
• angular-ui-bootstrap, routes, filters, directives
• Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
`grunt`
“The Javascript task runner”
• runs predefined workflows
a.k.a tasks for you
• common yeoman tasks are
server, watch, test, build, karma, etc.
• invoked manually or from
within `yo`
http://gruntjs.com/
`grunt` - Task: server
“The Javascript task runner”
• `grunt server` starts a dev-server
on localhost:9000
• watches your project directory
and reloads your browser on
changes
• compiles coffee, sass, scss, etc.
http://gruntjs.com/
`grunt` - Task: test
“The Javascript task runner”
• starts and connects to karma
server
• runs tests provided in ./test
http://gruntjs.com/
`grunt` - Task: build
“The Javascript task runner”
• `grunt build` or simply `grunt`
builds your project
this starts lots of compiling, compressing,
linting, testing, fancyfying and stuffing your
source into the target directory
• target directory defaults to ./dist
http://gruntjs.com/
Contents
• Yeoman - Modern workflows for modern web apps
• `yo`, generators, sub-generators, generator-generator
• `bower`, packages, configuration, custom endpoints, contributing
• `grunt`, tasks, dev-server, testing and building
• deployment
• AngularJS - HTML enhanced for web apps!
• angular-ui-bootstrap, routes, filters, directives
• Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes!
`yo` - Deployment
“Modern workflows for modern web apps”
• issue `grunt` to run the build-task
• add and commit ./dist to git
• use `git subtree push` to deploy
`git subtree push --prefix dist origin gh-pages`
deploys to GitHub Pages
http://yeoman.io/
AngularJS
“HTML enhanced for web apps!”
http://angularjs.org/
AngularJS
“HTML enhanced for web apps!”
• Create your own elements
• Make your views dynamic through data binding
• Apply the MVC pattern to your web app
• ...profit. Yet again!
http://angularjs.org/
Contents
• Yeoman - Modern workflows for modern web apps
• `yo`, generators, sub-generators, generator-generator
• `bower`, packages, configuration, custom endpoints, contributing
• `grunt`, tasks, dev-server, testing and building
• deployment
• AngularJS - HTML enhanced for web apps!
• angular-ui/bootstrap, routes, filters, directives
• Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
angular.js - Bootstrap
“HTML enhanced for web apps!”
• angular-ui/bootstrap is the Twitter
Bootstrap-JS based on Angular
Tip: use angular-bootstrap via bower
• Bootstrap-components are
accessible as Angular-directives
• CSS & assets have to be installed
separately
Tip: use compass-twitter-bootstrap via bower
http://angularjs.org/
angular.js - Routes
“HTML enhanced for web apps!”
• AngularJS supports hash-routing
• creating a new route via yo
`yo angular:route <routename>`
• ...creates a new view, a new
controller and adds <routename>
to the router
• ...creates a test for the controller
http://angularjs.org/
angular.js - Filters
“HTML enhanced for web apps!”
• use filters in views to format data
• creating a new filter via yo
`yo angular:filter <filtername>`
• ...creates a new filter
• ...creates a test for the filter
http://angularjs.org/
angular.js - Directives
“HTML enhanced for web apps!”
• directives define your own,
mega-powerful elements
• creating a new directive via yo
`yo angular:directive <directivename>`
• ...creates a new directive
• ...creates a test for the directive
http://angularjs.org/
Live!
Kittycarousel with Angular & Bootstrap in 10 Minutes
Q & A

More Related Content

What's hot

Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)
Abhinav Rastogi
 
Vuejs getting-started - Extended Version
Vuejs getting-started - Extended VersionVuejs getting-started - Extended Version
Vuejs getting-started - Extended Version
Murat Doğan
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performance
mennovanslooten
 
Frontend Workflow
Frontend WorkflowFrontend Workflow
Frontend Workflow
DelphiCon
 
Best Practices for creating WP REST API by Galkin Nikita
Best Practices for creating WP REST API by Galkin NikitaBest Practices for creating WP REST API by Galkin Nikita
Best Practices for creating WP REST API by Galkin Nikita
WordCamp Kyiv
 
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by DefaultJS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JSFestUA
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
Nicholas Zakas
 
Azure Web SItes - Things they don't teach kids in school - Multi-Mania
Azure Web SItes - Things they don't teach kids in school - Multi-ManiaAzure Web SItes - Things they don't teach kids in school - Multi-Mania
Azure Web SItes - Things they don't teach kids in school - Multi-Mania
Maarten Balliauw
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Matthew Davis
 
Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16
tshellberg
 
Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Don't Over-React - just use Vue!
Don't Over-React - just use Vue!
Raymond Camden
 
Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
Nicholas Zakas
 
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber ExampleDockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber Example
Shashikant Jagtap
 
Coding with jetpack
Coding with jetpackCoding with jetpack
Coding with jetpack
Rich Collier
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Andrea Cardinali
 
JavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and PerformanceJavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and Performance
Nicholas Zakas
 
Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3
Vishal Biyani
 

What's hot (20)

Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)
 
Vuejs getting-started - Extended Version
Vuejs getting-started - Extended VersionVuejs getting-started - Extended Version
Vuejs getting-started - Extended Version
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performance
 
Frontend Workflow
Frontend WorkflowFrontend Workflow
Frontend Workflow
 
Best Practices for creating WP REST API by Galkin Nikita
Best Practices for creating WP REST API by Galkin NikitaBest Practices for creating WP REST API by Galkin Nikita
Best Practices for creating WP REST API by Galkin Nikita
 
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by DefaultJS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by Default
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
 
A team 43 C
A team 43 CA team 43 C
A team 43 C
 
Azure Web SItes - Things they don't teach kids in school - Multi-Mania
Azure Web SItes - Things they don't teach kids in school - Multi-ManiaAzure Web SItes - Things they don't teach kids in school - Multi-Mania
Azure Web SItes - Things they don't teach kids in school - Multi-Mania
 
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpOptimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
Optimising Your Front End Workflow With Symfony, Twig, Bower and Gulp
 
Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16Nürnberg WooCommerce Talk - 11/24/16
Nürnberg WooCommerce Talk - 11/24/16
 
Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Don't Over-React - just use Vue!
Don't Over-React - just use Vue!
 
Enough with the JavaScript already!
Enough with the JavaScript already!Enough with the JavaScript already!
Enough with the JavaScript already!
 
Responsive interfaces
Responsive interfacesResponsive interfaces
Responsive interfaces
 
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber ExampleDockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber Example
 
Coding with jetpack
Coding with jetpackCoding with jetpack
Coding with jetpack
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
 
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
Gestione avanzata di WordPress con WP-CLI - WordCamp Torino 2017 - Andrea Car...
 
JavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and PerformanceJavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and Performance
 
Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3
 

Similar to Rapidly scaffold your frontend with yeoman

Modern Front End Tools & Workflow
Modern Front End Tools & WorkflowModern Front End Tools & Workflow
Modern Front End Tools & Workflow
Adir Amsalem
 
Bootstrapping angular js with bower grunt yeoman
Bootstrapping angular js with bower grunt yeomanBootstrapping angular js with bower grunt yeoman
Bootstrapping angular js with bower grunt yeoman
Makarand Bhatambarekar
 
Using JHipster 4 for generating Angular/Spring Boot apps
Using JHipster 4 for generating Angular/Spring Boot appsUsing JHipster 4 for generating Angular/Spring Boot apps
Using JHipster 4 for generating Angular/Spring Boot apps
Yakov Fain
 
Yeoman
YeomanYeoman
Yeoman
ranesco
 
Angular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and WorkshopAngular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and Workshop
Nitin Bhojwani
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play framework
Suman Adak
 
Building JavaScript
Building JavaScriptBuilding JavaScript
Building JavaScript
Brady Clifford
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot apps
Yakov Fain
 
Using Jhipster 4 for Generating Angular/Spring Boot Apps
Using Jhipster 4 for Generating Angular/Spring Boot AppsUsing Jhipster 4 for Generating Angular/Spring Boot Apps
Using Jhipster 4 for Generating Angular/Spring Boot Apps
VMware Tanzu
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebChris Canal
 
Yeoman - Santa Barbara JavaScript Meetup
Yeoman - Santa Barbara JavaScript MeetupYeoman - Santa Barbara JavaScript Meetup
Yeoman - Santa Barbara JavaScript Meetup
Tim Doherty
 
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
 
AngularJS
AngularJSAngularJS
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
Marcus Hellberg
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
Betclic Everest Group Tech Team
 
Chaione Ember.js Training
Chaione Ember.js TrainingChaione Ember.js Training
Chaione Ember.js Training
aortbals
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot apps
Yakov Fain
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJS
Gunnar Hillert
 
Jenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
Jenkins-Koji plugin presentation on Python & Ruby devel group @ BrnoJenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
Jenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
Vaclav Tunka
 

Similar to Rapidly scaffold your frontend with yeoman (20)

Modern Front End Tools & Workflow
Modern Front End Tools & WorkflowModern Front End Tools & Workflow
Modern Front End Tools & Workflow
 
Bootstrapping angular js with bower grunt yeoman
Bootstrapping angular js with bower grunt yeomanBootstrapping angular js with bower grunt yeoman
Bootstrapping angular js with bower grunt yeoman
 
Using JHipster 4 for generating Angular/Spring Boot apps
Using JHipster 4 for generating Angular/Spring Boot appsUsing JHipster 4 for generating Angular/Spring Boot apps
Using JHipster 4 for generating Angular/Spring Boot apps
 
Yeoman
YeomanYeoman
Yeoman
 
Angular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and WorkshopAngular Meetup 1 - Angular Basics and Workshop
Angular Meetup 1 - Angular Basics and Workshop
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play framework
 
Building JavaScript
Building JavaScriptBuilding JavaScript
Building JavaScript
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot apps
 
Using Jhipster 4 for Generating Angular/Spring Boot Apps
Using Jhipster 4 for Generating Angular/Spring Boot AppsUsing Jhipster 4 for Generating Angular/Spring Boot Apps
Using Jhipster 4 for Generating Angular/Spring Boot Apps
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
Yeoman - Santa Barbara JavaScript Meetup
Yeoman - Santa Barbara JavaScript MeetupYeoman - Santa Barbara JavaScript Meetup
Yeoman - Santa Barbara JavaScript Meetup
 
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
 
AngularJS
AngularJSAngularJS
AngularJS
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Chaione Ember.js Training
Chaione Ember.js TrainingChaione Ember.js Training
Chaione Ember.js Training
 
Using JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot appsUsing JHipster for generating Angular/Spring Boot apps
Using JHipster for generating Angular/Spring Boot apps
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJS
 
Jenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
Jenkins-Koji plugin presentation on Python & Ruby devel group @ BrnoJenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
Jenkins-Koji plugin presentation on Python & Ruby devel group @ Brno
 

Recently uploaded

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
 
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
 
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
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
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
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
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
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
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
 
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
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
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
 

Recently uploaded (20)

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
 
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...
 
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
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
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
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
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
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
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...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
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
 

Rapidly scaffold your frontend with yeoman

  • 1. Rapidly ScaffoldYour Front-End withYeoman AngularJS,Twitter Bootstrap and Bower are just some of the Buzzwords these slides contain
  • 2. • is 26 years old • studied Computer Science at Uni Augsburg • has an affinity for scripting for 15 years • passionate PHP & JS developer • on board the Mayflower since August 2012 Simon Waibl @seym - github/elseym - f/simon.waibl
  • 3. Yeoman “Modern workflows for modern web apps” http://yeoman.io/
  • 4. Yeoman “Modern workflows for modern web apps” http://yeoman.io/ 1. Installation via npm: `npm -g install grunt-cli yo` 2. Create a new web app with: `yo webapp` 3. ? ? ? 4. ...profit.
  • 5. Contents • Yeoman - Modern workflows for modern web apps • `yo`, generators, sub-generators, generator-generator • `bower`, packages, configuration, custom endpoints, contributing • `grunt`, tasks, dev-server, testing and building • deployment • AngularJS - HTML enhanced for web apps! • angular-ui-bootstrap, routes, filters, directives • Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
  • 6. `yo` “Modern workflows for modern web apps” • scaffolds out new applications via generators (like webapp, angular, and many more) • writes grunt configs • invokes grunt tasks http://yeoman.io/
  • 7. `yo` - The generator “Modern workflows for modern web apps” • like a “template for your app” • type I - the boilerplate copier copies existing boilerplates to the application directory • type II - the application scaffolder for build systems, sub-generators, dependency management, etc. http://yeoman.io/
  • 8. `yo` - The sub-generator “Modern workflows for modern web apps” • like a “specific sub-template” • used for views, models, themes, etc. • called manually and/or by the generator itself invoke with `yo generator:sub-generator` http://yeoman.io/
  • 9. `yo` - The generator-generator “Modern workflows for modern web apps” • like a “meta-template” • helps building your own application-scaffolder http://yeoman.io/
  • 10. `yo` - Find generators “Modern workflows for modern web apps” • generators are installed via npm `npm search yeoman-generator` • common generators are webapp, angular, ember, karma, etc. http://yeoman.io/
  • 11. Contents • Yeoman - Modern workflows for modern web apps • `yo`, generators, sub-generators, generator-generator • `bower`, packages, configuration, custom endpoints, contributing • `grunt`, tasks, dev-server, testing and building • deployment • AngularJS - HTML enhanced for web apps! • angular-ui-bootstrap, routes, filters, directives • Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
  • 12. `bower` “A package manager for the web” • installs front-end assets, libraries and frameworks • manages dependencies • also a package-browser http://bower.io/
  • 13. `bower` - Usage “A package manager for the web” • `bower (un)?install (<pkg>)*` (un-)installs specified packages • `bower (search|list|info) (<pkg>)*` searches available, lists installed or prints information http://bower.io/
  • 14. `bower` - Configuration “A package manager for the web” • configure via .bowerrc-file the .bowerrc file resides either globally in ~ or locally in . • specify a custom directory, a custom .json file for dependency information and multiple endpoints and their order http://bower.io/
  • 15. `bower` - Configuration “A package manager for the web” • configure via .bowerrc-file the .bowerrc file resides either globally in ~ or locally in . • specify a custom directory, a custom .json file for dependency information and multiple endpoints and their order http://bower.io/ $ cat .bowerrc { "directory": "bower_components", "endpoint": "https://bower.mycompany.com", "json": "bower.json", "searchpath": [ "https://bower.herokuapp.com" ], "shorthand_resolver": "git://example.com/{{{ organization }}}/{{{ package }}}.git" }
  • 16. `bower` - Custom endpoints “A package manager for the web” • endpoints are also known as registries or repositories • use as main endpoint and / or additional endpoints • have your own endpoint with bower-server (https://github.com/twitter/bower-server) http://bower.io/
  • 17. `bower` - Contributing “A package manager for the web” • interactively create a bower.json by running `bower init` • provide necessary information such as: name, version, dependencies, etc. • register your new package at an endpoint `bower register <pkgname> <endpoint>` • pkgname is reserved on a first come, first serve basis http://bower.io/
  • 18. Contents • Yeoman - Modern workflows for modern web apps • `yo`, generators, sub-generators, generator-generator • `bower`, packages, configuration, custom endpoints, contributing • `grunt`, tasks, dev-server, testing and building • deployment • AngularJS - HTML enhanced for web apps! • angular-ui-bootstrap, routes, filters, directives • Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
  • 19. `grunt` “The Javascript task runner” • runs predefined workflows a.k.a tasks for you • common yeoman tasks are server, watch, test, build, karma, etc. • invoked manually or from within `yo` http://gruntjs.com/
  • 20. `grunt` - Task: server “The Javascript task runner” • `grunt server` starts a dev-server on localhost:9000 • watches your project directory and reloads your browser on changes • compiles coffee, sass, scss, etc. http://gruntjs.com/
  • 21. `grunt` - Task: test “The Javascript task runner” • starts and connects to karma server • runs tests provided in ./test http://gruntjs.com/
  • 22. `grunt` - Task: build “The Javascript task runner” • `grunt build` or simply `grunt` builds your project this starts lots of compiling, compressing, linting, testing, fancyfying and stuffing your source into the target directory • target directory defaults to ./dist http://gruntjs.com/
  • 23. Contents • Yeoman - Modern workflows for modern web apps • `yo`, generators, sub-generators, generator-generator • `bower`, packages, configuration, custom endpoints, contributing • `grunt`, tasks, dev-server, testing and building • deployment • AngularJS - HTML enhanced for web apps! • angular-ui-bootstrap, routes, filters, directives • Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes!
  • 24. `yo` - Deployment “Modern workflows for modern web apps” • issue `grunt` to run the build-task • add and commit ./dist to git • use `git subtree push` to deploy `git subtree push --prefix dist origin gh-pages` deploys to GitHub Pages http://yeoman.io/
  • 25. AngularJS “HTML enhanced for web apps!” http://angularjs.org/
  • 26. AngularJS “HTML enhanced for web apps!” • Create your own elements • Make your views dynamic through data binding • Apply the MVC pattern to your web app • ...profit. Yet again! http://angularjs.org/
  • 27. Contents • Yeoman - Modern workflows for modern web apps • `yo`, generators, sub-generators, generator-generator • `bower`, packages, configuration, custom endpoints, contributing • `grunt`, tasks, dev-server, testing and building • deployment • AngularJS - HTML enhanced for web apps! • angular-ui/bootstrap, routes, filters, directives • Live! - Kittycarousel with Angular & Bootstrap in 10 Minutes
  • 28. angular.js - Bootstrap “HTML enhanced for web apps!” • angular-ui/bootstrap is the Twitter Bootstrap-JS based on Angular Tip: use angular-bootstrap via bower • Bootstrap-components are accessible as Angular-directives • CSS & assets have to be installed separately Tip: use compass-twitter-bootstrap via bower http://angularjs.org/
  • 29. angular.js - Routes “HTML enhanced for web apps!” • AngularJS supports hash-routing • creating a new route via yo `yo angular:route <routename>` • ...creates a new view, a new controller and adds <routename> to the router • ...creates a test for the controller http://angularjs.org/
  • 30. angular.js - Filters “HTML enhanced for web apps!” • use filters in views to format data • creating a new filter via yo `yo angular:filter <filtername>` • ...creates a new filter • ...creates a test for the filter http://angularjs.org/
  • 31. angular.js - Directives “HTML enhanced for web apps!” • directives define your own, mega-powerful elements • creating a new directive via yo `yo angular:directive <directivename>` • ...creates a new directive • ...creates a test for the directive http://angularjs.org/
  • 32. Live! Kittycarousel with Angular & Bootstrap in 10 Minutes
  • 33. Q & A