Self-Update: App prüft neue Version und installiert APK selbst #69
Labels
No labels
block-planning
bug
documentation
duplicate
enhancement
feature
good first issue
help wanted
infrastructure
invalid
planning
priority:high
priority:low
question
refactoring
status:backlog
status:done
status:in-progress
status:todo
tech-decision
test
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: bollwerkadmin/bollwerk#69
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Die App soll beim Start selbstst?ndig pr?fen, ob eine neue Version auf dem eigenen Server verf?gbar ist ? und die Installation ohne externen App-Store ansto?en.
Arbeitspakete
Server
GET /api/version?{ versionCode: Int, versionName: String, apkUrl: String }/static/app-latest.apkausliefern (KtorstaticFiles)GET /) liefert eine HTML-Seite mit QR-Code, der auf/static/app-latest.apkzeigt (direkte APK-Installation per Scan)/adminbleibt weiterhin erreichbar (keine ?nderung an der Admin-Route)App
Permission REQUEST_INSTALL_PACKAGESim ManifestFileProviderkonfigurieren (damit die heruntergeladene APK als URI geteilt werden darf)UpdateCheckUseCase:GET /api/version,BuildConfig.VERSION_CODEvergleichenUpdateRepository: APK viaOkHttpincontext.cacheDir/update.apkladen (mit Progress)UpdateDialog(Composable): Banner wenn Update verf?gbar, Button ?Jetzt aktualisieren"Intent(Intent.ACTION_INSTALL_PACKAGE)mit FileProvider-URI feuernMainActivityoder Top-Level-ViewModel)Akzeptanzkriterien
versionCodeauf dem Server > lokalerVERSION_CODE/) zeigt einen QR-Code, der auf die APK-Download-URL zeigt/adminbleibt unter derselben URL erreichbarTechnische Hinweise
FileProvider-Authority:de.krisenvorrat.app.fileprovidercontext.cacheDir/update/app-latest.apkio.nayuki:qrcodegen) oder als clientseitiges JS (z. B.qrcode.jsvia CDN)https://<server-host>/static/app-latest.apkPlanung abgeschlossen
Dieses Planungsticket wurde in 3 Arbeitspakete zerlegt:
Sub-Tickets
Implementierungsreihenfolge
Architektur-Überblick
GET /api/versionEndpoint, statische APK ausserver/data/, Homepage mit QR-Code (clientseitiges JS)UpdateRepository+CheckForUpdateUseCaseim Domain-Layer,UpdateViewModel+UpdateBannerim UI-LayerREQUEST_INSTALL_PACKAGESPermission