I have a mobile app that displays simple data for a large set of items. The entire database is downloaded to the device (<5MB) on first run but requires updates in between source code updates.
What is the best way to inform users of available/completed updates?
- Every launch, if an update is available ask user to update via popup
- Download/install behind the scenes and inform users of new/updated info on next launch, in-app
- Same as (2) but with a push notification
Pros/cons of each:
- Pro: User can decide when to download (Wi-Fi vs. 3G)
- Con: Most users will never update, pop-up every launch could get annoying
- Pro: Seamless, always up to date
- Con: Must open app to see updates
- Pro: User will be more inclined to open app and check updates
- Con: Annoying if app is used infrequently
More info on the updates:
- Small, <100KB each
- Will occur, on average, 1-2 times per month
- Include new data and corrections on existing
- Will only remove data if it was initially incorrect
Some guidelines from Android's notification design patterns:
Don't interrupt the user for low level technical operations, like saving or syncing information, or updating an application, if it is possible for the system to simply take care of itself without involving the user.
If I go with option (2) or (3) will I be violating this? Or is updating the data behind the app OK?