AnimationRecipe

Prof. Dr. Robin Nunkesser

Agent-generated Example: Animationen

Verwendete Instructions

  • .github/copilot-instructions.md
  • .github/instructions/artifacts.instructions.md
  • .github/instructions/artifacts-consumers-education.instructions.md
  • .github/instructions/slides.instructions.md
  • agent-workbench/prompts/recurring/agent-generated-education-example.md

Prompt

Erstelle ein agent-generated example für animationen (MAUI, fortgeschrittene Studierende).
Feature-Scope: minimal (z.B. Todo-Liste). Wende MVVM mit CommunityToolkit.Mvvm und Unit Tests mit MSTest an.
Entscheide anhand der Architektur-Entscheidungstabelle aus den Instructions, welche weiteren Muster (Core-Projekt, Architekturschichten) das Konzept rechtfertigt — verwende sie, wenn dieselbe Komplexität in einem produktiven Einsatz diese Strukturen erfordern würde.
Lies zuerst die Instructions, ermittle den Foliensatz, dokumentiere Instructions + Prompt dort, vergleiche mit manuellem Beispiel, verifiziere MacCatalyst Build mit workaround zum mismatch des workloads mit der xcode version.

Architekturentscheidung

Aspekt Entscheidung Begründung
Feature-Scope Minimal (ein animiertes Element) Fokus auf Animationsbefehlen und Zustandswechsel
MVVM Ja Command-basierte Steuerung der Animationen
Unit Tests Ja (MSTest) ViewModel-Logik und Events sind ohne UI testbar
Core-Projekt + Interfaces Nein Keine Persistenz, kein Netzwerk, keine Integration
Architektur-Schichten Nein Für das didaktische Animationsziel nicht erforderlich

Ergebnis (agent-generated)

  • Vier Commands: Pulse, Spin, FadeToggle, Reset
  • CommunityToolkit.Mvvm mit [RelayCommand] und [ObservableProperty]
  • ViewModel feuert AnimationRequested-Events; UI führt konkrete MAUI-Animation aus
  • Constructor Injection für MainPage, AppShell, App
  • Compiled Bindings via x:DataType
  • Separates testbares Projekt AnimationRecipe.ViewModels
  • MSTest-Projekt AnimationRecipe.Tests mit 4 Tests
  • MacCatalyst-Workaround gesetzt: ValidateXcodeVersion=false

Vergleich: manuell vs. agent-generated

Kriterium Manuelles Beispiel Agent-generated Beispiel
Animationssteuerung OnAppearing im Code-Behind Commands im ViewModel
MVVM nein ja (Toolkit + Binding)
Testbarkeit kaum ViewModel unabhängig testbar
DI nein ja (MauiProgram)
Erweiterbarkeit eine Fade-Animation mehrere Animationstypen + Reset

Fazit: Die agent-generated Variante ist didaktisch klarer, strukturell moderner und für fortgeschrittene Studierende als Ersatz des manuellen Beispiels geeignet.

Live-Coding

Repository

Verifikation

  • Tests: dotnet test AnimationRecipe.Tests/AnimationRecipe.Tests.csproj → 4/4 erfolgreich
  • MacCatalyst-Build: dotnet build AnimationRecipe/AnimationRecipe.csproj -f net10.0-maccatalyst → erfolgreich