Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Glimmer ✨ as a Gateway to Ember 🐹
Search
Robert Jackson
July 11, 2017
Programming
0
66
Glimmer ✨ as a Gateway to Ember 🐹
Talk presented at EmberCamp London.
Robert Jackson
July 11, 2017
Tweet
Share
More Decks by Robert Jackson
See All by Robert Jackson
😂 of TypeScript
rwjblue
0
350
Testing: The Modern Way
rwjblue
0
53
Testing: The Future... Today?
rwjblue
0
67
Rails Developer's Intro to Ember
rwjblue
1
190
Testing - The Next Frontier
rwjblue
1
79
A tale of two pods
rwjblue
3
850
Ember 2.0 - RFC Recap
rwjblue
6
680
Ember CLI Addons
rwjblue
7
810
RAILS + EMBER.JS + EMBER-CLI = ❤
rwjblue
10
1.8k
Other Decks in Programming
See All in Programming
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
140
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
310
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
2
1k
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
150
AIコーディングエージェント(Manus)
kondai24
0
110
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
18k
CSC305 Lecture 17
javiergs
PRO
0
270
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
17
6.5k
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
7
1.9k
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
170
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
140
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
180
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
RailsConf 2023
tenderlove
30
1.3k
GitHub's CSS Performance
jonrohan
1032
470k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
How STYLIGHT went responsive
nonsquared
100
5.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Transcript
1 Glimmer as a Gateway to Ember
2 Open Source Addict Ember Core Team OUR MISSION Investment
generally results in acquiring
3
4
5
6
7
8 Thank You!!
9 Glimmer.js
10 Optimized for Happiness Service Worker Enabled Mobile First Glimmer.js
11 Glimmer.js
12 Glimmer.js
13 Glimmer.js <user-greeting class="greeting" @name="Ricardo" @greeting="Olá"> </user-greeting>
14 Glimmer.js import Component from '@glimmer/component'; export default class Contact
extends Component { }
15 Glimmer.js import Component from '@glimmer/component'; export default class Contact
extends Component { get name() { return `Doctor Who`; } }
16 Glimmer.js import Component from '@glimmer/component'; export default class Contact
extends Component { @tracked('args') get name() { return `${this.args.first} ${this.args.last}`; } }
17 Glimmer.js import Component from '@glimmer/component'; export default class Contact
extends Component { args: { first: string; last: string; }; @tracked('args') get name() { return `${this.args.first} ${this.args.last}`; } }
18 Glimmer.js ember new test-webapp -b @glimmer/blueprint cd test-webapp ember
install ember-service-worker ember install ember-service-worker-asset-cache ember install ember-service-worker-cache-fallback ember install ember-web-app ember serve -prod
19 Glimmer.js
20 Ember
21 Ember import Ember from 'ember'; export default Ember.Service.extend({ });
22 Ember Mature Pre-postmodern JS Common Stability
23 Ember import Service from '@ember/service'; export default class extend
Service { }
24 Ember // ...snip... test('it “just” works?!?!', function(assert) { class
TestService extends Ember.Service {} let owner = getOwner(this); owner.register('service:test', TestService); let instance =owner.lookup('service:test'); assert.ok(instance instanceof TestService); assert.ok(instance instanceof Ember.Service); });
25 Ember import Component from '@ember/component'; export default class extends
Component { }
26 Ember // ...snip... test('it renders', function(assert) { class XFoo
extends Ember.Component {} this.register('component:x-foo', XFoo); this.register('template:components/x-foo', hbs`hi!`); this.render(hbs`{{x-foo}}`); assert.equal(this.$().text().trim(), 'hi!'); });
27 Ember Actions Computed Properties Injections Element Modification
28 Ember
29 Ember import Component from '@ember/component'; import { computed }
from 'ember-decorators/object'; export default class extends Component { @computed('first', 'last') name(first, last) { return `${first} ${last}`; } }
30 Ember import Component from '@ember/component'; import { action }
from 'ember-decorators/object'; export default class extends Component { @action update() { // ...snip... } }
31 Ember import Component from '@ember/component'; import { service }
from 'ember-decorators/service; export default class extends Component { @service i18n }
32 Ember Glimmer Components
33