Angular Advanced Concepts: RxJS, State Management, and Testing Training Course

Share this course

Duration

4 Days

Course Overview

This training course provides a deep dive into advanced Angular concepts, including reactive programming with RxJS, state management using NgRx, and unit/e2e testing strategies. Participants will learn how to build scalable Angular applications, handle asynchronous data streams efficiently, and write robust test cases for Angular components and services. Through hands-on coding exercises, real-world applications, and best practices, attendees will enhance their expertise in modern Angular development.

Format of Training
  • Instructor-led interactive sessions
  • Hands-on lab exercises
  • Real-world Angular project examples
  • Group discussions and debugging techniques
Course Objectives
  1. Understand and apply RxJS for reactive programming in Angular
  2. Implement state management using NgRx (Actions, Reducers, Effects, Selectors)
  3. Optimize Angular apps for performance and maintainability
  4. Write unit tests using Jasmine and Karma
  5. Perform end-to-end (e2e) testing using Cypress or Protractor
  6. Debug and optimize RxJS observables for better efficiency
  7. Integrate best practices for scalable Angular applications
Prerequisites

Course Outline

Day 1: Reactive Programming with RxJS

Session 1: Understanding RxJS and Observables

  • What is RxJS, and why use it in Angular?
  • Understanding observables, observers, and subscriptions
  • Using Subjects and BehaviorSubjects for state changes

Session 2: Handling Asynchronous Data with RxJS Operators

  • Using map, filter, switchMap, mergeMap, and debounceTime
  • Managing multiple API requests with forkJoin and combineLatest
  • Error handling and retry strategies in RxJS

Session 3: Hands-on Lab – Implementing Reactive Streams in Angular

  • Creating an Angular service with RxJS observables
  • Implementing real-time data updates using WebSockets and RxJS

 

Day 2: State Management with NgRx

Session 1: Introduction to State Management in Angular

  • What is NgRx, and when to use it?
  • Understanding Redux pattern and unidirectional data flow
  • Installing and setting up NgRx Store in an Angular project

Session 2: Implementing Actions, Reducers, and Effects in NgRx

  • Creating actions and reducers for state changes
  • Using Selectors for optimized state retrieval
  • Managing side effects using NgRx Effects

Session 3: Hands-on Lab – Building a State-Managed Angular App

  • Implementing NgRx Store for managing API data
  • Handling asynchronous operations using NgRx Effects

 

Day 3: Testing Angular Applications

Session 1: Unit Testing with Jasmine and Karma

  • Setting up Karma and Jasmine for unit testing
  • Writing unit tests for Angular services, components, and directives
  • Mocking dependencies with TestBed and spies

Session 2: End-to-End (E2E) Testing with Cypress/Protractor

  • Writing E2E tests for user interactions
  • Automating Angular app testing with Cypress
  • Handling async events in E2E tests

Session 3: Hands-on Lab – Writing Unit and E2E Tests

  • Writing unit tests for an Angular component
  • Implementing E2E tests for form validation and navigation

 

Day 4: Performance Optimization and Best Practices

Session 1: Optimizing Angular Apps for Better Performance

  • Lazy loading and route-based code splitting
  • Optimizing Change Detection Strategy
  • Using *trackBy with ngFor for efficient rendering

Session 2: Debugging and Enhancing Application Architecture

  • Debugging RxJS memory leaks and state updates
  • Using Angular DevTools for performance profiling
  • Best practices for modular and scalable Angular apps

Session 3: Hands-on Lab – Optimizing and Deploying an Angular App

  • Implementing performance improvements and debugging tools
  • Deploying an optimized Angular app to a cloud platform

Bespoke Option

We are open to customizing this program to align with your specific learning objectives. If your team has particular goals or areas they wish to focus on, we would be happy to tailor the course outline to meet those needs and ensure the program supports the achievement of your desired outcomes.

Need help with the right course to choose?

support@skillvotech.com

Explore more opportunities

Introduction to Frontend Development: HTML, CSS, and JavaScript Basics Training Course
HTML5 & CSS3 Essentials for Beginners Training Course
JavaScript Basics: Programming for the Web Training Course
Responsive Web Design with Flexbox and CSS Grid Training Course
Bootstrap and Tailwind CSS for Rapid Web Development Training Course
Building Interactive Websites with JavaScript and DOM Manipulation Training Course

Course Name: Angular Advanced Concepts: RxJS, State Management, and Testing Training Course