offene-fragen.md aktualisiert
This commit is contained in:
1 parent
92717ef7bd
commit
3e9877cbe9
1 file changed
+376
-162
+376
-162
@@ -13,253 +13,467 @@
|
||||
## 1. Level- & EXP-System (größte offene Lücke)
|
||||
|
||||
### Fragen
|
||||
- Wie genau wird **EXP** vergeben? Pro Wiederholung, pro Satz, pro Einheit, pro Übung?
|
||||
- Wie viel EXP erhält eine bestandenene Einheit — pro Tier unterschiedlich?
|
||||
- Bonus-EXP für saubere Ausführung, vollständige Sätze, Max-Rep?
|
||||
- EXP bei Nichtbestehen — Trost-EXP oder 0?
|
||||
- Level bei Tier-Wechsel: erhalten, relativ (%) oder absolut?
|
||||
- Level-Cap pro Tier?
|
||||
- Skaliert EXP mit Tier?
|
||||
|
||||
* Wie genau wird **EXP** vergeben? Pro Wiederholung, pro Satz, pro Einheit, pro Übung?
|
||||
* Wie viel EXP erhält eine bestandenene Einheit — pro Tier unterschiedlich?
|
||||
* Bonus-EXP für saubere Ausführung, vollständige Sätze, Max-Rep?
|
||||
* EXP bei Nichtbestehen — Trost-EXP oder 0?
|
||||
* Level bei Tier-Wechsel: erhalten, relativ (%) oder absolut?
|
||||
* Level-Cap pro Tier?
|
||||
* Skaliert EXP mit Tier?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ pro ausgeführter wiederholung gibt es exp
|
||||
- keine multiplikatoren für höhrere tiers - höhere tiers brauchen aber mehr exp pro aufstieg
|
||||
- Max-Rep gibt mehr exp als satzwiederholungen
|
||||
- ✅ bonus gibt es entsprechend dem tier wenn ein satz vollständig beendet wurde
|
||||
- ✅ keine trost-exp
|
||||
- ✅ jedes tier beginnt bei lv 0
|
||||
- ✅ jedes tier hat lv-cap
|
||||
- ✅ **Level-Cap pro Tier**: Beginner 25, Fortgeschritten 50, Pro ∞
|
||||
- ⚠️ selbe menge exp pro tier nur die aufstiege brauchen mehr exp pro level
|
||||
|
||||
* ✅ **Normale Wiederholung = 1 EXP**
|
||||
* ✅ **Max-Rep-Wiederholung = 2 EXP**
|
||||
* ✅ Bonus für einen vollständig abgeschlossenen Satz:
|
||||
|
||||
* Beginner: `+5 EXP`
|
||||
* Fortgeschritten: `+10 EXP`
|
||||
* Pro: `+15 EXP`
|
||||
* ✅ Auch bei einer nicht bestandenen Einheit bleiben die EXP der tatsächlich ausgeführten Wiederholungen erhalten.
|
||||
* ✅ Bei einer nicht bestandenen Einheit gibt es **keine Abschluss-EXP**.
|
||||
* ✅ Die Einheit zählt bei Nichtbestehen nicht als Fortschritt und muss erneut absolviert werden.
|
||||
* ✅ Jedes Tier beginnt bei **Level 0**.
|
||||
* ✅ **Level-Cap pro Tier**: Beginner 25, Fortgeschritten 50, Pro ∞
|
||||
* ✅ EXP pro Wiederholung bleibt in allen Tiers gleich.
|
||||
* ✅ Höhere Tiers benötigen mehr EXP pro Levelaufstieg.
|
||||
* ⚠️ Konkrete EXP-Kurve / benötigte EXP pro Level noch offen.
|
||||
|
||||
## 2. Tier-System & Tier-Wechsel
|
||||
|
||||
### Fragen
|
||||
- Wie wird das Tier bestimmt? (automatisch oder manuell)
|
||||
- Wann wird Aufstieg freigeschaltet? (EXP-Schwelle, Einheiten, Max-Rep, …)
|
||||
- Kann ein Tier übersprungen werden?
|
||||
- Ist „Pro" Endgame oder gibt es „Pro+"?
|
||||
- Wie wird Tier-Wechsel sichtbar gemacht?
|
||||
|
||||
* Wie wird das Tier bestimmt? (automatisch oder manuell)
|
||||
* Wann wird Aufstieg freigeschaltet? (EXP-Schwelle, Einheiten, Max-Rep, …)
|
||||
* Kann ein Tier übersprungen werden?
|
||||
* Ist „Pro" Endgame oder gibt es „Pro+"?
|
||||
* Wie wird Tier-Wechsel sichtbar gemacht?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Manuelle Wahl** mit Empfehlung: App schlägt Tier basierend auf `Aktivitätslevel` + erstem Kalibrierungs-Ergebnis vor, User bestätigt oder ändert - ok
|
||||
- ✅ **Freischaltung**: Tier-Aufstieg wird freigeschaltet wenn
|
||||
|
||||
* ✅ **Manuelle Wahl mit Empfehlung**: App schlägt Tier basierend auf `Aktivitätslevel` + Kalibrierung / erster Bewegungserfassung vor, User bestätigt oder ändert.
|
||||
* ✅ Tier-Reihenfolge: **Beginner → Fortgeschritten → Pro**
|
||||
* ✅ **Freischaltung**: Tier-Aufstieg wird freigeschaltet wenn
|
||||
|
||||
1. alle 13 Einheiten des aktuellen Tiers bestanden UND
|
||||
2. Level-Cap des aktuellen Tiers erreicht UND
|
||||
3. Max-Rep bei mind. 3 der letzten 5 Einheiten über Schwellwert (Tier-spezifisch)
|
||||
- ✅ **Kein Überspringen** (verhindert Überforderung, klare Progressions-Linie)
|
||||
- ✅ **„Pro" = Endgame für v1.0**. Spätere Erweiterung als Tier 4 ("Pro+" / "Elite") in v2.x — nicht im MVP
|
||||
- ✅ **Tier-Wechsel-Anzeige**: Popup + Animation + Farbwechsel der Übungs-Karte (sanfter Übergang von Rot → Orange → tieferes Rot für Liegestütze z. B.)
|
||||
- 💬 Schwellwert für Max-Rep-Freischaltung: Vorschlag `Max-Rep ≥ 1.5 × Beginner-Last der gleichen Einheit`. Beispiel Kniebeugen Einheit 1 Pro: 20, Schwelle = 30 Wiederholungen.
|
||||
3. übungsspezifischer Max-Rep-Zielwert bei mind. 3 der letzten 5 Einheiten erreicht wurde.
|
||||
* ✅ **Kein Überspringen** von Tiers.
|
||||
* ✅ **„Pro" = Endgame für v1.0**.
|
||||
* ✅ Tier-Wechsel erfolgt **nicht automatisch**.
|
||||
* ✅ App zeigt **„Tier-Up verfügbar“**, User entscheidet selbst über den Wechsel.
|
||||
* ✅ Max-Rep-Zielwerte werden pro Übung und Tier separat definiert.
|
||||
* ⚠️ Konkrete Max-Rep-Zielwerte pro Übung / Tier noch offen.
|
||||
* ⚠️ Konkrete visuelle Darstellung des Tier-Ups noch offen.
|
||||
|
||||
## 3. Kalibrierung
|
||||
|
||||
### Fragen
|
||||
- Was genau misst der Gyrosensor? (Amplitude, Beschleunigungsspitzen, Winkel, Kombi)
|
||||
- Wie viele Referenzwiederholungen für saubere Kalibrierung?
|
||||
- Re-Kalibrierung wann möglich?
|
||||
- Verhalten bei Fehlschlag der Kalibrierung?
|
||||
- Mehrere Kalibrierungen pro Profil/Übung speichern?
|
||||
- Kalibrierung pro Übung oder pro Bewegungsrichtung?
|
||||
|
||||
* Was genau misst der Gyrosensor? (Amplitude, Beschleunigungsspitzen, Winkel, Kombi)
|
||||
* Wie viele Referenzwiederholungen für saubere Kalibrierung?
|
||||
* Re-Kalibrierung wann möglich?
|
||||
* Verhalten bei Fehlschlag der Kalibrierung?
|
||||
* Mehrere Kalibrierungen pro Profil/Übung speichern?
|
||||
* Kalibrierung pro Übung oder pro Bewegungsrichtung?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Sensorik-Kombi**: Accelerometer (Beschleunigungs-Threshold pro Wiederholung) + Gyroskop (Winkel-Extrempunkte)
|
||||
- ✅ **5 Referenzwiederholungen** als Standard, keine skip-optionen fürs kalibrieren
|
||||
- ✅ **Re-Kalibrierung manuell** jederzeit möglich (Settings → Übung → neu kalibrieren). **Auto-Re-Kalibrierung** wenn Bewegungserkennung an 2 aufeinanderfolgenden Trainingseinheiten schlechter als 70 % Confidence.
|
||||
- ✅ **Fehlschlag-Handling**: UI zeigt konkrete Anweisungen ("Smartphone zu locker", "zu langsam", "Winkel zu klein") + Re-Try-Button
|
||||
- ⚠️ **Eine Kalibrierung pro Übung pro Profil** für v1.0 (vereinfacht DB-Schema). Mehrere Kalibrierungen (Tagesform) v2.x.
|
||||
- ✅ **Pro Übung, eine Hauptkalibrierung**. Varianten (enge/breite Liegestütze) sind **eigene Übungen**.
|
||||
|
||||
* ✅ **Sensorik-Kombi**: Accelerometer + Gyroskop.
|
||||
* ✅ **5 Referenzwiederholungen** als Standard, keine Skip-Option fürs Kalibrieren.
|
||||
* ✅ Beim ersten Öffnen einer noch nicht kalibrierten Übung ist die Kalibrierung verpflichtend.
|
||||
* ✅ Ablauf:
|
||||
|
||||
1. korrekte Smartphone-Position anzeigen
|
||||
2. 5 saubere Wiederholungen durchführen
|
||||
3. Sensorwerte / Bewegungsmuster erfassen
|
||||
4. Bewegungsbereich berechnen
|
||||
5. Kalibrierung bestätigen
|
||||
6. lokal speichern
|
||||
7. Training freigeben
|
||||
* ✅ **Re-Kalibrierung manuell** jederzeit möglich.
|
||||
* ✅ Bei dauerhaft schlechter Erkennung empfiehlt die App eine Re-Kalibrierung.
|
||||
* ✅ Richtwert: 2 Trainingseinheiten hintereinander mit weniger als ca. 70 % Confidence.
|
||||
* ✅ Keine erzwungene Auto-Re-Kalibrierung.
|
||||
* ✅ Auswahl bei Empfehlung: **„Neu kalibrieren“ / „Später“**
|
||||
* ✅ **Fehlschlag-Handling**: UI zeigt konkrete Anweisungen wie „Bewegung zu klein“, „Bewegung zu unregelmäßig“, „Smartphone zu locker“, „Smartphone zu stark bewegt“ oder „Sensorwerte nicht eindeutig“ + erneuter Versuch mit 5 Wiederholungen.
|
||||
* ✅ **Eine Kalibrierung pro Übung pro Profil** für v1.0.
|
||||
* ✅ Kalibrierung erfolgt pro Übung.
|
||||
|
||||
## 4. Max-Rep
|
||||
|
||||
### Fragen
|
||||
- Zählt Max-Rep in EXP-Vergabe ein?
|
||||
- Wird er für Statistiken ausgewertet?
|
||||
- Wiederholungszahl per Sensor oder manuell?
|
||||
- Limit / Sicherheitsabbruch bei Formeinbruch?
|
||||
- Anzeige prominent oder versteckt?
|
||||
|
||||
* Zählt Max-Rep in EXP-Vergabe ein?
|
||||
* Wird er für Statistiken ausgewertet?
|
||||
* Wiederholungszahl per Sensor oder manuell?
|
||||
* Limit / Sicherheitsabbruch bei Formeinbruch?
|
||||
* Anzeige prominent oder versteckt?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Max-Rep zählt EXP** (siehe §1)
|
||||
- ✅ **Statistik-Max-Rep**: ja, eigener Chart mit Verlauf + persönlicher Rekord
|
||||
- ✅ **Sensor-Zählung primär** + manueller Override-Button ("Mehr gemacht? Hier anpassen")
|
||||
- ✅ **Sicherheitsabbruch**: kein hartes Limit, aber Warnton + Vibrations-Pulse wenn Form-Degradation erkannt wird (Acceleration-Varianz steigt um Faktor 1.5+)
|
||||
- ✅ **Prominente Anzeige** auf Hauptmenü: "Klimmzüge — Level 6 · Max-Rep 8" (gibt intrinsische Motivation)
|
||||
|
||||
* ✅ **Max-Rep zählt EXP**: jede Wiederholung = `2 EXP`.
|
||||
* ✅ **Statistik-Max-Rep**: eigener Verlauf + persönlicher Rekord.
|
||||
* ✅ **Sensor-Zählung primär** + manuelle Korrektur über `+1` / `−1`.
|
||||
* ✅ Kein hartes Limit und kein automatischer Sicherheitsabbruch.
|
||||
* ✅ Bei deutlich schlechter werdender Bewegungserkennung: Vibrationssignal + visueller Hinweis.
|
||||
* ✅ **Prominente Anzeige** bei der jeweiligen Übung, z. B. `Klimmzüge — Level 6 · Max-Rep 8`.
|
||||
* ⚠️ Konkrete Sensor-Schwellwerte für Warnungen werden erst nach Praxistests festgelegt.
|
||||
|
||||
## 5. Profile
|
||||
|
||||
### Fragen
|
||||
- Welche Aktivitätslevel-Werte genau?
|
||||
- Wie viele Profile maximal?
|
||||
- Avatar / Foto — ja oder nur Text?
|
||||
- Löschen / Umbenennen möglich?
|
||||
- Profilwechsel mid-training erlaubt?
|
||||
- Datenmigration geplant?
|
||||
- Mehrere Personen auf einem Gerät — Feature oder Risiko?
|
||||
|
||||
* Welche Aktivitätslevel-Werte genau?
|
||||
* Wie viele Profile maximal?
|
||||
* Avatar / Foto — ja oder nur Text?
|
||||
* Löschen / Umbenennen möglich?
|
||||
* Profilwechsel mid-training erlaubt?
|
||||
* Datenmigration geplant?
|
||||
* Mehrere Personen auf einem Gerät — Feature oder Risiko?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Aktivitätslevel**: 4 Werte — "Anfänger" / "Hobby" (1–2x/Woche) / "Aktiv" (3–4x/Woche) / "Leistungssportler"
|
||||
- ✅ **Max 8 Profile** pro Gerät (mehr ist selten realistisch; falls doch nötig: Cloud-Sync in v2.x)
|
||||
- ✅ **Avatar via Emoji-Auswahl** (kein Foto in v1.0 — Privacy + Storage)
|
||||
- ✅ **Löschen mit Bestätigungs-Dialog** (zwei Mal tippen) · **Umbenennen** jederzeit
|
||||
- ⚠️ **Profilwechsel mid-training gesperrt** — verhindert versehentlichen Daten-Mix
|
||||
- ✅ **Datenmigration v1.x**: JSON-Export/Import via Share-Sheet (kein Cloud-Zwang, DSGVO-clean)
|
||||
- 💬 **Multi-User auf einem Gerät** = bewusstes Feature (Familien-Use-Case), aber **kein Login-Schutz** in v1.0. Wer das braucht: PIN-Sperre optional in v2.x.
|
||||
|
||||
* ✅ **Aktivitätslevel**: 4 Werte — „Anfänger“ / „Hobby“ (1–2x/Woche) / „Aktiv“ (3–4x/Woche) / „Leistungssportler“
|
||||
* ✅ **Keine künstliche Begrenzung** der Profilanzahl.
|
||||
* ✅ Profil enthält: Name, Größe, Gewicht, Aktivitätslevel und Emoji-Avatar.
|
||||
* ✅ **Avatar via Emoji-Auswahl**, kein Foto in v1.0.
|
||||
* ✅ **Löschen mit Bestätigungsdialog** · **Umbenennen** jederzeit.
|
||||
* ✅ Beim Löschen werden Trainingsdaten, Level, EXP, Statistiken und Kalibrierungen des Profils dauerhaft gelöscht.
|
||||
* ✅ **Profilwechsel mid-training gesperrt**.
|
||||
* ✅ **Datenmigration**: JSON-Export/Import.
|
||||
* ✅ **Multi-User auf einem Gerät** = bewusstes Feature.
|
||||
* ✅ Kein PIN-/Passwortschutz in v1.0.
|
||||
|
||||
## 6. Trainingseinheit & Progression
|
||||
|
||||
### Fragen
|
||||
- Wann genau rückt man eine Einheit vor (Konflikt idee.md ↔ progress.md)?
|
||||
- Regenerationstage: nur passive Anzeige oder Stretching-Bonusaufgaben?
|
||||
- Pausen-Timer: nur Countdown oder Sound/Haptik?
|
||||
- Bewegungserkennung-Fehler: manuelle Korrektur möglich?
|
||||
- Wann gilt Satz als bestanden? (vollständig oder Mindest-Schwelle)
|
||||
- Übungs-Reihenfolge: frei oder fixer Tagesplan?
|
||||
|
||||
* Wann genau rückt man eine Einheit vor (Konflikt idee.md ↔ progress.md)?
|
||||
* Regenerationstage: nur passive Anzeige oder Stretching-Bonusaufgaben?
|
||||
* Pausen-Timer: nur Countdown oder Sound/Haptik?
|
||||
* Bewegungserkennung-Fehler: manuelle Korrektur möglich?
|
||||
* Wann gilt Satz als bestanden? (vollständig oder Mindest-Schwelle)
|
||||
* Übungs-Reihenfolge: frei oder fixer Tagesplan?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Nicht bestanden = dieselbe Einheit erneut** (übereinstimmend mit `progress.md`-Logik). Vorrücken erst wenn bestanden.
|
||||
- ✅ **Regenerationstage**: passive Anzeige + 3 optionale Stretching-Vorschläge (statisch, kein Sensor-Tracking)
|
||||
- ✅ **Pausen-Timer**: Countdown + dezenter Tick-Ton letzte 5 Sek. + Vibrations-Pulse bei Satzende
|
||||
- ✅ **Manuelle Korrektur**: "+1" / "−1" Button am Satzende (wenn Sensor-Erkennung danebenlag)
|
||||
- ✅ **Satz bestanden** = alle Ziel-Wiederholungen erreicht. Bei Sensor-Fehler zählt manuelle Korrektur.
|
||||
- ✅ **Übungs-Reihenfolge**: frei wählbar pro Trainingstag, aber App **schlägt Reihenfolge** vor (z. B. Klimmzüge zuerst wenn noch am kräftigsten)
|
||||
|
||||
* ✅ **Nicht bestanden = dieselbe Einheit erneut**. Vorrücken erst wenn bestanden.
|
||||
* ✅ **Regenerationstage**: passive Anzeige mit Hinweis `Heute ist Regenerationstag.` + Anzeige der nächsten geplanten Einheit.
|
||||
* ✅ Restdays sind empfohlen, aber nicht verpflichtend.
|
||||
* ✅ Button **„Restday skippen“**, um direkt die nächste reguläre Einheit zu starten.
|
||||
* ✅ **Pausen-Timer**: standardmäßig 60 Sekunden, manuell bis auf 5 Sekunden reduzierbar.
|
||||
* ✅ Sichtbarer Countdown + Tick / Countdown in den letzten 5 Sekunden + Vibration bei Pausenende.
|
||||
* ✅ Sounds und Haptik können in den Einstellungen deaktiviert werden.
|
||||
* ✅ **Manuelle Korrektur**: `+1` / `−1` am Satzende.
|
||||
* ✅ **Satz bestanden** = alle Ziel-Wiederholungen erreicht.
|
||||
* ✅ **Einheit bestanden** = alle regulären Sätze vollständig abgeschlossen.
|
||||
* ✅ **Übungs-Reihenfolge**: frei wählbar, keine Pflichtreihenfolge in v1.0.
|
||||
|
||||
## 7. Übungen
|
||||
|
||||
### Fragen
|
||||
- Wann kommt Dips (5. Übung)?
|
||||
- Neue Übungen über App oder Code-Update?
|
||||
- Sonderregeln pro Übung (z. B. Plank mit Zeit)?
|
||||
- Variationen als eigene Übung oder Modifikation?
|
||||
|
||||
* Wann kommt Dips (5. Übung)?
|
||||
* Neue Übungen über App oder Code-Update?
|
||||
* Sonderregeln pro Übung (z. B. Plank mit Zeit)?
|
||||
* Variationen als eigene Übung oder Modifikation?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Dips: v1.0 mit dabei** (5. Übung, Farbe Cyan/Lila)
|
||||
- ✅ **v1.x**: neue Übungen per Code-Update (Release-Notes) — **keine User-definierten Übungen** (validierte Progressionstabellen sind nicht trivial)
|
||||
- ✅ **Sonderregeln pro Übung**: möglich (Plank mit Zeit, Burpees mit Combo-Zähler), aber jede Sonderregel ist eigene Übung mit eigener Progressionstabelle
|
||||
- ✅ **Variationen = eigene Übung** (z. B. "Enge Liegestütze" separat von "Liegestütze")
|
||||
- 💬 Langfristig: Community-Übungen in v2.x als opt-in Content-Pack
|
||||
|
||||
* ✅ **v1.0**: Liegestütze, Kniebeugen, Klimmzüge, Sit-ups.
|
||||
* ✅ **Dips ab v1.x** als erste zusätzliche Übung.
|
||||
* ✅ Neue Übungen per App-/Code-Update.
|
||||
* ✅ **Keine User-definierten Übungen** in v1.x.
|
||||
* ⚠️ Sonderregeln wie zeitbasierte Übungen werden später separat betrachtet.
|
||||
* ✅ **Übungsvariationen bleiben vorerst komplett außen vor**.
|
||||
* ✅ Keine engen/breiten Varianten, Griffvarianten oder sonstigen Unterformen für v1.0 / v1.x geplant.
|
||||
|
||||
## 8. Sensorik / Hardware
|
||||
|
||||
### Fragen
|
||||
- Welche Sensoren genau?
|
||||
- Smartphone-Mounting-Empfehlung?
|
||||
- Geräteanforderungen?
|
||||
- Fallback ohne Sensor?
|
||||
- Gleich gute Erkennung für alle Übungen?
|
||||
|
||||
* Welche Sensoren genau?
|
||||
* Smartphone-Mounting-Empfehlung?
|
||||
* Geräteanforderungen?
|
||||
* Fallback ohne Sensor?
|
||||
* Gleich gute Erkennung für alle Übungen?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Accelerometer + Gyroskop** (Standard in allen modernen Smartphones)
|
||||
- ✅ **Mounting-Empfehlung**: Brustgurt-Halterung für Klimmzüge/Liegestütze, Oberschenkel-Halterung für Kniebeugen, freiliegend (Boden) für Sit-ups
|
||||
- ✅ **Geräteanforderungen**: iOS 14+ / Android 8+ mit Gyroskop (Pre-2017 Geräte sind Ausnahme)
|
||||
- ✅ **Fallback ohne Sensor**: manuelle Wiederholungs-Eingabe per Tap-Button
|
||||
- 💬 **Klimmzüge sind Sensor-anspruchsvoll** (vertikale hängende Position, viel Bewegung im Schulterbereich). Hier ggf. zusätzlicher Algorithmus mit Winkel-Threshold statt Beschleunigungs-Threshold.
|
||||
|
||||
* ✅ **Accelerometer + Gyroskop**.
|
||||
* ✅ ausschließlich **Android**.
|
||||
* ✅ **Liegestütze**: Smartphone wird so positioniert, dass die Nase bei jeder vollständigen Wiederholung das Smartphone / Display berührt.
|
||||
* ✅ **Kniebeugen, Klimmzüge und Sit-ups**: Erkennung über Bewegungs-/Sensordaten.
|
||||
* ✅ Vor der Kalibrierung zeigt die App ein **Piktogramm / eine Illustration**, wie das Smartphone gehalten bzw. positioniert werden muss.
|
||||
* ✅ Das gleiche Piktogramm wird auch **vor jedem normalen Training** der jeweiligen Übung angezeigt.
|
||||
* ✅ Kalibrierung und späteres Training müssen mit derselben Smartphone-Position durchgeführt werden.
|
||||
* ✅ **Fallback ohne funktionierende Sensorerkennung**: manueller Rep-Counter.
|
||||
* ⚠️ Exakte Smartphone-Position für Kniebeugen, Klimmzüge und Sit-ups wird durch Praxistests festgelegt.
|
||||
* ⚠️ Konkrete Erkennungsalgorithmen / Thresholds werden durch Praxistests festgelegt.
|
||||
* ⚠️ Mindest-Android-Version noch offen.
|
||||
|
||||
## 9. UI / UX & Tech-Stack
|
||||
|
||||
### Fragen
|
||||
- Plattform: Native, Flutter, React Native, PWA?
|
||||
- Offline-First oder Cloud-Sync?
|
||||
- Notifications / Reminder?
|
||||
- Sprachen?
|
||||
- Dark Mode?
|
||||
- Sounds / Haptik?
|
||||
|
||||
* Plattform: Native, Flutter, React Native, PWA?
|
||||
* Offline-First oder Cloud-Sync?
|
||||
* Notifications / Reminder?
|
||||
* Sprachen?
|
||||
* Dark Mode?
|
||||
* Sounds / Haptik?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Flutter** — eine Codebase für iOS + Android, gute Sensorik-Support, schnelle UI-Iteration
|
||||
- ✅ **Offline-First** — alle Daten lokal (SQLite), Cloud-Sync optional in v2.x
|
||||
- ✅ **Notifications** für Trainingstage (Tag vorher + am Tag selbst) + Regenerations-Reminder (optional)
|
||||
- ✅ **Sprachen v1.0**: Deutsch + Englisch (Struktur für einfache i18n-Erweiterung)
|
||||
- ✅ **Dark Mode** mit System-Follow
|
||||
- ✅ **Sounds + Haptik** für Satzwechsel, Tier-Up, Bestleistung (alles in Settings einzeln deaktivierbar)
|
||||
|
||||
* ✅ **Flutter / Dart**
|
||||
* ✅ ausschließlich **Android**
|
||||
* ✅ **vollständig lokal / Offline-First**
|
||||
* ✅ kein Backend, keine Cloud, keine Accounts und keine Online-API-Abhängigkeiten.
|
||||
* ✅ **Sprache v1.0: nur Deutsch**
|
||||
* ✅ Theme folgt standardmäßig dem System.
|
||||
* ✅ Nutzer kann optional **Hell** oder **Dunkel** erzwingen.
|
||||
* ✅ **Täglicher lokaler Trainings-Reminder**, Uhrzeit wird vom User selbst festgelegt.
|
||||
* ✅ Kurzes dezentes **„Bing“** nach jeder erfolgreich erkannten Wiederholung.
|
||||
* ✅ Tick / Countdown in den letzten 5 Sekunden der Pause + Vibration bei Pausenende.
|
||||
* ✅ Sounds und Haptik deaktivierbar.
|
||||
* ✅ **Font Awesome Free** für allgemeine UI-Icons (`font_awesome_flutter`).
|
||||
* ✅ Eigene lokale Piktogramme für Smartphone-Haltung / spezielle Trainingsanzeigen.
|
||||
* ✅ Icons, Sounds, Bilder und sonstige Assets werden lokal mit der App ausgeliefert.
|
||||
* ✅ Keine Assets werden online nachgeladen.
|
||||
* ✅ **State Management:** Riverpod
|
||||
* ✅ **Navigation:** go_router
|
||||
* ✅ **Lokale Datenbank:** Drift + SQLite
|
||||
* ✅ **Sensorzugriff:** sensors_plus
|
||||
* ✅ **Lokale Notifications:** flutter_local_notifications
|
||||
* ✅ **Sounds:** audioplayers
|
||||
|
||||
## 10. Daten & Persistenz
|
||||
|
||||
### Fragen
|
||||
- Speicher: lokal (SQLite/JSON/Core Data) oder Cloud?
|
||||
- Backup-Strategie?
|
||||
- DSGVO / Datenschutz?
|
||||
- Datenformat für späteren Umzug?
|
||||
|
||||
* Speicher: lokal (SQLite/JSON/Core Data) oder Cloud?
|
||||
* Backup-Strategie?
|
||||
* DSGVO / Datenschutz?
|
||||
* Datenformat für späteren Umzug?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **SQLite** lokal (Flutter-Default, performant für 8 Profile × 5 Übungen × 13 Einheiten × 4 Sätze × Reps + Verlauf)
|
||||
- ✅ **Backup**: JSON-Export/Import manuell + Auto-Backup alle 7 Tage in App-internen Storage
|
||||
- ✅ **DSGVO**: alle Daten lokal, keine Telemetrie, keine User-IDs, kein Cloud. Privacy-Policy in App.
|
||||
- ✅ **Datenformat**: SQLite-Schema dokumentiert + JSON-Export mit Schema-Version. Migration bei Major-Updates mit Schema-Validator.
|
||||
|
||||
* ✅ **Drift + SQLite** für lokale Trainings- und Profildaten.
|
||||
* ✅ Nutzerdaten werden strikt von App-Inhalten / Assets getrennt gespeichert.
|
||||
* ✅ User-Datenbank enthält u. a. Profile, Level, EXP, Tier, Trainingsfortschritt, Einheiten, Sätze, Wiederholungen, Max-Reps, Rekorde, Kalibrierungsdaten und Trainingshistorie.
|
||||
* ✅ App-Inhalte wie Übungen, Trainingspläne, Icons, Piktogramme und Sounds liegen davon getrennt.
|
||||
* ✅ App-Updates oder neue Übungen dürfen bestehende Nutzerdaten **niemals löschen oder überschreiben**.
|
||||
* ✅ Datenbankänderungen erfolgen ausschließlich über **Schema-Versionen + Migrationen**.
|
||||
* ✅ **Backup**: manueller JSON-Export / Import.
|
||||
* ✅ Export enthält eine Schema-Version für spätere Migrationen.
|
||||
* ✅ Kein automatisches Cloud-Backup.
|
||||
* ✅ Kleine Einstellungen wie Theme, Sound, Vibration, Reminder-Uhrzeit und Satzpause werden separat lokal gespeichert.
|
||||
* ✅ **DSGVO / Datenschutz**: keine Accounts, keine Cloud, keine Telemetrie, keine Analytics, keine Trainingsdaten verlassen das Gerät.
|
||||
|
||||
## 11. Statistiken & Feedback
|
||||
|
||||
### Fragen
|
||||
- Verlaufschart pro Übung?
|
||||
- Persönliche Bestleistungen?
|
||||
- Wochen-/Monatsstatistik?
|
||||
- Streak-Tracking?
|
||||
|
||||
* Verlaufschart pro Übung?
|
||||
* Persönliche Bestleistungen?
|
||||
* Wochen-/Monatsstatistik?
|
||||
* Streak-Tracking?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Verlaufschart pro Übung** — Trainingslast (Sätze × Reps) über die letzten 30 Einheiten
|
||||
- ✅ **Persönliche Bestleistungen** je Übung + Max-Rep-Rekord separat
|
||||
- ✅ **Wochenstatistik** prominent (diese Woche: 4/4 Trainings absolviert, 480 EXP, Tier-Up in 320 EXP)
|
||||
- ✅ **Streak-Tracking** (aktuelle Serie, längste Serie) — motivierender gamification-light Touch
|
||||
|
||||
* ✅ **Statistiken pro Übung**:
|
||||
|
||||
* aktuelles Level
|
||||
* aktuelles Tier
|
||||
* aktuelle EXP / Fortschritt zum nächsten Level
|
||||
* letzter Max-Rep
|
||||
* persönlicher Max-Rep-Rekord
|
||||
* Max-Rep-Verlauf
|
||||
* absolvierte Einheiten
|
||||
* Gesamtwiederholungen
|
||||
* Trainingsvolumen
|
||||
* ✅ **Verlaufscharts pro Übung**, standardmäßig über die letzten 30 Einheiten.
|
||||
* ✅ Chart-Ansichten: Wiederholungen, Gesamtvolumen, Max-Rep, EXP-Verlauf.
|
||||
* ✅ **Wochenstatistik**: absolvierte Trainings, gesamte Wiederholungen, verdiente EXP, neue Rekorde und ggf. geskippte Restdays.
|
||||
* ✅ **Streak-Tracking** basiert auf geplanten Trainingseinheiten, nicht auf Kalendertagen.
|
||||
* ✅ Restday unterbricht Streak nicht.
|
||||
* ✅ Restday skippen + Training unterbricht Streak nicht.
|
||||
* ✅ Geplanten Trainingstag auslassen beendet die Streak.
|
||||
* ✅ Persönliche Rekorde mindestens für höchsten Max-Rep, höchste Wiederholungszahl in einer Einheit, Gesamtwiederholungen und längste Trainings-Streak.
|
||||
|
||||
## 12. Soziale / Gamification-Features (offen)
|
||||
|
||||
### Fragen
|
||||
- Achievements / Badges?
|
||||
- Tagesziel / Wochenziel außerhalb 30-Tage-Plan?
|
||||
- Freund:innen / Leaderboard?
|
||||
- Trainings-Tagebuch / Notizen?
|
||||
|
||||
* Achievements / Badges?
|
||||
* Tagesziel / Wochenziel außerhalb 30-Tage-Plan?
|
||||
* Freund:innen / Leaderboard?
|
||||
* Trainings-Tagebuch / Notizen?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ⚠️ **Achievements**: kleine Badges für "Erste Einheit bestanden", "7-Tage-Streak", "Tier-Up", "Alle 4 Übungen getestet" — kosmetisch, kein Pay-to-Win
|
||||
- ⚠️ **Wochenziel** optional: vom User setzbar ("3x diese Woche"), App erinnert wenn Plan abweicht
|
||||
- ❌ **Leaderboard/Freund:innen**: out-of-scope für v1.0 (Privacy, Server-Kosten)
|
||||
- ✅ **Trainings-Tagebuch**: einfache Notiz pro Einheit (max 280 Zeichen), optional
|
||||
|
||||
* ✅ **Achievements / Badges in v1.0**.
|
||||
* ✅ Achievements sind rein kosmetisch und geben keine zusätzlichen EXP.
|
||||
* ✅ Beispiele:
|
||||
|
||||
* erste Einheit abgeschlossen
|
||||
* 100 Wiederholungen
|
||||
* 1.000 Wiederholungen
|
||||
* erster Max-Rep
|
||||
* neuer Max-Rep-Rekord
|
||||
* Level 10 erreicht
|
||||
* Beginner abgeschlossen
|
||||
* erstes Tier-Up
|
||||
* 5er-Streak
|
||||
* 10er-Streak
|
||||
* 25er-Streak
|
||||
* alle vier Übungen trainiert
|
||||
* 10 Restdays geskippt
|
||||
* ✅ **Persönliches Wochenziel** in v1.0, z. B. `3 Trainingseinheiten diese Woche`.
|
||||
* ❌ **Freunde / Leaderboards / soziale Online-Features** nicht in v1.0.
|
||||
* ✅ **Trainings-Tagebuch** auf v1.x verschoben.
|
||||
* ⚠️ Freunde, Leaderboards oder Challenges werden nur später neu bewertet, falls LevelRep überhaupt Online-Funktionen erhält.
|
||||
|
||||
## 13. Fehler- & Edge-Cases
|
||||
|
||||
### Fragen
|
||||
- App-Crash mid-Einheit — teilweise bestanden speichern?
|
||||
- Sensor-Ausfall mid-workout?
|
||||
- Akku leer im Max-Rep?
|
||||
- Gerät neu kalibriert nötig mid-workout?
|
||||
|
||||
* App-Crash mid-Einheit — teilweise bestanden speichern?
|
||||
* Sensor-Ausfall mid-workout?
|
||||
* Akku leer im Max-Rep?
|
||||
* Gerät neu kalibriert nötig mid-workout?
|
||||
|
||||
### Antwort-Empfehlungen
|
||||
- ✅ **Auto-Save nach jedem Satz** (in SQLite). Bei Crash: vorherige Sätze bleiben, aktueller Satz verloren (User kann manuell nachtragen oder wiederholen)
|
||||
- ✅ **Sensor-Ausfall**: App bietet manuellen Tap-Counter an, Training läuft normal weiter
|
||||
- ✅ **Akku-Safe-Mode**: bei <15 % Akku optional Training ohne Sensor + Vibration-only Timer
|
||||
- ✅ **Re-Kalibrierung mid-workout**: App pausiert aktuelle Einheit, fordert Re-Kalibrierung, setzt Einheit fort (verlorene Sätze zählen nicht als bestanden — Einheit muss wiederholt werden wenn Re-Kalibrierung mitten in Einheit)
|
||||
|
||||
* ✅ **Auto-Save nach jedem abgeschlossenen Satz**.
|
||||
* ✅ Bei Crash / unerwartetem Schließen bleiben alle abgeschlossenen Sätze erhalten.
|
||||
* ✅ Der aktuell laufende Satz gilt als nicht abgeschlossen.
|
||||
* ✅ Beim Neustart erscheint **„Training fortsetzen?“**
|
||||
* ✅ **Sensor-Ausfall**: Training wird nicht abgebrochen; App informiert den User und wechselt auf manuellen Rep-Counter.
|
||||
* ✅ Bereits abgeschlossene Sätze bleiben bei Sensor-Ausfall erhalten.
|
||||
* ✅ **Akku-Warnung** bei niedrigem Akkustand, Richtwert `<15 %`.
|
||||
* ✅ Auswahl: normal weitertrainieren oder auf manuellen Rep-Counter wechseln.
|
||||
* ✅ Kein automatisches Umschalten.
|
||||
* ✅ **Re-Kalibrierung mid-workout**: bereits abgeschlossene Sätze bleiben gültig.
|
||||
* ✅ Nur der aktuelle Satz wird pausiert / verworfen.
|
||||
* ✅ Nach Re-Kalibrierung wird nur der aktuelle Satz erneut gestartet.
|
||||
* ✅ Beim absichtlichen Verlassen eines laufenden Trainings erscheint:
|
||||
|
||||
* „Training fortsetzen“
|
||||
* „Training speichern & verlassen“
|
||||
* „Training verwerfen“
|
||||
|
||||
## 14. Roadmap-Reihenfolge (Priorisierung offen)
|
||||
|
||||
### Antwort-Empfehlung (vorgeschlagene Roadmap)
|
||||
|
||||
**v1.0 (MVP) — ~3 Monate**
|
||||
- 4 Übungen (Liegestütze, Kniebeugen, Klimmzüge, Sit-ups) + Dips
|
||||
- 3 Tiers mit existierenden Progressionstabellen
|
||||
- 1 Profil pro Gerät (max 8 Profile, optional wechseln)
|
||||
- Kalibrierung mit Sensor + manuellem Fallback
|
||||
- 30-Tage-Trainingsplan mit Regenerationstagen
|
||||
- Max-Rep optional nach letzter Einheit
|
||||
- SQLite-Speicher, JSON-Export
|
||||
- Deutsch + Englisch, Dark Mode
|
||||
- Offline-First
|
||||
**Keine festen Zeitangaben — Entwicklung nach Meilensteinen.**
|
||||
|
||||
**v1.x (3–6 Monate nach MVP)**
|
||||
- Achievements / Badges
|
||||
- Wochenziel-Feature
|
||||
- Trainings-Tagebuch
|
||||
- iCloud/Google-Drive Backup-Integration
|
||||
**M1 – App-Grundgerüst**
|
||||
|
||||
**v2.0 (12+ Monate)**
|
||||
- Multi-User Cloud-Sync mit Account-System
|
||||
- Community-Übungen
|
||||
- Übungs-Varianten pro User
|
||||
- Apple-Watch / Wear-OS Companion
|
||||
* Flutter-Projekt
|
||||
* Profile
|
||||
* Navigation
|
||||
* lokale Datenbank
|
||||
* Theme
|
||||
* lokale Einstellungen
|
||||
* Grunddesign
|
||||
|
||||
**M2 – erste komplette Übung**
|
||||
|
||||
* Liegestütze vollständig umsetzen
|
||||
* Smartphone-Anleitung / Piktogramm
|
||||
* Kalibrierung
|
||||
* Wiederholungserkennung
|
||||
* Trainingsanzeige
|
||||
* Satzsystem
|
||||
* Pausentimer
|
||||
* Max-Rep
|
||||
* Trainingsabschluss
|
||||
* lokale Speicherung
|
||||
|
||||
**M3 – Trainingssystem**
|
||||
|
||||
* Tiers
|
||||
* 30-Tage-Progression
|
||||
* Restdays
|
||||
* Restday skippen
|
||||
* Max-Rep
|
||||
* EXP
|
||||
* Level
|
||||
* Tier-Up
|
||||
|
||||
**M4 – alle vier Übungen**
|
||||
|
||||
* Liegestütze
|
||||
* Kniebeugen
|
||||
* Klimmzüge
|
||||
* Sit-ups
|
||||
* Sensorlogik
|
||||
* Kalibrierung
|
||||
* Piktogramme zur Smartphone-Position
|
||||
|
||||
**M5 – Gamification & Statistik**
|
||||
|
||||
* Levelanzeige
|
||||
* EXP-Fortschritt
|
||||
* Streaks
|
||||
* Achievements
|
||||
* Wochenziele
|
||||
* Rekorde
|
||||
* Max-Rep-Verlauf
|
||||
* Statistiken
|
||||
* Charts
|
||||
|
||||
**M6 – Stabilisierung**
|
||||
|
||||
* Crash-Verhalten
|
||||
* Sensor-Fallback
|
||||
* Akku-Warnung
|
||||
* Datenbank-Migrationen
|
||||
* JSON-Export / Import
|
||||
* Praxistests
|
||||
* Sensor-Feintuning
|
||||
* UI-/UX-Feinschliff
|
||||
|
||||
**M7 – v1.0 Release**
|
||||
|
||||
* 4 Kernübungen
|
||||
* vollständiges lokales Trainingssystem
|
||||
* Level- und Tier-System
|
||||
* Sensorik / Kalibrierung
|
||||
* Statistiken / Gamification
|
||||
* Offline-Datenhaltung
|
||||
|
||||
**v1.x**
|
||||
|
||||
* Dips
|
||||
* weitere Übungen
|
||||
* Trainings-Tagebuch
|
||||
* weitere Achievements
|
||||
* verbesserte Statistiken
|
||||
* Sensor-Feintuning
|
||||
* UI-Verbesserungen
|
||||
* bessere lokale Backup-Funktionen
|
||||
|
||||
**Vorerst nicht eingeplant**
|
||||
|
||||
* Cloud
|
||||
* Account-System
|
||||
* Freunde
|
||||
* Leaderboards
|
||||
* Online-Challenges
|
||||
* Community-Übungen
|
||||
* Übungsvariationen
|
||||
* Wearables
|
||||
* iOS
|
||||
|
||||
---
|
||||
|
||||
## Meta
|
||||
|
||||
- Diese Datei lebt im Repo und wird mit jeder neuen Entscheidung kürzer.
|
||||
- Vorschlag: nach jeder Klärung die Antwort **direkt im Repo** dokumentieren (oder in `idee.md` / `progress.md` einpflegen) und den Eintrag hier löschen bzw. mit Verweis stehen lassen.
|
||||
- ✅ = Vorschlag zum Übernehmen · ⚠️ = Diskussionspunkt · ❌ = bewusst raus · 💬 = freier Kommentar
|
||||
* Diese Datei lebt im Repo und wird mit jeder neuen Entscheidung kürzer.
|
||||
* Vorschlag: nach jeder Klärung die Antwort **direkt im Repo** dokumentieren (oder in `idee.md` / `progress.md` einpflegen) und den Eintrag hier löschen bzw. mit Verweis stehen lassen.
|
||||
* ✅ = Vorschlag zum Übernehmen · ⚠️ = Diskussionspunkt · ❌ = bewusst raus · 💬 = freier Kommentar
|
||||
Reference in new issue
Block a user