Inter-app photo and video editing in iOS 8: Explained
Photo extensions are part of iOS 8's new Extensibility feature, one of the biggest platform advances since the launch of the App Store. With Photo — and video — extensions, we get the ability to access filters and effects from any app right inside Apple's Photos and Camera apps. So, how does inter-app photo and video editing work?
From the early days of iOS, Apple has been pretty good at pushing certain kinds of data from one app to another. Even on the original iPhone you could send a photo to SMS, or open an email a link in Safari. Over time that "expanded" to include geeky things developers could do, like URL strings and x-callback-URL to work around iOS app islands and help each other build basic, connected workflows.
In iOS 7, Apple added support for inter-app audio, so music, recording, and similar apps could share streams between them. However, it was strictly limited to audio.
With iOS 8 and Extensibility, inter-app communication has gotten a whole lot wider. There's a bevy of new functionality, like the aforementioned custom sharing and options, iCloud Drive and third-party storage providers. Yet in true Apple fashion, there are also a few, special, dedicated things. Like photo and video editing.
How inter-app photo and video editing works
Currently on iOS, if you want to edit a photo in multiple apps, you have to go through a laborious process that involves opening the app, finding the photo in Camera Roll, importing it, editing it, exporting it back to Camera Roll, switching apps, finding the photo in Camera Roll, importing it, editing it, exporting it back to Camera, and repeating those steps again and again for every app you want to edit with.
Moreover, edits are destructive so, if you're on app 4 and want to change something you did in app 2, you have to start over again from that point. It's... annoying.
With Extensibility and photo and video editing, Apple has taken a big step towards making the workflow not only less annoying, but far more functional as well.
With iOS 8 photo and video extensions, you can now open the built-in Photos app, find the image you want to work on, use the built-in Photos editing and filtering tools, then tap a button, access the editing and filtering tools of a third-party app without having to switch, without having to save, and just keep on going.
For example, let's say you have a terrific picture of your child, Shibe, or Lego Arkham Asylum you want to make just that much more terrific. You can open Photos, tap on Edit, and then tap on the ellipses/extensions button. From there, you'll see the icons for every app that's registered a photo and video editing extension with iOS.
Tap on VSCO Cam, and the VSCO Cam interface comes up with all your familiar, go-to filters. Tap on Waterlogue and the Waterlogue interface comes up with all your familiar, go-to processing options. When you're done, the filtered, edited photo is saved right back to your Recently Added folder (the new name for Camera Roll in iOS 8).
If you're using iCloud Photo Library, also new in iOS 8, then the edited photo or video would be automagically synced across all your Apple devices.
What's more, if the extensions are aware of the new adjustments methods in iOS 8, then all the edits and filters you apply will be non-destructive. That means you can go back to an extension and change the edits or filers from any point in the process.
(If the extension is not aware of the new adjustments methods, iOS will bake off the last edited version of the photo and apply the next set of adjustments to that, so you get the same results, but lose the ability to go back beyond that point.)
Either way, Photos.app becomes your single stop of editing and filtering. Yes, Photos.app specifically and not any photos/video app in general, because...
Photo and video editing extension limitations
Unlike the system-wide sharing and action extensions, photo and video editing extensions in iOS only work in the built-in Photos or Camera apps. That means you can access, for example, VSCO Cam's filters from inside Photos, but you can't access them from inside Waterlogue. Nor vice versa.
So, Photos or Camera have to be the hub around which all your inter-app photo and video editing revolve. While being able to access any arbitrary photo or video editing extension from any arbitrary app would be nice, this is Extensibility 1.0 and unless it's a philosophical decision rather than a resource issue inside Apple, it could well change in future versions of iOS.
Developing photo and video extensions
Inter-app photo and video extensions in iOS 8 allow any developer to put their photo and video editing tools — including filters and effects — inside Apple's built-in Photos and Camera apps. It ties not only into Extensibility, but into the new PhotoKit functionality, including iCloud Photo Library, adjustment data, and more.
There are three steps involved in making a photo or video editing extension. Apple makes the first two relatively simple, thanks to new functionality in Xcode.
Developers have to first add a new target to the app, namely "Photo Editing Extension" in Xcode. A default view controller is created for it, but developers are free to create their own, custom view controller if they like.
That way, while they may be giving their functionality over to Apple's apps, they're keeping their own branding and visual identity for their customers. (Since the Photos or Camera app already display the title bar, and cancel and done buttons, there's no need for developers to include those elements in their custom view controllers.)
The third step is protocol adoption. That lets the extension get the data it needs before it's presented on screen so , for example, people can see the photo they're working on right away. For performance reasons, developers can pull a display-size image to work on and not the full resolution image. Similarly, people can choose to cancel any edit at any point, including during a long video process.
When the filter or effect is applied, the developer can render out a new, updated JPG display-size image, along with the adjustment data that's so important in maintaining non-destructive editing workflows.
All of that can be synchronously or asynchronously, depending on the needs of the extension. When it's done, it all gets bundled up together and pushed back out.
Keeping your photos and videos private
While all of iOS 8's Extensibility features are, like the rest of the system, security- and privacy-first, photo and video editing extension appear among the most easily secured. That's because they're currently locked inside the built-in Photos and Camera apps. Your photo data starts in Apple's apps and stays in Apple's apps. The only communication going back and forth are the tools third parties like VSCO Cam and Waterlogue are presenting to iOS.
You can never say never in the security world, but given how cryptographically secure Apple has made iOS, and how much they've focused on security for Extensibility in iOS 8, all of our photo and video data, and the processes accessing and manipulating them, seem very, very safe.
Photo and video editing in iOS 8 isn't just one example of a system-wide interoperability framework. It's a very specific extension that works in very specific apps — Photos and Camera. It does that, for now, to leverage both the excellent Extensibility functionality, and the phenomenal PhotoKit functionality, Apple has built into iOS 8.
If you really want to use different apps to shoot and catalog your photos and video, but you want all the non-destructive, inter-app power available, you now only have to switch out to one other app — Photos — instead of many.
If you don't mind using Photos and Camera as the central hub of your inter-app photo and video editing experience — the one place you go to add filters and effects to all your photos and videos — then iOS 8 will likely provide everything you've been hoping for.
Either way, inter-app photo and video editing will go a long way towards improving workflows for everyone. Will it improve yours?