Spectrum is now read-only. Learn more about the decision in our official announcement. Developers is a video review and collaboration platform. Share video projects with your team and clients for fast feedback and approval. Use's API to add custom features to your workflow!


Final Cut Pro Workflow Extension

June 24, 2020 at 11:54am

Final Cut Pro Workflow Extension

June 24, 2020 at 11:54am
Hello, I am a student currently studying computer science and am very curious as to how this workflow extension was developed.
After doing some research I found that If you are a developer interested in creating a workflow extension, you must complete this form:
What programming language is used to this Final Cut Pro Extension?
What kind of architecture, packages stack is used?

June 26, 2020 at 8:16pm
Hi there! Engineering manager for the native apps team at here.
I'm happy to give some details about how we built the extension. In order to deploy an app that will properly launch an extension I do believe you'll need to go through that portal to get the proper entitlements and sandboxing signed off on by Apple. That said, I can speak to the way the extension is built and packaged. Basically, the workflow extension is packaged as an XPC Service that must be bundled in some other application's bundle. So in our case we released our Mac menu bar application (used for uploading and creating watch folders) and then added the workflow extension as a target. We worked entirely in Swift for these applications, and mostly rely on a number of internal frameworks that we share with our iOS applications. Beyond that, the rest of the development for Workflow Extensions is built like any standard macOS structure. The XPCService uses a protocol provided by Apple to present a View Controller, and we build our UI within that container. That being said, the limitations there are that we don't have control over the containing UIWindow, we can't create new windows from that service, and we have limited touch points with FCPX (through a timeline interface, the drag and drop interface using FCPXML, and AppleScript). I hope that helps a bit with your research, and I'll be happy to answer any follow-up questions you might have.