The Ember Times - Issue No. 70

G'day, Emberistas! 🐹

This week we have an Ember standard for i18n 🌍, more convenient transitions through your Ember apps with the new Router Helpers & Element Modifiers RFC, artisan ☕️ deprecations for setting your component managers, a new version of Ember, an exciting new Readers' Question 🤔 on the future of controllers, using GraphQL in Ember 💥, and more!


ember-i18n Deprecation and Release of ember-intl 🌐

@snewcomer and @cibernox announced a new way to internationalize Ember apps, ember-i18n is now deprecated in favour of ember-intl! This will provide Ember with a standard package for internationalization.

There are many reasons to make the change such as:

  • Using the ICU message format which is a standard in the i18n industry
  • Locale-aware numbers, dates, times, currencies, decimals, and percentages!
  • Uses the Native Intl API
  • Translations are way more powerful and can contain logic (like gender-dependent translations)

There is even a codemod to make the switch from ember-i18n to ember-intl easier! So check it out and make the switch today!


Route Me Through Space 🛰 and Time 🕰 with the Router Helpers RFC

Inspired by the experimental addon ember-router-helpers a new RFC (Request for Comments) illustrates a possible, new way to route through your Ember apps.

Several new template helpers and element modifiers for routing are proposed: This includes a transition-to element modifier for easy route-to-route transitions surpassing some of the drawbacks of the functionally similar link-to helper. But also the design of and the motivation behind new, useful helpers like root-url, is-active and is-loading among others are explained in great detail in the RFC itself.

Curious? Be sure to give the proposal a read and make your thoughts known in the comments below!


Original & Artisan ☕️ Deprecations RFC for the setComponentManager API

The 🔥 brand-new Custom Component Manager API 🚒 has been shipped with Ember 3.4 and is now available as a low-level API granting addon authors more freedom to create components from customized base classes.

This week a freshly brewed RFC with its first, important deprecation rolled in: The proposal suggests to replace the string-based lookup method for the setComponentManager function for a factory-based approach. This small change in the API provides quick wins 🏅 for future undertakings regarding tree shaking of Ember apps, module unification and more.

Read all about the motivation behind this deprecation in the hand-crafted RFC on Github.


No Graph Theory Required: Ember and GraphQL in Practice ⚡️

Following his EmberFest talk with @chadian, @jneurock blogged about their experience with GraphQL in Ember. If you are struggling with JSON API, or thinking about GraphQL, this article should give you an understanding of how to get started. They even created an example repo that includes an Ember app demonstrating GraphQL integration with four different clients. Check out the article and the GraphQL website to learn more!


Ember 3.5 is Out! 🚀

Version 3.5 of Ember and it contains some pretty cool things. With this release, Ember Data has now released their first LTS release ever with Ember Data 3.4 and will now follow the same LTS cycle as Ember.

Ember Data 3.4 also released the new RecordData interfaces that give addon developers the much-needed API access with more confidence and stability.

With Ember CLI 3.5 you get Broccoli v2.0.0 that no longer uses your local ./tmp in your project folder but the system temp directory instead. This can result in build time improvements up to 32%! 🏎

You can read all about all these new cool things and much more in the release post.


Readers' Question: What is the Future 🚀 of Controllers?

Ah, the age old question: "What is the future of controllers? When is it a good time to use them in a modern Ember app?" @jenweber tackles this topic with some help from Framework Core Team member @ef4. TLDR: do use them, don't lose any sleep over them, and help us decide their future. See this Ember Discuss post for the article and conversation!


Contributors' Corner 👏

This week we'd like to thank @rwjblue, @chadhietala, @btecu, @amyrlam, @chrisrng, @jessica-jordan, @ynotdraw, @Alonski, @sivakumar-kailasam, @thorsteinsson, @YoranBrondsema, @runspired, @ctcpip, @wagenet, @rondale-sc, @toddjordan, @esbanarango, @mansona, @HenryVonfire, and @cspanring for their contributions to Ember and related repositories! 💖


Got a Question? Ask Readers' Questions! 🤓

Office Hours Tomster Mascot

Wondering about something related to Ember, Ember Data, Glimmer, or addons in the Ember ecosystem, but don't know where to ask? Readers’ Questions are just for you!

Submit your own short and sweet question under bit.ly/ask-ember-core. And don’t worry, there are no silly questions, we appreciate them all - promise! 🤞


#embertimes 📰

Want to write for the Ember Times? Have a suggestion for next week's issue? Join us at #support-ember-times on the Ember Community Discord or ping us @embertimes on Twitter.

Keep on top of what's been going on in Emberland this week by subscribing to our e-mail newsletter! You can also find our posts on the Ember blog.


That's another wrap! ✨

Be kind,

Jen Weber, Chris Ng, Ryan Mark, Amy Lam, Jessica Jordan, Kenneth Larsen, Alon Bukai and the Learning Team