Slide 1

Slide 1 text

Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps Sascha Lehmann @derLehmann_S Developer Consultant

Slide 2

Slide 2 text

Developer Consultant @ Thinktecture AG Sascha Lehmann @derLehmann_S [email protected] https://www.thinktecture.com/thinktects/sascha-lehmann/ Spezialisierung: Angular und UI/UX  ✉  Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 3

Slide 3 text

22. Februar– 05. April 2023 Angular-Web-Apps Webinar-Reihe Alle Webinare unserer Web- App-Reihe finden Sie hier: thinktecture.com/ angular-web-apps/ Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 4

Slide 4 text

ANIMATIONS “Zu zeitaufwändig!” “Verursachen nur Performanceprobleme!” “Sind einfach unnötig” “Haben keinen wesentlichen Mehrwert" “Verursachen zu viel Boilerplate-Code” Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 5

Slide 5 text

Grundlagen Tech- Stacks Angular Animations Tipps & Debugging Resume Agenda Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 6

Slide 6 text

Der evolutionäre Einfluss Menschliches Gesichtsfeld Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Experiment Erwischt :-P Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 10

Slide 10 text

Blindness of Change Image from https://en.wikipedia.org/wiki/Change_blindness Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 11

Slide 11 text

Blindness of Change Image from https://en.wikipedia.org/wiki/Change_blindness Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 12

Slide 12 text

Blindness of Change Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 13

Slide 13 text

Lenken den Fokus Helfen ein Mentales Modell aufzubauen Kommunizieren State Change Verhindern Desorientierung Sorgen für ”Vergnügen” Aufgaben von Animationen in der UX   ↻   Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 14

Slide 14 text

Arron Walter’s Hierachy of User Needs Erwartungen an Applikationen Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps Pleasurable Usable Reliable Functional • UI / UX Experte • Autor “Design for Emotion” • Speaker • Consultant Mehr Infos: https://www.aarronwalter.com/

Slide 15

Slide 15 text

“Delight” macht den Unterschied Erwartungen an Applikationen Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 16

Slide 16 text

Easing Follow Through and Overlapping Action Squash and Stretch Anticipation Staging Straight ahead action and pose to pose Arcs Secondary Action Timing Exaggeration Solid drawing Appeal Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps 12 Prinzipien der Animation

Slide 17

Slide 17 text

Easing Follow Through and Overlapping Action Squash and Stretch Anticipation Staging Straight ahead action and pose to pose Arcs Secondary Action Timing Exaggeration Solid drawing Appeal Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps 12 Prinzipien der Animation ⭐ ⭐ ⭐ 2 2 3

Slide 18

Slide 18 text

Prinzip 1: Easing Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps https://m3.material.io/styles/motion/easing-and-duration/applying-easing-and-duration

Slide 19

Slide 19 text

Prinzip 3: Squash and Stretch Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps https://dribbble.com/shots/4815107-Follow-Accordion-Prototype

Slide 20

Slide 20 text

Prinzip 4: Anticipation Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps https://dribbble.com/shots/20328824-Features-Cards-Section-UI-Exploration

Slide 21

Slide 21 text

Prinzip 5: Staging Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps https://m3.material.io/styles/motion/transitions/transition-patterns

Slide 22

Slide 22 text

Prinzip 8: Secondary Action Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps https://dribbble.com/shots/14656980-Liquid-UI-Elements

Slide 23

Slide 23 text

Prinzip 9: Timing Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps https://dribbble.com/shots/14656980-Liquid-UI-Elements

Slide 24

Slide 24 text

Grundlagen Tech- Stacks Angular Animations Tipps & Debugging Resume Agenda Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 25

Slide 25 text

Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps CSS Web Animations API Frameworks Die Möglichkeiten Animieren im Web • Sehr mächtig • Abstraktionsebene (DSL) • Ggf. ”Schwergewichtig” • Flexibler • Mehr Kontrolle • Komplexere Orchestrierung • Basic • Einfach anzuwenden • Leichtgewichtig

