I hadn't explored plugins deeply before this, so I can't really say what has changed to enable this. So instead, let me tell you what I'm using to do this:
Actions API: Sketch lets you hook into user events, so when a layer selection changes, my code knows about it
Saving custom data: I can save my plugin's data as JSON directly into the Sketch document with the new file format
Loading frameworks: I don't know since when this has been available, but this is the most important feature for Diya. This way, I can develop my plugin in Xcode with proper debugging tools rather than using JS/CocoaScript
I hadn't explored plugins deeply before this, so I can't really say what has changed to enable this. So instead, let me tell you what I'm using to do this: