Skip to content

feat: implement OTA in-app update system with one-click install #356#484

Open
oche2920 wants to merge 1 commit into
rinafcode:mainfrom
oche2920:feat/ota-in-app-updates
Open

feat: implement OTA in-app update system with one-click install #356#484
oche2920 wants to merge 1 commit into
rinafcode:mainfrom
oche2920:feat/ota-in-app-updates

Conversation

@oche2920
Copy link
Copy Markdown
Contributor

Closes #356

Summary

  • UpdateService — wraps expo-updates (check / download / apply) with full error handling
  • useUpdateStore — Zustand store persisting check/dismiss timestamps to AsyncStorage
  • useAppUpdate — hook with 30-min check throttle and 24-hr dismiss cooldown
  • UpdatePrompt — bottom-sheet modal UI (matches existing BiometricPrompt style)
  • UpdateProvider — root provider wired inside AnalyticsProvider
  • 9 new AnalyticsEvent entries for update adoption tracking
  • app-updates Android notification channel added
  • expo-updates added to package.json + update config in app.json

Testing

  • In dev/Expo Go the check is skipped automatically (isEmbeddedLaunch guard)
  • To test: build a production/preview EAS build, publish an update via eas update --channel production, relaunch the app

Notes

  • Replace your-project-id in app.json → updates.url with the real EAS project ID before merging

…code#356

- Add expo-updates dependency and configure update channels in app.json
- Add UpdateService wrapping expo-updates (check/download/apply + analytics)
- Add useUpdateStore (Zustand) persisting check/dismiss timestamps
- Add useAppUpdate hook with 30-min check throttle and 24-hr dismiss cooldown
- Add UpdatePrompt bottom-sheet modal (matches BiometricPrompt style)
- Add UpdateProvider wired into root layout inside AnalyticsProvider
- Add 9 update lifecycle events to AnalyticsEvent enum for adoption tracking
- Add app-updates Android notification channel
- Closes rinafcode#356, relates to rinafcode#50 rinafcode#73
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 29, 2026

@oche2920 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@RUKAYAT-CODER
Copy link
Copy Markdown
Contributor

Kndly resolve conflict and fix workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement app version auto-update mechanism

2 participants