How often do widgets refresh on the mobile apps?
The widget update process is designed to provide near-instant updates to user's widget lists without bogging down the device or the PublicStuff system with constant, time consuming API calls.
For each application, our server caches one single copy of the widget list to be served when the user's app checks for updates. The server will send the cached copy (which takes less than a tenth of a second), and then immediately check the database for the most recent information and update the cached copy if necessary (this can take several seconds). This substantially increases app responsiveness and performance, but it means that it can take up to two loads of the widget list system wide to get the updated information. To put this another way, if 1000 users are using an app, 1 user will get the old copy of the widget list and the other 999 will get the updated list the first time an update is triggered, but if only one user is using the app, as is often the case during configuration, that user will may have to update their list twice to observe the change.
Step-by-step guide
The apps will always check for an updated list of widgets when app is launched. Please note that launching an app is different than displaying an app. If you launch an app and then return to your dashboard, the app will still be running in the background, so if you open it again, you won't trigger the widget update process. A good rule of thumb is, if you see a splash screen, that means that the app is in the process of updating the widget list.
There are background calls that will also trigger an update, but those vary by platform, since each operating system has different mechanisms required, so it's best to rely on the two triggers above to reliably update your app's widget list.
The app will also update widgets when a user logs into or out of the application, as the user's credentials and permissions have the potential to change the list of widgets that are displayed.