Files
desktop-planer/android/README.md
2026-09-19 23:50:36 +02:00

2.4 KiB
Raw Blame History

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. Langes Drücken: Erstellen, Umbenennen, Löschen. In der Notiz bearbeitet ein Tipp auf den Text, gespeichert wird alle 5 Sekunden und bei „Fertig“.
  • 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