Building apps with ease...
Ronen Amiel
Who are you?
- Developer @wix
- Developing the wix app market platform
- Rank 140 battlefield gamer
Agenda
- The problem: creating, developing and deploying a web app quickly and efficiently
- The solution: an overview (+ live examples) about Yeoman, Bower, and Grunt
Let's start a new project
- Duplicate an existing project, change file and folder names, download 3rd party dependencies
- Compile stuff (sass, coffeescript) as we develop, run tests, refresh the page
- Finally compile everything, run tests, minify and concatenate javascript, make image optimisations and deploy to production
You're doing it wrong
- Automating these tasks will save you time and money
- It will also make your development process a lot more fun
- New developers will be able to dive into projects quicker
Yeoman
In the United States, yeomen were identified in the 18th and 19th centuries as non-slaveholding, small landowning, family farmers - Wikipedia
Now seriously
- Yeoman is a scaffolding tool for web apps
- It uses generators, each generator can generate a different type of app (angular, backbone, chrome extension, wix app)
- You can also create your own generators
- Generates parts for an existing app, not just the whole app
- Brings a lot of best practices for building a web app
Bower
- Bower is a front end package manager
- It helps us get our client-side dependencies (jquery, angular, wix ui lib)
- Over 6,000 packages already use bower!
- Installs every component once (not like npm, might get conflicts)
- You can also publish your own packages to bower or create your own private bower repo
More into bower
- Dependencies and their version are defined in a bower.json file
- Configuration per project can be defined in a .bowerrc file
- You don't need to keep dependencies in your project anymore
- All developers (and production) will have the same versions (keep an eye on ~)
Grunt
- Grunt is a JavaScript task runner
- It helps you automate your workflows
- Uses plugins to do tasks: running tests, compiling (sass, coffeescript), minify JavaScript, refresh your page
- Uses a Gruntfile.js to define and configure tasks for your projects
Let's look at a Gruntfile
The end
Questions?
Up and running with ease...
By Ronen Amiel
Up and running with ease...
- 575