This course has been updated! We now recommend you take the Ember Octane Fundamentals course.
Transcript from the "The Ember Ecosystem Overview" Lesson
>> Speaker 1: I talked about the Ember ecosystem and about how we're trying to craft a complete solution here. These are the official pieces of the Ember ecosystem. And they're all versioned together so they should all be version 2.1 right now, or getting there, preparing for a release there. But because they're all versioned the same and they're all released on a similar cadence, the idea is that you should have a set of tools that you know work together.
[00:00:38] That's not to say that you have to upgrade everything at the same time but attention is paid to how these fit together before a release is cut.
>> Speaker 1: Another useful thing to know is that at its core Ember has a bunch of little microlibraries which can be consumed independently.
[00:00:59] Two of them have to do with routing, one is a promise library called RSVP, which is fairly popular. You can use it in node if you wish. HTMLbars is the templating engine. Sorry, handlebars and HTMLbars are templating engines. The difference is string concatenation. Emitting strings versus emitting dom fragments.
[00:01:22] Broccoli is the asset pipeline which now Angular 2 is using in their tool chain. So a lot of very useful little nuggets inside Ember that we make an effort to have as freestanding useful modules. All right, so let's plan out some goals here. And in the spirit of getting things done, which is what Ember's all about, productivity, I want to define these goals in term of what I want you guys to be able to do and how I want you to, I want you to feel comfortable doing a set of things.
[00:02:05] First, I want you guys to know routing inside and out. Routing is often an after thought added to a framework. In the case of Ember, it is at the core. It was almost, it seems to be potentially the most well thought-out piece of the framework itself, to the extent that other popular routers like React Router are modeling off of Ember's router.
[00:02:33] I want you to be able to use handlebars comfortably. And that means using the helpers that come with the handlebars library. The helpers that Ember adds and makes available to you, and I want you to be able to define your own helpers. And we'll learn a little bit more about what helpers are and how to build them, but essentially it's extending the HTMLish part of your application.
[00:03:00] I want you to be able to use components comfortably and to be able to compose them together to define user interfaces. So we'll go over a bunch of different use cases but components are very heavily emphasized in the Ember 2.0 idioms, right? There are some objects that I'm actually making an effort to not talk about today, because they've been deprecated, and they still exist in the code.
[00:03:26] But the component has sort of taken on new responsibilities and it has more of a primary role in Ember apps today. I want you to be able to use Ember data to interact with the restful API. Again, a very well though-out idea that is inspiring similar matching ideas in other frameworks like angular data, which is quite popular.
[00:03:55] Testing is an area of the Ember development lifecycle that I've personally put a lot of work into, making sure it's solid. So I want you guys to be super confident in terms of writing unit tests, integration tests, functional tests. I want you to know how to mock out an API so that you can kind of have your app simulate more close effectively.
[00:04:21] And then finally, I wanna make sure you guys know how to build Ember addons, and this is a great way to take a chunk of your app. Maybe it's your user interface primitives, or you have your input field, then your date pickers, and whatever little controls you have.
[00:04:39] You wanna break those out into a library so that you can have three or four apps declaring a dependency on this library. I want you to understand how that works because that's a very well thought-out store and a great strength of Ember.