43 lines
2.6 KiB
Markdown
43 lines
2.6 KiB
Markdown
# Planer für Android
|
||
|
||
Native App (Kotlin, Jetpack Compose) mit drei Tabs: Kalender, Todos, Notizen. Gleicher Server, gleiche Daten wie die Desktop-Extension.
|
||
|
||
## Bedienung
|
||
|
||
- **Kalender:** Monat, Woche, Tag. Tipp auf einen Tag im Monat öffnet den Tag. Langes Drücken auf einen Tag oder eine Stunde: Termin oder Todo erstellen. Kurzer Tipp auf eine Stunde in der Woche: Termin ab dieser Stunde. Tipp auf einen Block bearbeitet, im Dialog steht auch Löschen.
|
||
- **Todos:** Häkchen erledigt, Tipp auf den Text bearbeitet, Plus legt an.
|
||
- **Notizen:** Tipp öffnet Ordner oder Notiz, der Pfeil zeigt, ob ein Ordner aufgeklappt ist. Langes Drücken: Erstellen, Umbenennen, Löschen. In der Notiz bearbeitet ein Tipp auf den Text, gespeichert wird alle 5 Sekunden und bei „Fertig“. Die Leiste darüber setzt H1 bis H6, Fett, Aufzählung, Nummerierung, Aus- und Einrücken. Enter in einer Liste setzt den nächsten Punkt, Enter auf einem leeren Punkt beendet die Liste.
|
||
- **Server:** Zugang steckt schon in der APK (aus der `.env` beim Bauen). Hier lässt er sich ändern. Der Sync läuft im Hintergrund, solange die App offen ist.
|
||
|
||
## Bauen und installieren
|
||
|
||
```
|
||
make apk # holt beim ersten Mal die Werkzeuge nach ~/Android (JDK 17, SDK, Gradle), baut die APK mit URL und SYNC_TOKEN aus .env
|
||
make apk-install # installiert auf ein per USB verbundenes Handy
|
||
```
|
||
|
||
Am Handy: Entwickleroptionen, USB-Debugging an, beim Anstecken den Dialog „USB-Debugging zulassen“ bestätigen.
|
||
Alternativ die APK (`android/app/build/outputs/apk/debug/app-debug.apk`) aufs Handy kopieren und dort öffnen.
|
||
|
||
## Entwicklung
|
||
|
||
```
|
||
source android/dev/env.sh # Werkzeuge in den PATH
|
||
cd android && gradle test # Unit-Tests (Dates, Markdown, Store)
|
||
android/dev/setup.sh # legt auch den Emulator „test“ an
|
||
emulator -avd test -no-window & # Emulator ohne Fenster (mit Fenster: ohne -no-window)
|
||
android/dev/ui.sh boot # wartet, bis er bereit ist
|
||
android/dev/ui.sh install # APK in den Emulator, App starten
|
||
android/dev/ui.sh tap "Todos" # Bedienen: tap, longtap, type, key, has, texts, shot, dump
|
||
```
|
||
|
||
Im Emulator erreicht `http://10.0.2.2:8040` den lokalen Server aus `make dev`.
|
||
Bei USB-Handy plus Emulator nimmt `ui.sh` immer den Emulator.
|
||
|
||
## Aufbau
|
||
|
||
- `data/Store.kt` – Ablage als JSON in den App-Dateien, Tombstones, Übernahme vom Server
|
||
- `data/Sync.kt` – Abgleich wie die Extension: sofort nach eigener Änderung, sonst 1s/5s/10s je nach Ruhe
|
||
- `data/Markdown.kt`, `data/Dates.kt` – gleiche Regeln wie `markdown.js` und `dates.js`
|
||
- `ui/` – Kalender, Todos, Notizen, Server-Einstellungen, Dialoge
|