Mastering Angular

Mastering Modern Web Development with Angular: Best Practices, Unit Testing, Forms, RXJS, NgRX, REST, Optimization & More

TT4168

Intermediate

5 Days

Course Overview

Angular is one of the most popular JavaScript frameworks for creating web and native mobile applications by implementing several features and capabilities:

  • Single Page Applications (SPAs) load a single HTML page that is dynamically updated based on user interaction. SPAs can communicate with the server-side to load data into the application without a full-page refresh.
  • Two-way data binding means that when the data store updates, the UI is immediately updated (and vice versa).
  • Modules divide code into reusable parts with related components, directives, pipes, and services grouped together and can be combined with each other to create an application.
  • Angular uses a dependency injection design pattern for services, increasing code efficiency and modularity.
  • Thanks to Angular's Model-View-* architecture, enforcing the Single Responsibility Principle (SRP) and Don't Repeat Yourself (DRY) techniques, coding is reduced into the smallest pieces possible.
  • The declarative user interface means the presentational logic in HTML is separated from the imperative logic and Angular’s data binding.
  • Angular is also easily integrated into other frameworks, such as Ionic.

Mastering Angular is a five-day, hands-on course that thoroughly explores the latest Angular features and advances, demonstrating how to solve the traditional challenges of JavaScript web application development.  Throughout the course students will build custom components using application routes, form validation, and unit-testing. The course starts with an introduction of Angular CLI and TypeScript, and then delves into component-driven development with Angular components, covering data-binding, directives, services, routing, HTTP, the RxJS library, forms unit testing, and REST. Students will also learn how to add authentication, use the Material library, learn the NgRX design pattern to implement the NgRX store, make custom directives, enhance their application with animations, write an E2E test, and increase their application's efficiency by lazy loading modules and creating their own Angular library.

NOTE: This course is on Angular 9, but is available for prior or more recent versions. Please inquire for details.

*Ways To Learn!*

  • Attend a Class! For your convenience, this course is available on our online-live Public Schedule. Please see the current scheduled dates listed below.  Please ask if you don't see a date you'd prefer. Be also be sure to check out our current Special Offers for extra savings for individuals, small groups or corporate rates for your organization.
  • Team Training! We're also happy to deliver this as a private event for your team or organization, tailored to suit your needs. See our Training Solutions page for details.
  • Every-Course Extras = High-Value & Long-Term Learning Support! All courses also include our unique EveryCourse Extras package (Post-Course Resource Site access with Review Labs & Live Instructor Follow-on Support, access to QuickSkills recorded High-Value lessons, Free *Live* Course Refresh Re-Takes, early access to Special Offers, Free Courses & more). Please inquire for details.

Course Objectives

At the end of this five-day course, students will have an application up and running that incorporates components, directives, custom pipes, reactive forms, routes, services, unit testing, and the REST API. They will add authentication, implement the Material library, and learn how to maintain state with NgRX. They will then take a deeper dive including making their own custom directives, lazy loading modules, and E2E testing. They will learn how to enhance their application with animations and create their own Angular library. 

Working within in an engaging, hands-on learning environment, guided by our expert team, attendees will learn explore:

  • What Angular is and why should you use it
  • How Angular reduces the amount of code that you must write to add rich functionality to both existing and new web pages
  • What TypeScript is, why it is useful, and how to use it with Angular
  • How to facilitate development and deployment using Angular CLI
  • How to work with the various aspects of the Angular architecture to implement clean, responsive web interfaces
  • How Routers can support navigation within a Single Page Application
  • What the best practices are for using Angular so that it works unobtrusively and performs well
  • How to use Angular with HTTP to support JSON, REST, and other services
  • Working with the Ahead of Time compiler including its impact of developers and the development process
  • How to defend against DOM-based XSS
  • How to manage routing decisions based on pre-defined criteria such as a successful authentication
  • How to meet huge data requirements by processing asynchronous data streams with RxJS
  • Simplify server-side rendering
  • How to facilitate unit testing
  • Enhance an Angular user interface with animations and other advanced features
  • Optimize Angular applications with various tools and techniques
  • Maintain state within an Angular application
  • What Angular 9 (or later versions) brings to the table and its relationship to prior versions

Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be easily adjusted to accommodate.  We offer additional Angular and web development and design courses which may be blended with this course for a track that best suits your development objectives.

