Skip to content

Instantly share code, notes, and snippets.

@hujunfeng
Created September 3, 2014 06:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hujunfeng/763e7871f6966f86d218 to your computer and use it in GitHub Desktop.
Save hujunfeng/763e7871f6966f86d218 to your computer and use it in GitHub Desktop.

Embrace iOS 8 App Extensions to Reach More Users

An iOS app is sandboxed to protect unintentional access of its content from malicious software. App sandboxing is a great way to keep iOS apps in a safe environment. An iOS app basically lives in its own world. However, it also creases the difficulties for apps to collaborate. For example, a user might want to take a photo with the Camera app (because it can be opened quickly from lock screen), and share the photo with Instagram. Because of sandboxing, The Instagram app cannot directly access the photo image inside the Camera Roll, but it needs to copy the image from the Camera Roll to the Instagram app for editing and sharing.

One of the long outstanding feature requests for iOS is the ability for 3rd party apps to communicate with each other. With the introduction of app extensions in iOS 8, developers finally are able to extend functionality and content of their own apps to other apps. It's not inter-process communication (IPC) though, apps still cannot talk to each other freely. However, developer can create special extensions for their app. The app extensions are sandboxed just like normal apps, but they're intended to be invoked from the outside of the main apps, for example Notification Center, the Photos app, and actually any apps that use the standard activity sheet. There are 6 type of app extensions in iOS 8:

  • Today extensions, a.k.a. notification widgets, live in Today view of Notification Center. They are used to get a quick update or perform a quick task. For example, a news app can have a widget to provide a new hotline.

  • Share extensions let users post photos, videos, links and other files to a sharing website. They live in the system standard activity sheet. As an example, Instagram can have a share extension, so users can share photos directly from the Photos app as well as any apps that support activity sheet.

  • Action extensions also live in the standard activity sheet. But instead of sharing, they are used to manipulate or view content within the context of another app. For example, a Bing translate extension can be used to translate the website that the user is currently viewing.

  • Photo editing extensions are for the Photos app particularly. They extend its functionalities of editing photos or videos.

  • Document providers will make cloud storage services, like Dropbox, Google Drive, etc., be integrated with iOS 8 in a seamless way. So a productivity app can let users choose a document from a variety of cloud services, without integrating any SDKs from these cloud services.

  • Custom keyboard replaces the iOS system keyboard with a custom keyboard for use in all apps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment