Started swiftapp#17
Conversation
Vibe Coded Swift App beginning on first Evening of Jufo 2026
There was a problem hiding this comment.
Pull request overview
This PR expands the DailyQuest web app (PWA) with a progressive tutorial system, dungeon combat, achievements/UX updates, and adds an initial SwiftUI app scaffold plus extensive documentation and deployment setup.
Changes:
- Added a progressive tutorial system (state in IndexedDB, feature guides, triggers, docs).
- Implemented/updated dungeon combat flow, focus timer rewards, shop/inventory rules, achievements UI, and offline caching.
- Introduced a new SwiftUI “DailyQuest” app foundation (models + core views) and added project/docs/report materials and GitHub Pages workflow.
Reviewed changes
Copilot reviewed 21 out of 119 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tutorial/README.md | Documents progressive tutorial architecture, triggers, and integration examples. |
| tutorial/js/tutorial_triggers.js | Adds helper trigger functions for sub-feature tutorials. |
| tutorial/js/tutorial_tour.js | Marks legacy “tour” as disabled (stub). |
| tutorial/js/tutorial_state.js | Adds IndexedDB-backed tutorial completion + seen-feature tracking. |
| tutorial/js/tutorial_dynamic.js | Marks legacy “dynamic tutorial” as disabled (stub). |
| service-worker.js | Adds explicit asset caching, cache cleanup, cache-first fetch strategy. |
| README.md | Adds project overview, features, docs links, install instructions. |
| Mathematische-Konzepte.md | Adds math/system documentation (leveling, scaling, probabilities, etc.). |
| manifest.json | Adds PWA manifest metadata + icons. |
| Lerndateien/10_Code_Architektur_Best_Practices.md | Adds learning notes on architecture best practices. |
| Lerndateien/09_Design_System_CSS.md | Adds learning notes on CSS design system. |
| Lerndateien/08_Belohnung_Shop_Items.md | Adds learning notes on shop/inventory concepts. |
| Lerndateien/07_Der_Dungeon.md | Adds learning notes on dungeon/combat concepts. |
| Lerndateien/06_Aufgaben_und_Training.md | Adds learning notes on quests/training flow. |
| Lerndateien/05_Spieler_Charakter_System.md | Adds learning notes on character system. |
| Lerndateien/04_Erfolge_und_Achievements.md | Adds learning notes on achievements tracking. |
| Lerndateien/03_Datenbank_und_Speichern.md | Adds learning notes on IndexedDB persistence. |
| Lerndateien/02_Startpunkt_Index_und_Main.md | Adds learning notes on entrypoint and app init. |
| Lerndateien/01_Ueberblick_Projekt.md | Adds learning notes on overall project overview. |
| Jugendforscht-Bericht/Struckturplan-Jugendforscht2026.md | Adds report structure plan for Jugend forscht writeup. |
| Jugendforscht-Bericht/Jugendforscht-Bericht-Plan.md | Adds report planning checklist/outline. |
| js/vibe-fokus/vibe_state.js | Updates vibe/focus state persistence and migration cleanup. |
| js/vibe-fokus/page_fokus_timer.js | Updates focus timer UI/logic and rewards/stat gain rules. |
| js/vibe-fokus/page_fokus_main.js | Simplifies focus page entry to timer-only view. |
| js/page_shop.js | Updates shop rendering and purchasing constraints (incl. streak freeze limit). |
| js/page_extra_quest.js | Adds/updates extra quest countdown + completion flow and UI toggling. |
| js/page_achievements.js | Implements achievements list UI, info popup, claim flow, new “focus_time” support. |
| js/fallback-check.js | Adds watchdog fallback if app fails to signal readiness. |
| js/dungeons/page_dungeon_main.js | Implements dungeon page rendering, actions, animations, win/loss handling, tutorial hooks. |
| js/dungeons/dungeon_combat.js | Adds combat state + damage calculations + player stat snapshot via cache. |
| js/database.js | Bumps DB version and ensures stores; adds dungeon progress helpers. |
| js/character/page_character_main.js | Renders character page + tabs; ties into stats/inventory rendering. |
| js/character/page_character_labels.js | Adds label/title system based on stat distribution. |
| js/character/page_character_inventory.js | Adds inventory/equipment UI handling, selling, and combat cache updates. |
| info/theories_gamification.md | Adds gamification theory documentation. |
| info/technical_documentation.md | Adds technical architecture + PWA + IndexedDB documentation. |
| info/design_guide.md | Adds design system documentation. |
| Funktion-Erklaerungen/18_Translations.md | Adds translation system functional explanation doc. |
| Funktion-Erklaerungen/16_Weight_Tracking.md | Adds weight tracking functional explanation doc. |
| Funktion-Erklaerungen/10_Character_Labels.md | Adds character labels functional explanation doc. |
| Funktion-Erklaerungen/01_Character_System.md | Adds character system functional explanation doc. |
| data/dungeons.js | Adds dungeon definitions (monsters, tasks, rewards). |
| data/achievements.js | Adds achievement definitions including new focus_time. |
| DailyQuest-SwiftApp/DailyQuest/ShopView.swift | Adds SwiftUI shop UI with filtering and buying. |
| DailyQuest-SwiftApp/DailyQuest/SettingsView.swift | Adds SwiftUI settings UI incl. export/import and tutorial reset. |
| DailyQuest-SwiftApp/DailyQuest/OnboardingView.swift | Adds SwiftUI onboarding flow for initial setup. |
| DailyQuest-SwiftApp/DailyQuest/Models.swift | Adds Swift models for game state, items, dungeons, focus, achievements, etc. |
| DailyQuest-SwiftApp/DailyQuest/FocusView.swift | Adds SwiftUI focus timer + session stats + label management. |
| DailyQuest-SwiftApp/DailyQuest/ExtraQuestView.swift | Adds SwiftUI extra quest UI (inactive + active with timer). |
| DailyQuest-SwiftApp/DailyQuest/ExercisesView.swift | Adds SwiftUI daily quests + free training + info sheet flow. |
| DailyQuest-SwiftApp/DailyQuest/DungeonView.swift | Adds SwiftUI dungeon encounter UI and action handling. |
| DailyQuest-SwiftApp/DailyQuest/DailyQuestApp.swift | Adds SwiftUI app entrypoint. |
| DailyQuest-SwiftApp/DailyQuest/ContentView.swift | Adds SwiftUI TabView shell, overlays, onboarding, dungeon cover, settings/achievements sheets. |
| DailyQuest-SwiftApp/DailyQuest/BackupDocument.swift | Adds FileDocument wrapper for JSON backups. |
| DailyQuest-SwiftApp/DailyQuest/Assets.xcassets/Contents.json | Adds Xcode asset catalog metadata. |
| DailyQuest-SwiftApp/DailyQuest/Assets.xcassets/AppIcon.appiconset/Contents.json | Adds app icon set manifest. |
| DailyQuest-SwiftApp/DailyQuest/Assets.xcassets/AccentColor.colorset/Contents.json | Adds accent color asset manifest. |
| DailyQuest-SwiftApp/DailyQuest/AchievementsView.swift | Adds SwiftUI achievements list UI + claim action. |
| DailyQuest-SwiftApp/DailyQuest.xcodeproj/xcuserdata/noah.xcuserdatad/xcschemes/xcschememanagement.plist | Adds Xcode user scheme metadata (user-specific). |
| DailyQuest-SwiftApp/DailyQuest.xcodeproj/project.xcworkspace/contents.xcworkspacedata | Adds Xcode workspace metadata. |
| css/pages/shop.css | Adds shop page layout/filter styling. |
| css/pages/fokus.css | Updates focus page styling for timer-only flow. |
| css/pages/extra-quest.css | Adds extra quest page styling. |
| css/pages/exercises.css | Adds compact card layout + hero/reveal UI styling. |
| css/pages/dungeon.css | Adds dungeon page layout, sticky monster card, animations, inputs, overlays. |
| css/pages/achievements.css | Adds achievements card styling + info popup styling. |
| css/components/cards.css | Adds base card typography styling. |
| css/components/buttons.css | Adds button styles, tabs, filter buttons. |
| CHANGELOG.md | Adds multi-version changelog with major feature notes. |
| Breichtsplanung.md | Adds report planning outline (duplicate content with report plan). |
| .github/workflows/static.yml | Adds GitHub Pages deployment workflow for static site. |
Files not reviewed (1)
- DailyQuest-SwiftApp/DailyQuest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if store.state.character.weightTrackingEnabled { | ||
| TextField(store.t("target_weight"), value: Binding( | ||
| get: { store.state.character.targetWeight }, | ||
| set: { store.updateTargetWeight($0) } | ||
| ), format: .number) | ||
| .keyboardType(.decimalPad) |
There was a problem hiding this comment.
Hier wird ein TextField(_:value:format:) mit einer Binding<Double?> (Optional) und format: .number verwendet. Das führt i.d.R. zu einem Compile-Error, weil FloatingPointFormatStyle<Double> als FormatInput ein nicht-optional Double erwartet. Bitte eine nicht-optionale Binding-Bridge bereitstellen (z.B. Binding<Double> mit Default) oder auf ein String-basiertes TextField mit Parsing/Validation wechseln, wenn nil als „kein Zielgewicht gesetzt“ unterstützt werden soll.
…rdatad/xcschemes/xcschememanagement.plist Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Vibe Coded Swift App beginning on first Evening of Jufo 2026