Coding will begin shortly

If you want to do this with us, clone:

https://github.com/mysencare/smhw-ember-engines-demo

(and run npm/bower install!)

Ember Engines 101

What are engines?

An standalone application that can be embedded into another application

They allow to encapsulate sections of an app so they can be developed and tested in isolation

If lazy-loaded, they allow users to download the app in chunks as they need it

Are they production-ready?

Kind of ...

Already in production in some apps (linkedin, british gas)

Still a technology in beta, so there are some kinks to iron

Requirements:

Regular Engines require Ember 2.8+

Lazy-loading Engines require 2.10+ and ember-engines@0.4 branch

Works happens every day, so being up to date with ember-cli is advised

DEMO

App

Teachers

vendor.js

Students

Parents

vendor.js

vendor.js

vendor.js

Some of the kinks

  • Addons duplication: Not yet possible to share addons between shell app and engines.
     
  • You have to convert your shared components into addons.
     
  • The ecosystem has yet to adapt: No SASS, issues with fastboot, etc...
     
  • Beware: Styles from a lazy addon might mess with top-level styles. You need to scope your styles yourself.
     
  • Testing engines in isoliation requires some thought.

Thanks

Questions

Ember Engines 101

By Miguel Camba

Ember Engines 101

Demo of lazy engines for live-coding session

  • 1,710