Apple has shared documentation on how developers can use faster ProMotion display refresh rates for custom animations in their apps on the Pro models in the new iPhone 13 lineup.
- Dynamic refresh rates up to 120Hz are available on the Pro-branded iPhone 13 models
- Apple has clarified that third-party apps can take advantage of faster refresh rates
- New documentation details how to use ProMotion by making changes to an app’s .plist file
How third-party apps can use ProMotion on iPhone 13 Pro and Max
ProMotion is Apple’s marketing name for a feature that dynamically adapts a screen’s refresh rate from as low as ten frames per second to as high as 120 frames per second, or twice the rate of all the prior iPhones. This results in smoother animations and a better experience when scrolling (the text remains clear when quickly scrolling through a webpage, for example).
As per documentation on the Apple Developers website, programmers can opt-in to faster refresh rates with a few simple changes to an app’s .plist file. In simpler terms, a .plist file (“plist” stands for Property List) is used to save an app’s preferences and various settings.
Doing so instructs the operating system that this particular app wants to use the full range of ProMotion refresh rates for any custom animations outside of the standard system ones, like scrolling through lists, accessing menus and so on.
Apple cautions that “higher refresh rates can result in significant power consumption.”
How ProMotion actually works
Developers instead provide hints to iOS’s subsystem responsible for user interface animations about what refresh rates the app prefers for its animations.
As Apple’s documentation lays it out:
You can’t force a ProMotion display to show your content at any specific rate. The refresh rate of a ProMotion display behaves differently than a traditional display. The system insulates the ProMotion’s actual refresh rate from your app. From your app’s point of view, the refresh rate for a ProMotion display is the rate that Core Animation renders the content for the entire display. The system synchronizes the rendering process with the display hardware’s refresh rate, but the display hardware doesn’t necessarily drive the rendering process.
Custom animations in your app need to be able to adapt to changes in refresh rates. Display refresh rates can change for many reasons and your app must not presume any specific refresh rate, at any time. For example, the system disables faster refresh rates in low power mode or if a device gets hot. Also, while UIKit and Core Animation are managing various GUI elements, Core Animation might elect to vary the refresh rate to provide an enhanced user experience.
It would have been a lot better had Apple shared this documentation with developers in advance, before it started accepting iOS 15 apps to stop people from freaking out.
The important thing is, Apple has now provided its registered developers with all the tools they need to take advantage of the ProMotion refresh rates. In other words, it’s up to the developers to update their apps to use ProMotion for smoother custom animations.