Vault initial

This commit is contained in:
Hermes (Server)
2026-08-17 10:56:15 +02:00
parent 26cc1e86b0
commit 3274c11938
12 changed files with 625 additions and 192 deletions
+133
View File
@@ -0,0 +1,133 @@
# Melo 1.0 Code-Audit & Design-Review
**Datum:** 26.07.2026
**Repo:** `/home/dustin/git/melo_app/` (27 Dart-Dateien, v2.7 laut Logger)
---
## 🔴 TOTE BUTTONS (führen zu nichts oder zum falschen Ziel)
### 1. BottomNavigationBar 3 von 5 Tabs defekt!
**Datei:** `lib/screens/home_screen.dart` Zeile 367371
| Tab | Label | Was passiert | Sollte passieren |
|-----|-------|-------------|------------------|
| 🎵 Musik | Index 0 | ✅ Home-Screen | ✅ richtig |
| ⬇ Downloads | Index 1 | ✅ DownloadScreen | ✅ richtig |
| 🏷️ Tags | Index 2 | ❌ öffnet **PlaylistSheet**! | Sollte nach Tags filtern o. Tag-Manager zeigen |
| ❤️ Favoriten | Index 3 | ❌ öffnet **PlaylistSheet**! | Sollte favorisierte Songs filtern |
| ⚙️ Einstellungen | Index 4 | ❌ **KEIN Handler** tut gar nichts! | Sollte Einstellungen-Seite zeigen |
```dart
// Aktueller Code (defekt):
onTap: (i) {
setState(() => _aktiverTab = i);
if (i == 2) _zeigePlaylistSheet(); // FALSCH: Tags → Playlists
if (i == 3) _zeigePlaylistSheet(); // FALSCH: Favoriten → Playlists
// i == 4 → KEIN Code! Einstellungen-Tab tot.
},
```
### 2. Auskommentierte Widgets (Features existieren, sind aber deaktiviert)
**Datei:** `lib/screens/home_screen.dart` Zeile 272291
- **RecentWidget** (Zeile 273): `// RecentWidget(songs: _vm.letzteSongs, onPlay: _vm.spieleSong),`
- Zeigt "Zuletzt gehört" Code existiert in `lib/widgets/recent_widget.dart`, korrekt implementiert
- **TagStatsWidget** (Zeile 290): `// TagStatsWidget(tagCounts: _vm.tagCounts),`
- Zeigt Tag-Häufigkeiten farbcodiert Code existiert in `lib/widgets/tag_stats_widget.dart`, korrekt implementiert
### 3. Alle anderen Buttons ✅ intakt
- MeloHeader (Cloud/Suche/Download): alle 3 funktional
- SongTile (Edit/Favorit/Playlist/Play): alle funktional
- MiniPlayer (Play/Pause/Skip): alle funktional
- DownloadScreen (Ordner/Download/Abbrechen): alle funktional
- PlaylistSheet (Neu/Öffnen/Löschen): alle funktional
- NavidromeBrowser (Verbinden/Alben/Stream/Download): alle funktional
---
## 🎨 DESIGN-ANALYSE & VERSCHÖNERUNGSVORSCHLÄGE
### Aktuelles Design (Bestandsaufnahme)
- **Farbschema:** Dark Theme Schwarz `#0D0D0D`, Dunkelgrau `#1A1A1A`/`#2A2A2A`, Rot `#CC0000` als Akzent
- **Typografie:** System-Standardschrift, keine Custom-Font. Nur Größen-Variation (9-28px).
- **Layout:** Standard-Material mit BottomNavigationBar, ListView, Cards
- **Rundungen:** Konsistent 8-14px Border-Radius
- **Icons:** Material Icons, teils mit Emoji (♪, 💿, 🎵, 💌)
- **Animationen:** Nur implizit (FAB, BottomSheet); keine expliziten
### 🔥 Top 10 Verschönerungs-Maßnahmen (priorisiert)
#### 1. **Custom-Schriftart** Höchste Wirkung, geringer Aufwand
- Schriftart wie **Inter** oder **Poppins** via `google_fonts` einbinden
- Sofort moderneres, hochwertigeres Look & Feel
- `pubspec.yaml``google_fonts: ^6.1.0`
#### 2. **Glassmorphism-Effekte**
- MiniPlayer + StatistikCard mit `BackdropFilter` + `blur`
- Transparenter, schwebender Look statt flache Container
- `ClipRRect` mit `BackdropFilter(brightness: 0.2, saturation: 0.3)`
#### 3. **Subtiler Hintergrund-Gradient**
- Statt `MeloTheme.schwarz` ein radialer Gradient von `#1A0505` nach `#0D0D0D`
- Gibt Tiefe, wirkt weniger "flach"
#### 4. **Song-Tiles mit Swipe-Gesten**
- Swipe links → Favorit toggeln
- Swipe rechts → Zur Playlist hinzufügen
- `flutter_slidable` Package
#### 5. **Skeleton-Loader / Shimmer**
- Statt `CircularProgressIndicator` beim Laden
- Placeholder-Karten mit `shimmer`-Animation
- Wirkt professioneller, weniger "Lade-Unterbrechung"
#### 6. **Hero-Animationen**
- MiniPlayer → Vollbild-Player mit fließendem Übergang
- Album-Cover als Hero-Widget
#### 7. **Leere-Zustände mit Icons/Illustration**
- "Noch keine Playlists" → mit großer Illustration + CTA-Button
- "Keine Treffer" → Such-Illustration
- Statt reinem Text
#### 8. **Animierte Tab-Indikatoren**
- BottomNavBar mit animiertem Indikator-Balken oder Dot
- Sanfte Farbverläufe beim Wechseln
#### 9. **Pull-to-Refresh** auf Song-Liste
- `RefreshIndicator` um die ListView
- Neu-Scannen per Wischgeste
#### 10. **Farbcodierte Fortschrittsbalken**
- Fortschritt farblich codieren (grau→gelb→grün bei Download-Fortschritt)
- Statt einfachem roten Balken
### Farbpaletten-Erweiterung (Vorschlag)
```dart
// Zusätzlich zu bestehenden Farben:
static const Color rotGlow = Color(0x40CC0000); // für Glow-Effekte
static const Color surfaceHell = Color(0xFF252525); // für Hover/Active
static const Color erfolg = Color(0xFF4CAF50); // Grün-Akzent
static const Color warnung = Color(0xFFFFC107); // Gelb-Akzent
```
### Auch interessant (niedrigere Priorität)
- **Waveform-Animation** im MiniPlayer (statt statischem Balken)
- **Konfetti-Effekt** nach erfolgreichem Download
- **Haptisches Feedback** bei Button-Taps (`HapticFeedback.lightImpact()`)
- **Dark-Mode-Only** mit OLED-optimiertem `#000000` für echte Schwarztöne
- **BottomSheet mit Drag-Handle** schon vorhanden → schön!
---
## 📊 Zusammenfassung
| Kategorie | Befund |
|-----------|--------|
| Tote Buttons | **3 von 5 Tabs defekt** Tags/Favoriten öffnen Playlists, Einstellungen tut nichts |
| Deaktivierte Widgets | RecentWidget + TagStatsWidget auskommentiert, Code intakt |
| Sonstige Buttons | Alle intakt ✅ |
| Design-Level | Solide Basis, Material 3 Dark Theme, konsistent |
| Größtes Manko | Keine Custom-Schriftart, flache Container, keine Animationen |
| Schnellster Gewinn | Custom Font + Glassmorphism + Gradient-Hintergrund |