Ember.js
1
2
is a
web framework
3
for ambitious web developers.
Ember.js is …
- a JavaScript web framework
- Productive
- Battle-tested
- for building modern web applications
- providing everything needed to build rich UIs
- for building rich UIs that work on any device
Big companies using Ember.js
Batteries included
Build pipeline
- EmberCLI
(ember-cli)- Code generator (a.k.a. scaffolding)
- Built-in development environment
development
production
- and
testing
- Fast rebuild
- Auto-reload
- Test runner
- Deployment
Routing
- Async data loading
- Dynamic URL segments
- Query parameters
- Nested URLs
- Incremental data fetching
- Nested loading
- Error substates
Data layer
- A fully-featured data access library called Ember Data (ember-data)
- Access data across multiple sources at once
- Setup asynchronous relationships
- Keep models up-to-date across apps
Testing
- Fully-featured three levels of testing
- Unit
- Rendering (a.k.a. Integration)
- Application (a.k.a Acceptance)
- Run in the browser
Performance
- Glimmer rendering engine
- Compile templates down to a highly-performant virtual machine
- Free performance upgrades with version upgrades
Easy upgrades
- 6-week release cycle (new minor version every 6 weeks)
- Strong commitment to stability
- Well-thought-out deprecation mechanism
- Code warning for code to be changed in the next major version
- Codemods for automatic update of codebase for deprecated or upgraded features
Ecosystem
Modern JS
- ES6 classes
- Fat arrow functions
- Decorators
- Use the latest JavaScript features with zero configuration
TypeScript
Supports TypeScript
(ember-cli-typescript)
Prettier
Use Prettier for an opinionated code formatter
Ember Addons
See Ember Observer.
- Ember Concurrency
(ember-concurrency)
for state management - Ember Simple Auth
(ember-simple-auth)
for authentication and authorization - EmberIntl
(ember-intl)
for Internationalization and Localization (Translation) - Ember CLI Deploy
(ember-cli-deploy)
for deployment pipeline
Ember Observer
- Dependency co-pilot
- Up-to-date rankings
- Metrics
- Documentation
- Recent releases
- and automated tests on Ember versions
Community
First commit was in April 30, 2011.
Offline
Online
Resources
Repositories
Podcasts
Books and blogs
Videos
Guides
Additional info
- Open-source
- JavaScript
- Web framework
- Model–View–ViewModel (MVVM) pattern
- Single-page application (web)
- Common idioms and best practices baked in
- A complete solution to the client-side application problem
- One component of a set of tools that work together for a complete development stack
- Maintain backward compatibility while still innovating and evolving
- An early adopter and pioneer of many standards around JavaScript and the web
- Like Ruby on Rails
- Convention over Configuration (CoC)
- Don't Repeat Yourself (DRY) principle
- Highly opinionated to be very flexible
- Also provides
- Dependency injection
- Declarative two-way data binding
- Computed properties
- and automatically-updating templates
- One way data flow by default (data down, actions up)
- "Just refresh it" when something changes
- Standard lifecycle hooks for components
- Improved re-render performance with Glimmer
- Ember Inspector to inspect Ember objects within browser's Developer Tools
- Liquid Fire for animations and transitions
- Follows semantic versioning convention (a.k.a. SemVer)
- Major changes go through Request For Comment (RFC) process
- A fork of SproutCore framework
- Previously named SproutCore 2.0
- Created by Yehuda Katz, a core team member of
- jQuery
- Ruby on Rails
- and SproutCore