An Argument for an ExtensionConnectivity Framework

Hey Apple, why don't you just offer a ExtensionConnectivity framework? Here's my journey and my rationale. Two years ago I wrote a TodayWidget. One of the biggest issues with doing a new fangled extension at the time, in my opinion, was communication between the app and its extension. I had to learn about and use App Groups. There was load of confusion about whether "group." appeared in the beginning of the name, entitlement confusion ****, etc. It all seemed like hack to me but hey, I had a shared area in the file system where I could share files. Next came how to synchronize between the shared files. I thought to myself, I know, I'll use NSFilePresenter and NSFileCoordinator. It seemed to me that synchronizing file access is exactly what what those class were made to do. Evidently those won't work between extension and app. I ended up polling the modification date of files. One more issue I had was how to get my extension to open my phone app. I ended up creating a URL scheme and using openURL. A year later a WWDC presentation about App Extension Best Practices, mentioned Darwin notifications. Sorry I did not know about Darwin notifications. Does anyone outside of Apple even know what Darwin was/is? Suffice to say, the Darwin notifications work but it just seems like a hack to me. Apple seems to be relying on extensions more and more (SiriKit for example) and I think they deserve more than a bunch of hacks found in a 2015 WWDC presentation. Nonetheless everything was going well for me. Next I wrote a watchOS 1.0 extension. The good news was all of the tricks of the trade I had figured out worked with my watchOS 1.0 extension. Of course that was all short-lived because then watchOS 2 came out. I guess since my watch extension was/is now on a separate device, all the old tricks wouldn't work. So Apple created the WatchConnectivity framework. What a novel idea! A way for an extension and the containing app to communicate! Wow! Apple has worked out the kinks and made changes in WatchConnectivity from watchOS 2 to watchOS 3. Great! However, now I'm writing a SiriKit extension. So I'll dig up my old Today Widget and watch OS 1 hacks so my SiriKit extension can communicate with my app. I know this is TLDR but now that I working on yet another extension, SikiKit, Apple, why don't you offer a real ExtensionConnectivity framework that works everywhere. Why not stop forcing us to use the bag of hacks that AppGroups, Darwin Notifications, file system locks, url schemes, all of which you can't even use with watch extensions, and offer a general purpose ExtensionConnectivity framework that can work with all extensions, even those that don't run on the same device the iPhone app. Please don't offer another device in the future, let's call it a Remote Display, and then offer yet another way for the extension and app to communicate such as a RemoteDisplayConnectivity framework. Please just give us a general purpose ExtensionConnectivity framework to help with extension development.