Coinlytics uses Apple's WidgetKit framework to update, display and manage widgets.
Unfortunately, answering the question 'how often do Coinlytics widgets update' is not simple. Apple has done an enormous amount of engineering to balance a user experience that provides timely updates in a widget without consuming too much battery. If you installed an app that had a widget that pulled down data every one minute, you might find your battery doesn't last as long as you would hope.
This article is a little technical because it need to be. Unsurprisingly, every time Coinlytics loads the data it needs, it consumes system resources and causes battery drain due to additional networking and processing. To reduce this performance impact and maintain all-day battery life, iOS asks app developers to limit the frequency and number of updates they make inside their widgets. iOS needs to make sure that developers don't overstep these recommendations and so to guarantee a 'balanced' approach, Coinlytics uses a budget to distribute widget reloads over the course of the day. The budget allocation is dynamic and takes many factors into account, including:
- The frequency and times the widget is visible to the user.
- The widget’s last reload time.
- Whether the widget’s containing app is active.
iOS maintains different budgets for each active widget you add to your device. For example, if you add two pricing widgets, each widget has its own budget. A Coinlytics widget’s budget applies to a 24-hour period. iOS tunes the 24-hour window to your daily usage pattern, which means the daily budget doesn’t necessarily reset at exactly midnight. For a widget that you frequently view, a daily budget typically includes from 40 to 70 refreshes. This rate roughly translates to widget reloads every 15 to 60 minutes, but it’s common for these intervals to vary due to the many factors involved.
It's important to also note that iOS takes a few days to learn your behavior. During this learning period, Coinlytics widgets may receive more reloads than normal. WidgetKit doesn’t count reloads against your the Coinlytics widget budget include when:
- Coinlytics widget are in the foreground
- Your system locale changes.
- Dynamic Type or Accessibility settings change.
Coinlytics sometimes reloads widgets to help keep their content fresh. For example, if a Coinlytics widget is on a Home Screen page that you rarely visit, iOS may reduce the frequency of reloads for Coinlytics widgets. Later, when you view the page, iOS may reload the Coinlytics widget when they becomes visible.
Coinlytics imposes a minimum amount of time before it reloads a widget. Coinlytics tells iOS that data is changing about every minute but as you've read here, it is iOS that decides when to update a widget.
All of this information lies at the heart of the widget experience and your expectations of how you want to consume your crypto data. If you need to check pricing every minute, widgets aren't the right tool for you. You can jump into the app and pull to refresh, but that still wouldn't be ideal for meeting your expectations. There are apps that show live/real time pricing (like a real time ticker), but those class of apps are a very different user experience. The vision and intent of the Coinlytics experience was to give users a way to see how their crypto is performing quickly and easily throughout the day every time they unlock their phone and widgets provide the best way to do that. We all swipe-up-to-unlock our phones so many times during the day - with Coinlytics you can be sure that you're getting your crypto updates regularly and easily.
For a detailed explanation of how Apple updates data inside widgets, please see here.