Building Web Apps with Ember.js

Book description

If you’re a web developer interested in building scalable single-page applications—full-stack, browser-based apps that connect to a backend—this practical guide shows you how to use Ember.js, the popular JavaScript framework based on the model-view-controller (MVC) architectural pattern.

Through the course of the book, you’ll learn how to build a prototype Ember application (a musician index called Rock’n’Roll Call), using routers, templates, models, controllers, and views. You’ll also understand how Ember’s convention over configuration approach helps you persist data, build backend technologies, and create widgets for developing production-capable applications that behave like desktop software.

  • Set up workflow management and boilerplate code creation
  • Learn how Ember’s “developer ergonomics” help you use less code
  • Write templates for the book’s prototype with Handlebars.js
  • Use routers to manage application states without reloading the page
  • Connect controllers and views with events, and sync data with data-binding
  • Build an Ember backend with a RESTful API or Ruby on Rails
  • Use the Ember-Data library to persist data and talk to the backend
  • Write reusable encapsulated widgets to extend your applications

Publisher resources

View/Submit Errata

Table of contents

  1. Preface
    1. Building Web Apps with Ember.js
    2. More Than Just “Getting Started”
    3. Navigating This Book
    4. Conventions Used in This Book
    5. Using Code Examples
    6. Safari® Books Online
    7. How to Contact Us
    8. Acknowledgments
  2. 1. Introducing Ember.js and Ambitious Web Applications
    1. What Is an “Ambitious Web Application”?
      1. Ambitious Web Applications Are Not Documents
      2. Ambitious Web Applications Are Stateful
      3. Ambitious Web Applications Are Long-Lived
      4. Ambitious Web Applications Have Architecture
    2. What Is Ember.js?
    3. Why Choose Ember?
      1. Developer Ergonomics?
      2. What’s an ORM?
    4. What Is Ruby on Rails?
    5. What Is Node.js?
      1. Express.js
  3. 2. The Basics
    1. Hello, World Wide Web
    2. SimpleHTTPServer: Just Like It Says on the Tin
    3. Data Binding
    4. But Where’s All the Code?
    5. Uh, What’s a Router?
    6. Ember in Action
    7. Wrapping Things Up
  4. 3.  Ember Boilerplate and Workflow
    1. Git
    2. What Is Yeoman?
      1. Installing Yeoman
    3. Using Yo’s Ember Application Generator
      1. Installing Dependencies
      2. Install the Generator
      3. Running the Generator
    4. Using Bower
    5. Grunt
      1. Build, Run, Test
    6. Debugging with the Ember Inspector for Chrome and Firefox
    7. Wrapping Things Up
  5. 4. Building the RocknRollCall Prototype: Templates
    1. Rock ‘n’ Roll
    2. Starting with HTML
    3. The Basics of Handlebars.js
    4. Variables
    5. Linking with the {{link-to}} Helper
    6. Input with the {{input}} Helper
    7. Lists with the {{each}} Helper
    8. Conditionals with the {{if}} and {{else}} Helpers
    9. Capturing User Interaction with the {{action}} Helper
    10. Bound Attributes
    11. Creating Custom Helpers
    12. Wrapping Things Up
  6. 5. Building the RocknRollCall Prototype: The Router, Routes, and Models
    1. URLs : The Web :: “Saved Game Passwords” : The Nintendo Entertainment System
    2. Routing
      1. The Router
      2. Dynamic Routes
    3. Routes
    4. Models
      1. Promises, Promises
      2. The model() Method
    5. Wrapping Things Up
  7. 6. Building the RocknRollCall Prototype: Controllers, Views, Data Binding, and Events
    1. Controllers
    2. Computed Properties
    3. The Power of Promises and the model Method
    5. Wrapping Things Up
  8. 7. Persisting Data
    1. Not Rolling Our Own Ajax
    2. There Must Be a Better Way
    3. Ember Client-Side Persistence Libraries
      1. Ember Data
      2. Ember Model
      3. Ember Restless
      4. Ember Persistence Foundation
    4. An Ember Data Deep Dive
      1. Setting Up the Router and Activity View for the Activity State
      2. Models
      3. Persisting Records Based on User Interaction
    5. Abstraction Layers: Store, Serializers, and Adapters
      1. Ember Data Store
      2. Serializer
      3. Adapters
    6. Wrapping Things Up
  9. 8. Building an Ember Backend
    1. RESTful Web Service APIs
      1. Ember Data RESTAdapter
      2. EAK (Ember App Kit) API Stubs with Express
    2. Why Use Rails?
      1. Managing Dependencies with RVM (Ruby Version Manager) and Bundler
      2. Installing Rails
      3. Generating the Initial Application
      4. Updating the Gemfile
      5. Removing TurboLinks
      6. Understanding Rails MVC and the Single-Page Application
      7. Running Tests
      8. Adding Ember
    3. Wrapping Things Up
  10. 9. Ember Components
    1. The Anatomy of an Ember Component
      1. Create a Template
      2. Extending Ember.Component
      3. Building a Heat Map Visualization with D3
    2. Wrapping Things Up
  11. 10. Ember Testing
    1. Ember Testing with Ember App Kit, Qunit, and Testem
    2. Testem and QUnit Test Runners
    3. Ember Client-Side Integration Testing
      1. Helpers
      2. Testing the Index Page
      3. Testing the Activities Route
    4. Ember Unit Testing
      1. Using Ember-Qunit
      2. Unit Testing Routes
      3. Using Fixtures
      4. Unit Testing Models
    5. Wrapping Things Up
  12. Index

Product information

  • Title: Building Web Apps with Ember.js
  • Author(s): Jesse Cravens, Thomas Q Brady
  • Release date: July 2014
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781449370886