Angular 4 and TypeScript Single Page Application (SPA) Development

Course Length

4 Days

Course Description

Angular (4 and higher) is the new version of Google’s popular Single Page Application (SPA) framework that can be used to build robust, client-centric applications. With enhanced speed, the ability to leverage the latest language features and a more modular architecture, Angular offers a cutting-edge approach to building today’s applications.

“Learn by doing!” – that’s the goal of the Angular Application Development course. The course starts with an introduction to Single Page Applications (SPA) and the benefits that SPAs can provide to both developers and end users. It then jumps into an overview of key Angular  features and ES2015/TypeScript. Students will learn what benefits ES2015 and TypeScript offer and get hands-on experience using them throughout the class. From there students learn about different aspects of the Angular framework such as components, modules, templates, data binding syntax, directives, data services, calling RESTful services, observables, decorators, routing and more. Best practices and techniques for structuring code are discussed as well as techniques for using the documentation and Angular Github source code repository to find answers to questions.

Bonus chapters on creating custom directives, using webpack and unit testing are also included and provided in the course manual that students receive.

Note: This course covers the latest version of Angular. It doesn’t cover the AngularJS 1.x version of the framework. We offer a separate AngularJS course as well.

Learning Objectives

  • Single Page Application Features
  • TypeScript Fundamentals
  • Working with ES2015 modules (import/export)
  • Key features of Angular
  • Using NgModule to organize applications
  • Data binding syntax
  • The Role of components
  • Input and Output properties
  • Understand the component life-cycle
  • Using directives in templates
  • Creating injectable services
  • Understand the difference between Observables and Promises
  • Using Http and Observables to interact with RESTful services
  • Working with pipes
  • Build and use custom pipes
  • Understand how routing works and how to use child routes
  • Learn how lazy loading can be used to load modules asynchronously
  • Understand the role of route guards and how they can be created
  • Working with template-Driven and reactive forms

Who Should Attend?

This course is designed for JavaScript developers looking to build Single Page Applications using the latest version of the Angular framework and the TypeScript language.

Prerequisites

Attendees must have prior experience working with JavaScript, HTML and CSS to take this class. A minimum of 6-months of hands-on JavaScript experience is recommended to get the most out of the course.

For development teams that are new to ES2015 or TypeScript we offer a 1-day workshop that can be run the same week as the Angular course. We highly recommend adding this day if your team doesn’t have any experience with ES2015 or TypeScript.

Course Outline

  1. Introduction to Angular
    • The Big Picture
    • Key Framework Features
    • Framework Architecture
    • Angular Hello World
    • Angular CLI
    • AngularJS to Angular
  1. TypeScript JumpStart
    • Introduction to TypeScript
    • Types, Keywords and Hierarchy
    • Classes, Properties and Functions
    • Interface Constraints
    • Namespaces and Modules
    • Compiling TypeScript
  1. The Angular JumpStart Application
    • Application Overview
    • Application 2 JumpStart in Action
    • Application Structure
  1. Components and Modules
    • Components Overview
    • Component Lifecycle
    • ES2016 Modules
    • Exploring systemjs.config.js
    • Angular Modules
  1. Template Expressions and Pipes
    • Templates Syntax Overview
    • Interpolation and Expressions
    • Working with Pipes
  1. Component Properties, Directives and Data Binding
    • Property and Event Binding
    • Input and Output Properties
    • Angular Directives
    • Two-way Binding
    • Change Detection
  1. Services, Providers and Http
    • Services Overview
    • Injectors and Providers
    • @Injectable Decorator
    • Promises and Observables
    • Calling RESTful Services with Http
  1. Routing
    • Routing Overview
    • Routing Steps
    • The Router Service
    • Route Parameters
    • Creating Child Routes
  1. Route Guards and Lazy Loading
    • Introduction to Route Guards
    • Creating and Using Route Guards
    • Lazy Loading
  1. Forms
    • Forms Overview
    • Template-Driven Forms
    • Reactive Forms
    • Managing Form Control Styles
  1. Custom Directives and Components (Bonus)
    • Directives Overview (Attribute vs. Structural)
    • Building a Custom Sorting Directive
    • Building a Custom FilterTextbox Component
    • Building a Custom Mapping Component
  1. webpack Fundamentals (Bonus)
    • webpack Overview
    • webpack Building Blocks
    • Ahead of Time Compilation in Angular
  1. Unit Testing (Bonus)
    • Angular Unit Testing Features
    • Unit Testing Players
    • Test Suites, Specs and Expectations Overview
    • Creating an Angular Service Test Suite and Spec
    • Creating an Angular Component Test Suite and Spec
    • Mocking Objects