Course Prerequisites

In order to be successful in this class, incoming attendees are required to have current, hands-on experience in developing basic web applications, and be versed in HTML5, CSS3 and JavaScript.  This is an intermediate level web development class, designed for experienced web developers, new to Angular, that need to further extend their skills in modern web development.

Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses that offer similar skills or topics, and next-step Follow-On Courses and Learning Path recommendations.

Course Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most.

Session: Angular Overview

Lesson: Overview of Angular Architecture

  • Angular Versioning
  • Model-View-*
  • Data Binding
  • Components and Dependency Injection
  • Services and Events
  • Common Component Lifecycles and Hooks

Session: Getting Started with Angular 

Lesson: Getting Started with TypeScript

  • Angular, ES6 and TypeScript
  • Transpilers
  • Typing and Classes
  • Abstract Classes and Interfaces
  • Annotations

Lesson: Bootstrapping with Angular CLI

  • Angular CLI Overview
  • New Projects with CLI
  • Testing and Generating with CLI
  • Angular Console

Lesson: Angular Project Structure

  • Configuration Files
  • Top-Level Directories
  • Contents of app folder

Session: Working with Angular

Lesson: Components and Events

  • Data Binding and Components
  • Event Binding
  • Custom Events
  • Parent/Child Events
  • EventEmitter/emit()
  • Exercise: Nested Components

Lesson: Third Party Libraries

  • Angular and the Need for Libraries
  • Options for adding Libraries
  • Working with npm install
  • Working with angular.json
  • ng2 Wrappers

Lesson: Dynamic Views

  • View Encapsulation
  • Structural/Attribute Directives
  • Conditional Styling
  • Exercise: Working with Directives

Lesson: Pipes

  • Overview of Pipes
  • Built-in Pipes
  • Formatting and Conversions
  • Parameterizing Pipes
  • Pure vs. Impure Pipes
  • Customizing Pipes

Session: Angular Forms

Lesson: Forms and the Forms API

  • Forms and NgModel
  • NG Form Groups
  • NG Form Validation
  • Model-Driven Reactive Forms
  • FormBuilder API
  • Reactive Form Validation

Session: Single Page Applications and Routes

Lesson: Single Page Applications

  • Overview of the SPA Concept
  • Routing for Page Display
  • Working with ActivatedRouter
  • Location Strategies
  • Nested Routes

Lesson: Services and Dependency Injection

  • Angular’s DI Framework
  • Components and Injectables
  • Tree-shakeable providers
  • Service Interfaces and DI
  • Constructor Injection
  • Exercise: Services

Lesson: Modules

  • Overview of Modules
  • Feature Modules
  • Feature Module Routing
  • Shared Modules

Session: Using RESTful Services

Lesson: Overview of REST

  • REpresentational State Transfer
  • REST and HTTP
  • REST/HTTP: Representation-Oriented
  • REST Design Principles

Lesson: Angular and REST

  • REST in Angular
  • Promises, Observables, Subject
  • HttpClient and Observables
  • async Pipes and HttpClient Interceptors

Session: Angular Best Practices

Lesson: Angular Style Guide

  • Recent Angular Improvements
  • Upgrading Angular
  • Single Responsibility Principle
  • Naming Conventions
  • Coding Conventions
  • Application Structure
  • Routing

Lesson: What is New in Angular 9

  • Angular 9 and the Ivy Compiler and Runtime
  • Bundling Improvements
  • Improvements to Testing Performance
  • New Debugging Features
  • Improved Update Processes
  • Updating from Angular 8

Session: Reactive Programming in Angular

Lesson: Working with RxJS

  • Working with RxJS in Angular
  • RxJS Operators
  • Filtering, Combining, and Mathematical Operators
  • Callback Operators

Session: Security and Authentication

Lesson: DomSanitizer

  • Defending Against XSS
  • Trusting Values with the DOMSanitizer

Lesson: JSON Web Tokens

  • Backend Authentication and SPA
  • Using JSON Web Tokens (JWT)
  • Firebase and JWT

Lesson: Route Guards

  • Overview of Route Guards
  • Route Guard CanActivate
  • Using in a Service

Session: Enhancing the Angular App

Lesson: Angular Animations

  • Triggers, States and Styles
  • Transitions
  • Using Animations
  • Keyframes and Animations

