## Major Features - ✅ Battery optimized auto-sync (30 min interval, ~0.4%/day) - ✅ BuildConfig.DEBUG conditional logging (Logger.kt) - ✅ Settings UI cleanup (SSID field removed) - ✅ Interactive notifications (click opens app) - ✅ Post-reboot auto-sync (BootReceiver) - ✅ GitHub Actions deployment workflow ## Implementation Details ### Auto-Sync Architecture - WorkManager PeriodicWorkRequest (30 min intervals) - Gateway IP detection via network interface enumeration - Smart sync only when on home network - BootReceiver restarts monitoring after device reboot ### Logging System - Logger.kt object with BuildConfig.DEBUG checks - Debug logs only in DEBUG builds - Error/warning logs always visible - All components updated (NetworkMonitor, SyncWorker, WebDavSyncService, etc.) ### UI Improvements - Removed confusing SSID field from Settings - Gateway detection fully automatic - Material Design 3 info boxes - Cleaner, simpler user interface ### Notifications - PendingIntent opens MainActivity on click - setAutoCancel(true) for auto-dismiss - Broadcast receiver for UI refresh on sync ### GitHub Actions - Automated APK builds on push to main - Signed releases with proper keystore - 3 APK variants (universal, arm64-v8a, armeabi-v7a) - Semantic versioning: YYYY.MM.DD + build number - Comprehensive release notes with installation guide ## Documentation - README.md: User-friendly German guide - DOCS.md: Technical architecture documentation - GITHUB_ACTIONS_SETUP.md: Deployment setup guide ## Build Configuration - Signing support via key.properties - APK splits for smaller downloads - ProGuard enabled with resource shrinking - BuildConfig generation for DEBUG flag
154 lines
3.4 KiB
Markdown
154 lines
3.4 KiB
Markdown
# Simple Notes Sync 📝
|
|
|
|
> Minimalistische Android-App für Offline-Notizen mit automatischer WLAN-Synchronisierung
|
|
|
|
Eine schlanke Notiz-App ohne Schnickschnack - perfekt für schnelle Gedanken, die automatisch zu Hause synchronisiert werden.
|
|
|
|
---
|
|
|
|
## ✨ Features
|
|
|
|
- 📝 **Offline-first** - Notizen werden lokal gespeichert und sind immer verfügbar
|
|
- 🔄 **Auto-Sync** - Automatische Synchronisierung wenn du im Heimnetzwerk bist
|
|
- 🏠 **WebDAV Server** - Deine Daten bleiben bei dir (Docker-Container)
|
|
- 🔋 **Akkuschonend** - Nur ~0.4% Akkuverbrauch pro Tag
|
|
- 🚫 **Keine Cloud** - Keine Google, keine Microsoft, keine Drittanbieter
|
|
- 🔐 **Privacy** - Keine Tracking, keine Analytics, keine Standort-Berechtigungen
|
|
|
|
---
|
|
|
|
## 📥 Installation
|
|
|
|
### Android App
|
|
|
|
**Option 1: APK herunterladen**
|
|
|
|
1. Neueste [Release](../../releases/latest) öffnen
|
|
2. `app-debug.apk` herunterladen
|
|
3. APK auf dem Handy installieren
|
|
|
|
**Option 2: Selbst bauen**
|
|
|
|
```bash
|
|
cd android
|
|
./gradlew assembleDebug
|
|
# APK: android/app/build/outputs/apk/debug/app-debug.apk
|
|
```
|
|
|
|
### WebDAV Server
|
|
|
|
Der Server läuft als Docker-Container und speichert deine Notizen.
|
|
|
|
```bash
|
|
cd server
|
|
cp .env.example .env
|
|
nano .env # Passwort anpassen!
|
|
docker-compose up -d
|
|
```
|
|
|
|
**Server testen:**
|
|
```bash
|
|
curl -u noteuser:dein_passwort http://192.168.0.XXX:8080/
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 Schnellstart
|
|
|
|
1. **Server starten** (siehe oben)
|
|
2. **App installieren** und öffnen
|
|
3. **Einstellungen öffnen** (⚙️ Symbol oben rechts)
|
|
4. **Server konfigurieren:**
|
|
- Server-URL: `http://192.168.0.XXX:8080/notes`
|
|
- Benutzername: `noteuser`
|
|
- Passwort: (aus `.env` Datei)
|
|
- Auto-Sync: **AN**
|
|
5. **Fertig!** Notizen werden jetzt automatisch synchronisiert
|
|
|
|
---
|
|
|
|
## 💡 Wie funktioniert Auto-Sync?
|
|
|
|
Die App prüft **alle 30 Minuten**, ob:
|
|
- ✅ WLAN verbunden ist
|
|
- ✅ Server im gleichen Netzwerk erreichbar ist
|
|
- ✅ Neue Notizen vorhanden sind
|
|
|
|
Wenn alle Bedingungen erfüllt → **Automatische Synchronisierung**
|
|
|
|
**Wichtig:** Funktioniert nur im selben Netzwerk wie der Server (kein Internet-Zugriff nötig!)
|
|
|
|
---
|
|
|
|
## 🔋 Akkuverbrauch
|
|
|
|
| Komponente | Verbrauch/Tag |
|
|
|------------|---------------|
|
|
| WorkManager (alle 30 Min) | ~0.3% |
|
|
| Netzwerk-Checks | ~0.1% |
|
|
| **Total** | **~0.4%** |
|
|
|
|
Bei einem 3000 mAh Akku entspricht das ~12 mAh pro Tag.
|
|
|
|
---
|
|
|
|
## 📱 Screenshots
|
|
|
|
_TODO: Screenshots hinzufügen_
|
|
|
|
---
|
|
|
|
## 🛠️ Technische Details
|
|
|
|
Mehr Infos zur Architektur und Implementierung findest du in der [technischen Dokumentation](DOCS.md).
|
|
|
|
**Stack:**
|
|
- **Android:** Kotlin, Material Design 3, WorkManager
|
|
- **Server:** Docker, WebDAV (bytemark/webdav)
|
|
- **Sync:** Sardine Android (WebDAV Client)
|
|
|
|
---
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### Server nicht erreichbar
|
|
|
|
```bash
|
|
# Server Status prüfen
|
|
docker-compose ps
|
|
|
|
# Logs ansehen
|
|
docker-compose logs -f
|
|
|
|
# IP-Adresse finden
|
|
ip addr show | grep "inet " | grep -v 127.0.0.1
|
|
```
|
|
|
|
### Auto-Sync funktioniert nicht
|
|
|
|
1. **Akku-Optimierung deaktivieren**
|
|
- Einstellungen → Apps → Simple Notes → Akku → Nicht optimieren
|
|
2. **WLAN Verbindung prüfen**
|
|
- App funktioniert nur im selben Netzwerk wie der Server
|
|
3. **Server-Status in App prüfen**
|
|
- Settings → Server-Status sollte "Erreichbar" zeigen
|
|
|
|
Mehr Details in der [Dokumentation](DOCS.md).
|
|
|
|
---
|
|
|
|
## 🤝 Beitragen
|
|
|
|
Contributions sind willkommen! Bitte öffne ein Issue oder Pull Request.
|
|
|
|
---
|
|
|
|
## 📄 Lizenz
|
|
|
|
MIT License - siehe [LICENSE](LICENSE)
|
|
|
|
---
|
|
|
|
**Projekt Start:** 19. Dezember 2025
|
|
**Status:** ✅ Funktional & Produktiv
|