5. Was ist Angular?
Open Source JavaScript Framework für clientseitige Anwendungen
Warum:
Vielseitige Datenbindung
Modular by Design
Built-in Back-End Integration
Man kommt schnell zum Ziel
Weit verbreitet
Defacto Standard
14. Aufgabe
User Stories
Ich als Disponent möchte den Transport von Papierrollen managen, um eine
reibungslose Produktion zu gewährleisten.
Ich als Disponent möchte eine Übersicht über die aktuellen Fahraufträge haben.
Technik-ferne Zielgruppe Protoyping machen
Umsetzung:
Fahraufträge
Liste von Fahraufträgen
Angular!
15. Vorbereitung Angular CLI
Generator für Angular Komponenten
Folgt Best Practices
Angular CLI installieren
App erstellen
ca. 18.000 Dateien
Öffnen
Code:
npm install -g @angular/cli
ng new truckcall
ng serve --open
16.
17. App Grundgerüst
Einstiegspunkt
Konfiguration: angular.json
Definiert das komplette Projekt und deren
Abhängigkeiten
Folder: angular.json
18. Grundlegende Datei Struktur und {{
Jede Angular Komponente besteht aus
*.css: Modul spezifisches Styling
*.html: Das Aussehen des Moduls
*.ts: Modul Definition und Logik
*.spec.ts : E2E Test
<div class="container">
<div style="text-align:center">
<h1>
Willkommen zu {{ title }}!
</h1>
</div>
<div>
22. Neues Modul - Component
Job Komponente
Anzeigen von Joblisten
Anzeigen von Jobs
Logik definieren
Model Anbindung und Zuweisung zur Selektion
HTML Template zur Anzeige
Einbindung in App
ng generate component job
26. Trennung von Verantwortlichkeiten
Idee: Separation of Concerns
Job Liste und Detail Ansicht splitten in einzelne Komponenten
Erhöht Wiederverwertbarkeit ng generate component job-detail
28. Mehr Trennung: Services
Aufgaben von Angular Components:
Anzeigen von Daten
Aufbereiten von Daten |Filtern
Services
Daten holen
Daten manipulieren
Daten speichern
Unsere App:
Mock Daten direkt aus
Component holen
Umbau:
Verwendung von Services
29. Job Service
Service erstellen ng generate service job
job.service:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class JobService {
constructor() { }
}
30. Basis Implementierung
Asynchronität Non-Blocking des
Web:
Observables
Job.service.ts:
import { Injectable } from '@angular/core';
import {Job} from './Job';
import {JOBS} from './mock-jobs';
@Injectable({
providedIn: 'root'
})
export class JobService {
getJobs(): Job[] {
return JOBS;
}
constructor() { }
}
import { Observable, of } from 'rxjs’;
…
getJobs(): Observable<Job[]> {
return of(JOBS);
}
34. Neue Anforderung
Ich als Gabelstapler Fahrer
möchte eine Übersicht für alle
offenen Fahraufträge haben,
damit ich diese gezielt annehmen
kann.
35. Unterschiedliche Sichten
Umsetzen
Übersicht über offene Aufträge für Fahrer
Eine Gesamtliste für die Disponenten
Eine Detailsicht der Aufträge für beide
Unterschiedliche Sichten auf die App
47. Ergebnisse Prototyp
Managing der Erwartungshaltung des Kunden
Möchtest du das so?
Kann man das so bedienen?
Löst das unser Problem?
Vorteil von Angular: Rapid Prototyping vor Ort:
Weitere Verfeinerung des Konzepts
48. Unsere Weiterentwicklung
App und Webanwendung
Webanwendung: Disponenten
App für die Gabelstapler Fahrer
Ionic für Mobile Android App
Tonspur: Wo immer der Begriff Digitalisierung fällt, ist meist ein ganz bestimmter Teilbereich gemeint. Wenn wir über Datenpotenziale sprechen, müssen wir zunächst versuchen, uns einen Überblick zu verschaffen.
Tonspur: Wo immer der Begriff Digitalisierung fällt, ist meist ein ganz bestimmter Teilbereich gemeint. Wenn wir über Datenpotenziale sprechen, müssen wir zunächst versuchen, uns einen Überblick zu verschaffen.
Artikel zur https://nitayneeman.com/posts/understanding-the-angular-cli-workspace-file/
Nicht zwangsweise css, kann auch less oder sas sein Cli anpassen
Beim Typen Bindung wird on the fly validiert
Kein NgIF wird nicht in Dom eingebaut
In der Regel nich bockiernde Spezialfall
Jeder mal wenn observabel nuenen Wert wird die auch aktualisiert
Subscribe bleibt immer bestehen.
Auch mal Unssubscribe verwenden
ngOnDistroy
Alternativ await async
Short beim erstellen –_routing alles fertig
Modula pp: bei mehren modulen wichtig