4 ms·
Before ExtensionKit you could only make app extensions to extend the functionality of Apple provided systems. Things like authentication, file sync and badging
by macshome 4y ago
Before ExtensionKit you could only make app extensions to extend the functionality of Apple provided systems. Things like authentication, file sync and badging in the Finder, Xcode text editors, or Final Cut Pro editing extensions. With ExtensionKit you can make your own extension points and let people develop extensions for your apps on all Apple platforms.
The code editor Chime just released extension support in their 2.0 release if you are on macOS 13. They have a lot of good details on how the implemented the feature on their blog. https://www.chimehq.com/blog/extensionkit-intro https://www.chimehq.com/blog/extensionkit-intro
- duped 4y agoApplication extensions outside the Apple ecosystem have been used on Apple computers for decades. It was never limited to Apple provided systems, whatever that means.
- thewebcount 4y agoThis is incorrect. In the past apps like Photoshop have allowed plugins which differ from App Extensions by running inside the host app's process. App Extensions are run in a separate process and don't have access to the entitlements of the host application, and can't directly access its data. This tends to mean that extensions are much better behaved than plug-ins.
- brookst 4y agoThis. It is a different technical model that produces a different user experience. These are closer to widgets than to IPC.
- Yoric 4y agoSo, basically, OS support for the kind of things that Chrome and Firefox have been doing for a while? Having been (a minor) part of the Firefox effort, that was a real pain to implement, so sounds like a very useful component.
- duped 4y agoApplications have been using out-of-process sandboxes for years. But that's not necessarily a sign of quality, since this comes with a performance cost. It's nice when extensions don't crash the host application, but the mitigations aren't free. It's interesting that Swift's stable ABI will drastically lower that cost, since you usually need some kind of serialization (although people have been using mmap to share data between host/extension process for awhile too to avoid the serialization penalty)
- deleted 4y ago[deleted]
- mattiemass 4y ago(author of that quoted blog post here). You are correct, there's nothing new about apps offering plugins/extension systems. What's new here is: this works across sandboxed apps, support for remote (out-of-process) views, and the extension permission and discovery system is entirely managed by Apple.
- duped 4y agoLike I mentioned in another comment most of this has been practice for awhile. The big one is discovery, but there have been techniques to fix that (like standard install locations). AU (v2, v3) is a good example.