Knockout.js partial client-side web apps Meteor web sockets Ember.js REST web services Yes Yes No No How Ember describes itself A framework for creating ambitious web applications have native mobile app? web app all client-side?
model: function(params) { return this.store.find('user', params.user_id); } }); John Murphy Jane Doe Mike Hurley Sam O’ Sullivan Mike Hurley list (users) detail (user) /#/users/10 URL
{{view datePicker date=model.date}} {{datePicker date=model.date}} Can also be written as the following, by registering a helper: click action: ‘setDate’, ‘9/5/2015’
two way data binding {{input value=name}} Use get() and set() to get and set properties name: function() { return this.get(’firstName’) + ‘ ’ + this.get(‘lastName’); }.property(’firstName’, ‘lastName’); user.get(’name’); user.set(’name’, ‘Mike Hurley’); firstNameChanged: function() { alert(’Property firstName has changed’); }.observe(’firstName’);
[{ “id”: 1 },{ “id”: 2 },{ “id”: 3 }] Or asynchronous, i.e. requested from the server when needed. Relationships can be side-loaded - downloaded in one request, i.e. Ember Data can handle complex object graphs, at least when requesting. Photo Photo Photo Photo Photo Comment Comment Comment User Handles syncing the local store with the remote API var user = this.store.find(’user’, 17); user.set(’name’, ‘Mike Jones’); user.save();
Gulp • Transpiles CoffeeScript and Sass/Less to JavaScript and CSS, you end up with: app.js, app.css, vendor.js, vendor.css • ES6 module syntax gets transpiled into AMD modules: import Ember from “ember”; export default MyClass = Ember.Object.extend({ }); • Supports LiveReload which aids development • Supports fingerprinting of assets in production i.e. app-b4cdbd700785ca8ef537f81e31a0617b.js • Uses Bower for client-side dependencies
Files) Native mobile app accessing the API shouldn’t be affected by a new deployment of the Ember app Users currently using the Ember app shouldn’t affected by a new deploy- ment of the Ember app GIT
CDN (AWS Cloudfront) JS, CSS, images and fonts Multiple versions of HTML page for Ember app. Can preview release before going live: API requests JS, CSS, images and fonts for Ember app HTML page for Ember app Web Browser app.example.com/?release=a23d425ac EmberConf 2015: The Art of Ember Deployment - bit.ly/1zQmlFa