Slide 26

Slide 26 text

Transitions / Animations CSS Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 27

Slide 27 text

Direktzugriff auf den Browser • Grundlage von CSS Transitions und Animations • API ermöglicht es Animationen in JavaScript zu schreiben • Verwendet Browserspezifische Animationsimplementierung à Browser optimiert selbst • Dynamisches setzen von Werten möglich Web Animations API Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 28

Slide 28 text

Welches soll ich verwenden?! Frameworks Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps Greensock

Slide 29

Slide 29 text

Grundlagen Tech- Stacks Angular Animations Tipps & Debugging Resume Agenda Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 30

Slide 30 text

Voraussetzungen • @angular/animations – Package ist installiert • Import des BrowserAnimationModule • Basiert auf Web Animations API (Fallback auf CSS Keyframes) • CSS-like Performance + Flexibilität von JavaScript Angular Animations Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 31

Slide 31 text

Anwendung Template Component Angular Animations Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 32

Slide 32 text

Domain Specific Language (DSL) • trigger() • state() • transition() • style() • animate() Angular Animations Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 33

Slide 33 text

Vordefinierte States • * (Wildcard) • void – (Für Elemente die dem DOM hinzugefügt werden oder verlassen) • * => * - (“Any-State“ Selektor) Aliasse • void => * à :enter • * => void à :leave • :increment • :decrement Angular Animations Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 34

Slide 34 text

Orchestrierung • query() Zum auswählen bestimmter Kindelemente • group() Mehrere Animationen parallel ausführen • sequenze() Mehrere Animationen nacheinander ausführen • stagger() Kaskadierende Verzögerung auf Elemente anwenden Angular Animations Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 35

Slide 35 text

Beispielanwendung animieren DEMO Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 36

Slide 36 text

My Best Practices • CSS Transitions / Animations mit Klassen anwenden • Ganze Trigger oder Animationsbestandteile in File(s) auslagern • AnimationReferenzeMetadata • Factory-Functions verwenden • Direktiven mit Animation-Player erstellen Reusing Animations Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 37

Slide 37 text

Grundlagen Tech- Stacks Angular Animations Tipps & Debugging Resume Agenda Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 38

Slide 38 text

Style Layout Paint Composite Browser Rendering Pipeline Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps • Alles was mit CSS und Animationen zu tun hat läuft in einem separaten Compositor Thread • Blockt NICHT den Hauptthread … • … allerdings sind Layout und Paint, Aufgabe des Main Thread • Parsing • Cascade • … • Platz Berechnung • Beinflussung • … • Colors • Images • Borders • … • opacity • transform • …

Slide 39

Slide 39 text

Welche eher vermeiden? • Die beste Performance wird mit Properties erzielt die nur den Composition Step beinflussen • transform • translate • scale • skew • rotate • opacity • Im Optimalfall vermeiden was Layout und Paint Steps betriff • width • height • position • color • shadows • background-image Welche Properties sollte ich animieren? Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 40

Slide 40 text

Browser-Tools nutzen Animationen Debuggen DEMO Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 41

Slide 41 text

Grundlagen Tech- Stacks Angular Animations Tipps & Debugging Resume Agenda Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 42

Slide 42 text

• Animationen NICHT zum Schluss bedenken, sondern von Anfangan mit einbeziehen • Animationen Sind wichtig um Applikationen lebensechter zu gestalten • Animationen mit Sinn und Verstand einseten • Pinzipien beachten • Konsistenz • Mit Erfahrungs steigern • So einfach wie möglich, so komplex wie nötig • Möglichst vermeiden Properties zu animieren die LAYOUT und PAINT Zyklus des Browsers betreffen Resume Web-Apps mit Angular Animationen als letzten Schliff für Angular-Apps

Slide 43

Slide 43 text

Sascha Lehmann [email protected] Dankeschön! Nächstes Webinar https://www.thinktecture.com/karriere/