Jesse is a principal web engineer at frog where he works with the world’s leading companies, helping them to design, engineer, and bring to market meaningful products and services. He possesses a deep background in web application development, and has recently been focusing on single page web application architecture, the mobile web, and HTML5. Jesse’s first book, HTML5 Hacks, has been translated into multiple languages including Chinese and Japanese, and he has spoken internationally at conferences such as SXSW Interactive, Fluent Conf, Future Insights, Code PaLOUsa, and Øredev.
He previously held senior development and technical management positions at USAA, leading a team of mobile application developers in the planning, designing, development, testing, implementation and maintenance of USAA’s industry leading iOS, Android, Blackberry, and mobile web applications for USAA’s 8 million members deployed worldwide.
Jesse holds a B.A. in Art from Rice University and a Master’s degree in Curriculum and Instruction from the University of Texas at San Antonio.
9:00 AM -10:30 AM: Part 1 - Lessons 1-3
10:30 AM - 11:00 AM: BREAK
11:00 AM - 12:30 PM: Part 1 - Lessons 4-7
12:30 PM - 1:30 PM: LUNCH
1:30 PM - 3:00 PM: Part 2 - Lessons 8-10
3:00 PM - 3:30 PM: BREAK
3:30 PM - 5:00 PM: Part 2 - Lessons 11-13
Download Starter Kit https://github.com/emberjs/starter-kit/archive/v1.5.1.zip
Create a JSfiddle account http://jsfiddle.net/user/signup/
Ember Docs http://emberjs.com
Core Team http://emberjs.com/team/
Core Team Minutes http://emberjs.com/blog/tags/core-team-meeting-minutes.html
-
Ember Conventions and Developer ergonomics http://www.confreaks.com/videos/3298-emberconf2014-using-ember-to-make-the-seemingly-impossible-easy
-
Object Model - Array Computed Properties http://www.confreaks.com/videos/3457-emberconf2014-array-computing-properties
-
Ember Data http://www.confreaks.com/videos/3300-emberconf2014-ember-data-and-the-way-forward
-
Router and Controllers http://www.confreaks.com/videos/3309-emberconf2014-mr-router-embraces-the-controller
Here, we will set up some context by exploring the minimal viable Ember application
- frog Timesheet App
- RockNRollCall
http://jsfiddle.net/jdcravens/LDQaj/
http://jsfiddle.net/jdcravens/c8Y2b/
http://jsfiddle.net/jdcravens/9Rvg3/
http://jsfiddle.net/jdcravens/Vb7Q4/
http://jsfiddle.net/jdcravens/ny9La/
http://jsfiddle.net/jdcravens/MBjw5/
http://jsfiddle.net/jdcravens/BTH9X/
http://jsfiddle.net/jdcravens/M8VVH/
http://jsfiddle.net/jdcravens/C6BV4/
Open a separate tab in your browser, and follow along with the lessons. Be creative and create your own paradigms we go. As you will see most of the beginning examples are ‘Minecraft’ related, and centered around the Player object.
Try not to copy and paste. Force yourself to write the code on your own using the examples as a reference.
Handlebars Templating Engine
- http://www.raymondcamden.com/index.cfm/2012/4/19/Demo-of-Handlebars-and-why-you-should-consider-a-templating-enginel
- http://noahjablonski.com/handlebars-js-crash-course/
http://jsfiddle.net/jdcravens/X2KLd/
http://jsfiddle.net/jdcravens/zx2aR/
http://jsfiddle.net/jdcravens/Jw64Z/
NOTE: There will be more on Ember Built in Handlebars helpers (#outlet, #partial, #render) with the Router, and #yield with View layouts later.
Alter the dataset, and work with the Handlebars API to get comfortable with templating in Handlebars: http://handlebarsjs.com/
Try to work with as many of the helpers as you can:
- {{#with}}
- {{#each}}
- {{#if}}
- {{#unless}}
Handlebars Helpers API: http://emberjs.com/api/classes/Ember.Handlebars.helpers.html
http://jsfiddle.net/jdcravens/y7uSC/
http://jsfiddle.net/jdcravens/J99Gj/
http://jsfiddle.net/jdcravens/y8pKk/
NOTE: Custom View Helpers (later in the Views lessons)
Create your own Handlebars Helper. It can be a simple Helper or a View Helper. Use the GetBound Data helper to log the data.
- http://alexmatchneer.com/blog/2013/01/12/everything-you-never-wanted-to-know-about-the-ember-run-loop/
- http://emberjs.com/guides/understanding-ember/run-loop/
- http://aaron.haurwitz.com/#!/posts/fun-with-backburnerjs
http://emberjs.com.s3.amazonaws.com/run-loop-guide/index.html
http://talks.erikbryn.com/backburner.js-and-the-ember-run-loop/#/10
http://jsfiddle.net/jdcravens/Sk9hS/
http://emberjs.com.s3.amazonaws.com/run-loop-guide/index.html
http://jsfiddle.net/ahaurw01/E7NfE/6/light/
THe Ember Run Loop is a foundational component of Ember Core; Understanding how it works can help uncover some of the magic under the hood.
Fork simple example http://jsfiddle.net/jdcravens/Sk9hS/
Or, fork http://jsfiddle.net/ahaurw01/E7NfE/6/light/ and create your own example with computed properties
http://emberjs.com/guides/understanding-ember/keeping-templates-up-to-date/
- See metamorphs in the inspector
- demo Issues i.e nth-child
http://jsfiddle.net/jashkenas/CGSd5/
http://jsfiddle.net/Ut2X6/light/
http://jsfiddle.net/jdcravens/LhxLG/
student-led
student-led
HTMLBars is a major improvement to Ember templating.
- Performance
- Bind-attr dependency removed
- Metamorphs is now gone, fixing issues with using CSS selectors like 'nth-child'
- Can use logic in the templates
You may notice that there are not examples of 'no metamorphs' and 'logic in templates'. Be the first to construct a fiddle of one of these and win a free copy of 'Building Web Apps with Ember.js'
To obtain the correct dependencies, fork http://jsfiddle.net/jdcravens/LhxLG/
For more advanced challenge dealing with performance and animation, for this fiddle to have the necessary dependencies: http://jsfiddle.net/jdcravens/62dcz/
http://jsfiddle.net/jdcravens/Yqeec/
http://jsfiddle.net/jdcravens/fv9xm/
Promises make development and flow management alot easier and clean, but they are a bit much to grok at first.
So, let's spend some time getting to know them better.
Fork either of the the 2 examples and expand it, or make it into something of your own. Be creative.
http://jsfiddle.net/jdcravens/9ECFy/
http://jsfiddle.net/jdcravens/py5YB/
outlet http://jsfiddle.net/jdcravens/czArC/
render http://jsfiddle.net/jdcravens/er2GH/
partial http://jsfiddle.net/jdcravens/t8yyp/
http://jsfiddle.net/jdcravens/LfPe2/
part 1 http://jsfiddle.net/jdcravens/4TQEN/ / understand Promises
part 2 http://jsfiddle.net/jdcravens/5Dyuz/ / understand hooks / active generation
http://jsfiddle.net/jdcravens/8XYCa/
http://jsfiddle.net/jdcravens/XVz53/
Start to build out a Navigation and Information Architecture for a simple web site. Do your best to exercise everything you have learned in the last section.
http://jsfiddle.net/jdcravens/VfmV9/
http://jsfiddle.net/jdcravens/qK5QP/
part 1: http://jsfiddle.net/jdcravens/eW6Q9/
part 2: http://jsfiddle.net/jdcravens/T6jWL/
part 3: http://jsfiddle.net/jdcravens/m9vAb/
http://jsfiddle.net/jdcravens/38uTS/
Controllers are Objects so they inherit from Ember.Object. Decorate a model by using your undersrtanding of the Object Model you learned earlier in the day. If you use data, you many also need to be sure you understand the difference between Array and Object Controllers.
http://jsfiddle.net/jdcravens/Zjs7N/
http://jsfiddle.net/jdcravens/FcB58/
http://jsfiddle.net/jdcravens/xeTaW/
http://jsfiddle.net/jdcravens/4dD4M/
Choose 1-3 Built-In Views and build a UI that uses them.
http://jsfiddle.net/jdcravens/7j6tg/
Create your own component using custom elements.
http://alexspeller.com/simple-forms-with-ember/
http://jsfiddle.net/jdcravens/K7pBB/
http://jsfiddle.net/jdcravens/DpKj5/
Explore Actions in your own implementation. Recall the Controller heirarchies you learned in the Controllers section.
http://jsfiddle.net/jdcravens/jZB24/
Another Fixture that can be used for client-side data is the LocalStorageAdapter. Fork http://jsfiddle.net/jdcravens/jZB24/ and use the Local Storage Adapter to persist data locally.
http://jsfiddle.net/jdcravens/cZJLH/
Be Creative. Tie everything you have learned into one super fiddle. Consider this your final assignement of Part 1.
README https://github.com/emberjsbook/rocknrollcall-yeoman/blob/master/README.md
Install Git http://git-scm.com/book/en/Getting-Started-Installing-Git
Install Yeoman http://yeoman.io/codelab/setup.html
Create a github account link to access the companion source code https://github.com/emberjsbook
Install Ember Inspector
FF: https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/
Chrome: https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi?hl=en
- Chapters 3-7 O’Reilly’s Building Web Apps with Ember.js
We will following along the commit log of RocknRollCall demo application. https://github.com/emberjsbook/rocknrollcall-yeoman/commits/master
- Chapter 10 O’Reilly’s Building Web Apps with Ember.js
We will following along the commit log of EAK Testing demo application. https://github.com/emberjsbook/rocknrollcall-eak/commits/master
Rock ‘n’ Roll
Starting with HTML
The Basics of Handlebars.js
Variables
Bound attributes
Creating Custom Helpers
Wrapping things up
URLs : The Web :: “Saved Game Passwords” : The Nintendo Entertainment System
Routing
Routes
Models
Wrapping things up
Controllers
Computed Properties
The Power of Promises and The model Method
Views
Not Rolling our Own Ajax
There Must Be a Better Way
Ember Client-Side Persistence Libraries
An Ember-Data Deep Dive
Abstraction Layers: Store, Serializers, and Adapters
Ember Testing with Ember App Kit, Qunit, and Testem
Testem and QUnit Test Runners
Ember Client Side Integration Testing
Ember Unit Testing
Wrapping things up