This year was my second time attending EmberCamp and I had a real blast. As usual, Tilde and Jamie White did a great job putting the conference on and it was great catching up with members of the Ember Community from all over Europe. If you didn’t have a chance to make it, then EmberFest in Berlin in October will be another fantastic opportunity to hang out with the community.
For me there were two big takeaways at the conference. The first is that there’s some really great progress being made around Glimmer and integrating it with Ember. As mentioned in the first two talks by Matthew Beale and Robert Jackson, we’re very close to being able to both restructure our apps to use the new file layout, which is also used by Glimmer, and to drag and drop components between Glimmer apps and Ember apps. After his talk, Matthew wrote a follow up blog post describing the recent work in more detail. I’ve pitched in a bit in the Module Unification effort and it’s been great seeing things come together..
Those talks fit really nicely with Jessica Jordan’s talk called The Modern State of Web Components — A Glimmer of Hope. Jessica’s talk was towards the end of the day, and she demonstrated that you can use Glimmer today to make fully-compliant Web Components. You can already do some pretty sophisticated stuff with Glimmer Components. For example, Jessica integrated D3 to make some D3-visualization Glimmer components. It was really awesome to start the day with Matthew and Robert’s more high-level talks and then end the day with these very practical examples to show that Glimmer can be used today. For more info, read the Glimmer Guides on Web Components.
The talks in the middle of the day lead to my second big takeaway from the conference, which is that Ember.js community continues to rally around a growing list of community-driven addons. More and more people are Being the Bark. As consultants (I work at 201 Created) we used to talk about how the Ember.js framework allows us to get up to speed very quickly when entering new projects. This is true for any new joiner on a team who has some Ember.js experience. We know where all the files will be located, we know how the route structure is defined, we know where to look for tests, etc. This productivity boost becomes more pronounced as teams are not just using the same Ember.js core framework but also addons worked on by talented people all over the globe. Almost every team I’ve worked on recently uses ember-cli-mirage for testing, for example, and ember-concurrency for simplifying their async code. Many teams are also adopting Fastboot and ember-cli-deploy as well.
This year at EmberCamp, we saw some fantastic addons presented. Ingrid Epure from Intercom.io presented an entertaining case study about how some challenges to enforce code style and blacklist certain security vulnerabilities lead her and her team to create ember-cli-detergent. Marco Otte-Witte presented ember-test-selectors, which I think is the best tool for keeping your tests maintainable by avoiding using CSS selectors. Marco also has a great article from earlier this year about some recent features that were added. Finally, Marten Schilstra presented ember-service-worker, which makes it really easy to integrate service workers into Ember apps. I look forward to getting more familiar with these addons. I’m sure in a year from now, some of them will be so standard that we’ll be seeing them used in many of the largest Ember.js apps.
Another great talk was Kevin Kucharczyk’s A FastBootable approach to D3-based graphing. I’ve worked with D3 and Ember on client work and also a personal project called Splanky. When working with D3 and Ember, it’s easy to get the feeling that you are completely leaving the world of one framework for another, especially if you do all your D3 rendering in the
didInsertElement hook. He had some interesting examples showing how to render D3 elements entirely in the template, and then attaching D3 to them in the “rehydration” phase. This makes it possible for Fastboot to render your initial visualizations, which is really cool. It also requires some reverse-engineering of D3’s internals, which is a great learning experience. The community hasn’t settled on one addon for D3 integration yet, but a few that Kevin mentioned are ember-sparkles and maximum-plaid.
Ricardo Mendes (aka locks) had a talk about what the learning team has been up to, and it’s very exciting. Recently the API docs became versioned and the search has improved a lot. The learning team is working on some other neat initiatives like Ember-Hearth which aims to be the ultimate starter-app for Ember.js, and a central place for ember-cli-addon docs.
I’m really glad I attended this year. Of course the talks were great but it was the beers and the chats at the pub afterwards that were the best part. Looking forward to seeing everybody again!
Michael Schinis also has a fantastic writeup about Ember Camp here.
If you need help with your Ember.js projects, say hello to 201 Created.