apps for 5+ years • Worked on SproutCore at Apple working on .Mac, MobileMe, and iCloud apps MobileMe, and iCloud apps • Architected MobileMe/iCloud Calendar client using SproutCore 2
a HTML5 startup founded by Charles Jolley, the creator of SproutCore • Ember started at Strobe as SproutCore 2.0, • Ember started at Strobe as SproutCore 2.0, developed by Yehuda Katz, Tom Dale, and Peter Wagenet (@ykatz, @tomdale, @wagenet) • The Ember guys left to found a start up, Tilde, and I moved here to GROUPON 3
Example 8 }); <script type=“text/x-handlebars”> Your name {{firstName}} {{lastName}}. </script> When properties change in your object, they are automatically updated in the view!
view with minimal manual work Data Bindings and Property Observing 15 • Observers detect changes and trigger change notifications in your application • Handlebar template properties are bindings by default and can be turned off by using unbound unbound unbound unbound
to use the built-in .get() and .set() method. One note about bindings and observers… 19 • Available on all Ember objects directly or on hashes by doing the following: var bar = Em.get(hash, ‘propertyName’); Em.set(hash, ‘propertyKey’, ‘newValue’);
more complex logic and it is exposed to the app as a normal property Computed Properties 22 • Invalidates on dependent properties and is cacheable • Only executes when dependent properties change, otherwise it is cached
I have in my app somewhere: myStrPropertyReversed: function() { Computed Properties 23 myStrPropertyReversed: function() { return (this.get('myStrProperty') || '').reverse(); }.property('myStrProperty').cacheable() Note: .cacheable() will go away in future Ember versions since all properties will be cached by default
or another. • State charts makes this state easy to manage and provides a well-defined and centralized Why use state charts? 25 and provides a well-defined and centralized framework to manage your app logic • Responding to specific user events can be contained in a state and only in that state • Easy to modularize and test
Living Social • Combines JavaScript & CSS assets for me • I wrote my custom rake script to detect changes 41 • I wrote my custom rake script to detect changes automatically to invoke rakep for my own sanity • I use Jasmine for testing