Lesson: Angular Material

  • Gesture Support
  • Material Icons and Components
  • Materials Themes
  • Custom Themes

Lesson: Angular Elements

  • Angular Elements Overview
  • Building a Custom Element Using Angular Elements
  • Converting into Custom Elements

Session: Deep Dive into Angular 

Lesson: Testing and Angular

  • Testing Dependencies
  • Options for Testing in Angular
  • Karma
  • Jasmine
  • Protractor
  • E2E

Lesson: Deep Dive into Components and Directives

  • Implementing View Encapsulation
  • Content Management
  • Custom Attribute Directives
  • Listening to Host Events
  • Binding to Host Properties

Lesson: Deep Dive into Services and Dependency Injection

  • Hierarchical Injectors
  • Optional Dependencies
  • Host and Visibility

Session: Optimizing for the Enterprise

  • Lesson: Improving Performance with Ivy
  • Overview of Ivy
  • Incremental DOM and Ivy Pipes
  • Pre-compiling code with Ivy
  • Overview of Angular Universal
  • Improving User Experience with Universal
  • Pre-rendering the App on the Server

Lesson: Lazy Loading

  • Module Lazy Loading
  • Route Configuration for Lazy Loading
  • When to Preload

Lesson: Optimizing with Universal

  • Overview of Angular Universal
  • Improving the User Experience
  • Pre-rendering on the Server

Lesson: Creating Your Own Angular Library

  • Creating an Angular Library
  • Working with Angular CLI to Build the Library
  • Using the Library

Session: Maintain State with NgRX

Lesson: NgRX Store

  • Overview of NgRX Store
  • Actions and Reducers
  • Selectors
  • Effects
  • Exercise: Maintain State with NgRX

BonusTopics (Time Permitting)

Lesson: ES6+

  • ES6 Classes and Modules
  • ES6 Arrow Functions and Array Methods
  • ES6 Template Literals
  • ES6 Spread Operator, Rest Parameter and Destructuring
  • Exercise: Deep Dive into Object-Oriented ES6+

Lesson: Sass and SCSS for Angular and Material

  • Variables
  • Nesting
  • Partials
  • Import
  • Mixins
  • Extend/Inheritance
  • Operators

Course Materials

Student Materials: Each participant will receive a Student Guide with course notes, code samples, software tutorials, step-by-step written lab instructions, diagrams and related reference materials and resource links. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work. Any courseware of lab materials provided in a cloud (if applicable) will also be made available to you separately.

Hands-On Setup Made Simple! Our dedicated tech team will work with you to ensure our ‘easy-access’ cloud-based course environment, or local installation, is accessible, fully-tested and verified as ready to go well in advance of the course start date, ensuring a smooth start to class and effective learning experience for all participants. We can also help you install this course locally if preferred. Please inquire for details and options.

Every-Course Extras = High-Value & Long-Term Learning Support! All Public Schedule courses include our unique EveryCourse Extras package (Post-Course Resource Site access with Review Labs & Live Instructor Follow-on Support, access to QuickSkills recorded High-Value lessons, Free *Live* Course Refresh Re-Takes, early access to Special Offers, Free Courses & more). Please inquire for details.

te hands-on work in class, and to revisit to review or refresh skills at any time. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Attend a Course

Please see the current upcoming available open enrollment course dates posted below. Please feel free to Register Online below, or call 844-475-4559 toll free to connect with our Registrar for assistance. If you need additional date options, please contact us for scheduling.

Course Title Days Date Time Price
Mastering Angular 5 Days Apr 12 to Apr 16 10:00 AM to 06:00 PM EST $2,595.00 Register
Mastering Angular 5 Days May 17 to May 21 10:00 AM to 06:00 PM EST $2,595.00 Register
Mastering Angular 5 Days Jul 12 to Jul 16 10:00 AM to 06:00 PM EST $2,595.00 Register
Mastering Angular 5 Days Aug 23 to Aug 27 10:00 AM to 06:00 PM EST $2,595.00 Register
Mastering Angular 5 Days Oct 4 to Oct 8 10:00 AM to 06:00 PM EST $2,595.00 Register

New Site, BIG Savings!
We're celebrating the launch of our lonnngggg awaited new site with with *50% off all 2021 Public Classes* booked by March 31!  Check out our Current Offers for Individuals, Teams and Organizations to Learn for Less!

See our latest Offers and Promotions

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More