8:00 AM - 9:00 AM: Part 1 - Lessons 1-3
9:00 AM - 10:00 PM: Part 1 - Lessons 4-7
Break
10:15 PM - 11:00 PM: Part 2 - Lessons 8-10
11:00 PM - 12: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-engine
- 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.