2.6 KiB
2.6 KiB
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
.envbeim 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 Serverdata/Sync.kt– Abgleich wie die Extension: sofort nach eigener Änderung, sonst 1s/5s/10s je nach Ruhedata/Markdown.kt,data/Dates.kt– gleiche Regeln wiemarkdown.jsunddates.jsui/– Kalender, Todos, Notizen, Server-Einstellungen, Dialoge