Repository navigation
Replace over-the-air updates with in-app APK updates - #30
Merged
Merged
Conversation
Every app change ships as a new APK, so a version number always identifies what runs and no update server is needed. The app will find a newer release through a latest.json release asset, download the APK and open Android's installer. The App updates slice goes first on the roadmap. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Drops the planned Over-the-air updates slice (
expo-updatesplus a self-hosted server). Every app change ships as a new APK, so a version number always identifies exactly what runs and there is no update server to host. The app will instead find a newer release through alatest.jsonasset on the GitHub release, download the APK and open Android's installer.This records the decision and moves the new App updates slice to the front of the roadmap. The implementation follows in separate PRs: CI publishes
latest.json, the installer on "Update required", then the update check and Home banner.Decided along the way:
latest.jsonfrom GitHub, not an API endpoint, so it can't announce an APK that doesn't exist and the API stays free of GitHub.versionCodestays hand-bumped, unchanged from Release the app as a signed APK on GitHub #29.Size
0 logic lines. Docs and specs, plus two code comments that mentioned OTA.
How to review
Start with
app/docs/ARCHITECTURE.md§9 (the new "In-app updates" section, with OTA recorded as a rejected alternative) and §10. Thenspecs/app-shell.mdfor the behavior. The rest is follow-through:CLAUDE.md,specs/README.mdand the two comments.Testing
Docs only.
npm run lintandnpm run typecheckpass, and a search finds no leftover OTA mentions beyond the intentional "rejected" notes.🤖 Generated with Claude Code