XD 16 new plugin API

XD 16 was released today and includes one little enhancement for developers:

  • setTimeout(), setInterval(), setImmediate(), and the corresponding clear*() methods are now available as global APIs. These APIs do not allow plugins to control animations in the XD document – plugins can still only modify the document as part of an atomic operation while the UI is blocked. But timeout APIs do allow for simple animations in your plugin’s dialog UI (e.g. a progress indicator), “debouncing” user input, etc. – and they help support web frameworks like React with fewer polyfills needed.

To see what’s new for XD users, check out our general XD 16 release announcement.

If you build a plugin that uses any the new timeout APIs, consider whether it’s possible to gracefully degrade to support older versions of XD (and please test in an older XD version to confirm it works!). But if your plugin absolutely requires these XD 16 APIs, don’t forget to set your manifest.json file to specify "minVersion": "16.0.0".