Files
nahbar/nahbar/nahbar.xcodeproj
sven b214bb6c50 Fix #23: Spotlight-Tour-System – Onboarding + Update-Touren
Neue wiederverwendbare Tour-Komponente (11 Swift-Dateien):

Model:
- TourID, TourTargetID, TourStep, Tour (max 6 Steps per precondition)
- TourCatalog: statische Registry; initiale Onboarding-Tour mit 6 Steps

State:
- TourSeenStore: UserDefaults-backed, injizierbar für Tests
- TourCoordinator: @Observable, Pending-Queue, Auto-Start-Logik
  · checkForPendingTours() startet .autoOnUpdate-Touren bei App-Update
  · .manualOrFirstLaunch-Touren werden explizit per start(_:) gestartet

UI:
- SpotlightShape: Even-Odd-Fill-Shape mit animatableData
- TourCardView: Progress-Dots, Navigation, Haptic-Feedback
- TourOverlayView: Spotlight-Cutout via thinMaterial + SpotlightShape eoFill,
  Coral-Glow-Ring, automatische Card-Positionierung (above/below/center)
- TourViewModifiers: .tourTarget() + .tourPresenter()

Integration:
- NahbarApp: TourCoordinator via @State + .environment()
- OnboardingContainerView: FeatureTourView ersetzt durch TourCoordinator.start(.onboarding);
  .tourPresenter() im fullScreenCover-Kontext; OnboardingPrivacyView bleibt erhalten
- ContentView: .tourPresenter() für main-app Update-Touren + checkForPendingTours()
- SettingsView: neue "App-Touren"-Sektion zum manuellen Neu-Starten

Tests (40 Tests in 4 Dateien):
- TourCatalogTests, TourSeenStoreTests, TourCoordinatorTests, AutoStartLogicTests

Lokalisierung: DE + EN für alle Tour-Strings in Localizable.xcstrings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 19:06:56 +02:00
..