Struktura aplikacji i podział na moduły
● modularna struktura aplikacji
● wydzielanie komponentów, pajpów oraz dyrektyw do zew. modułów
● konfiguracja zew. modułu
● dynamiczne ładowanie modułów
Dynamiczne tworzenie formularzy
● plik opisujący formularz (JSON)
● dynamiczne tworzenie pól formularza - form builder
● nietypowe pola formularza - form API
● walidacja
● obsługa zdarzeń
Zarządzanie stanem aplikacji
● zasady architektury Flux
● NgRx (Redux)
○ immutable i mutable
○ actions, reducers, subscription, selectors
○ side effects
○ router actions - przed załadowaniem komponentu
● schematics - generowanie automatyczne plików NgRx
Programowanie reaktywne - RxJs
● Cold vs Hot observables
● Higher order observables
● Operators
○ combination np. zip, forkJoin, merge
○ creation np. create, from, range
○ multicasting np. publish, share
○ filtering np. throttle, takeUntil, skip
○ transformation np. scan, reduce, groupBy
○ utility np. tap, delay, toPromise
Zaawansowane komponenty
● change detection strategy
● zmiana strategii detekcji - wydajność
● zdarzenia na komponencie
● dynamiczny kontent komponentu (np. wiersz w data-gridzie)
● serwis ComponentFactoryResolver
● dostęp do API dynamicznego komponentu
Routing
● parametryzowanie routingu
● zagnieżdżanie routingu
● aktywacja/deaktywacja routingu - Guard, kontrola routingu
Angular Elements
● Przetwarzanie Angular Component na (Native) Custom Element
● Użycie utworzonego komponentu w aplikacji webowej
● Komunikacja z komponentem: input, output
● Użycie komponentu w aplikacji React oraz AngularJS
● Polyfills
Angular Material Design
● nawigacja i podstawowa struktura wizualna aplikacji
● kontrolki formularza
● generowanie z użyciem schematics
● drag and drop
Angular - zmienne środowiskowe
● dołączanie zmiennych do wersji produkcyjnej i deweloperskiej
● opcje generatora angularowego
● konfiguracja - angular.json
Komunikacja Websocket
● komunikacja z serwerem WebSocket
● Google Firebase
RESTful APIs
● JSON Web Tokens (JWT)
● jak JWT działa po stronie serwera
● rejestracja tokena po stronie klienta
● dołączanie tokena do nagłówków zapytania
Debugging i profiling