Notes from EmberConf 2017, highlighting what I want to investigate further.
Tom and Yehuda introduce Glimmer.js as a stand-alone library for making components. Cool, right?!
The web component and TypeScript goodness is exciting, but I'm left imagining what it all means.
Just drop your Glimmer components into an Ember app.1
How Glimmer components fit into existing Ember apps or what a Glimmer app is remain a mystery. I'm sure we'll find out eventually:
This means we're working on making it possible to use the Glimmer components you've seen above in your existing Ember apps, just by installing an addon.2
Casey Watts: Dev Psych
An intro to introspection, mindfulness, and unhelpful thinking styles from a cognitive behavioral therapy perspective.
Ingrid E.: Security
Catching things like
rel=noopener. This should probably be standard.
Oli Griffiths: Tumblr
Hackdays are neat; they're a great way to promote creativity and inspiration—more dev teams should hold them. Oli described labs as being the next step, if one produces something worth taking further, like the Tumblr PWA.
- broccoli-manifest for Appcache
Keeping a style guide and pattern library fresh and useful is challenging; Ember Freestyle is a compelling response.
Balint Erdi: Ember Data Patterns
Data loading needs to be part of the design process
Too often, how to handle delay is an afterthought. Balint reminds us that it's not always as simple as a loading indicator.
RSVP.hash in the model hook is considered an anti-pattern 3
By whom? It's in the guides.
JSON-API is convention over configuration for data
Miguel Camba: Higher Order Components
Miguel put together a wicked game as a tool for presenting component patterns.
Remember, components don’t have to emit DOM.
They only need to provide composition boundaries between UI concerns.
recursive component pattern (e.g. for nested menus)
look for link to game on twitter
Jen Weber: SVG with Ember
Paint order rendering
Components within SVG need to be tagless or have tagName like g
"Remember, kids..., the difference between screwing around and science is writing it down." - Adam Savage, Mythbusters4
Don't forget about accessibility, cross-browser, optimization
Alex Matchneer: ember-concurrency
- return a value in a task and access it with lastSuccessful.value
Lauren Tan: add-on development
- add-on configuration precedence is configurable, e.g. for conflict resolution
- add-on hooks in Nodeland
- augmenting ember-cli, e.g. for custom commands
- developer experience: give background, contribution instructions, usage, live examples
- ember-try config
- test with a real browser
- configuration strategy, different environments
- consider extensibility: child add-ons
- open sourcing it
- finding another maintainer
- semver: ember-cli-release
- Ember API Docs 2.0
- lbaillie/assemble "safety app"
- QUnit-cli: randomization, QUnit.todo(), assert.step(), assert.verifySteps(), QUnit.on(),
npm install -g qunitjs
- "We like to think we know what is slow": regarding performance profiling
- NPM shrinkwrap versus Yarn
Gave a low-level walkthrough on Glimmer's internals.
Lots of great content this year. I'm looking forward to trying out some new things:
- write an add-on
- PWAs, service workers, appcache
- web VR, 3DS, a-frame (ember-a-frame)
- glimmer.js components
- web sockets, webRTC, push notifications
- TypeScript in VS Code