17. Host app
• An app that a user employs to choose an app
extension is called a host app
Host
app
Today.app
Today
Chrome.app
Share/Action
Dropbox.app
Document Provider
Photo.app
Photo Editing
18. • an app that contains one or more extensions is
called a containing app
Containing app
Containing
app
extension extension extension
19. • an app that contains one or more extensions is
called a containing app
Containing app
20. App extension
• an app extension lets you extend custom
functionality and content beyond
App
extension
21. App extension
• an app extension lets you extend custom
functionality and content beyond
49. • Containing app is still most important
• Extension cannot without containing app
• Don't have full use of system resources
• Make it seamless
• Make it useful
57. Some APIs are Unavailable
to App Extensions
• Access a sharedApplication object
• Use any API marked in header files with the NS_EXTENSION_UNAVAILABLE macro,
or similar unavailability macro, or any API in an unavailable framework
• Access the camera or microphone on an iOS device
• Perform long-running background tasks
• The specifics of this limitation vary by platform, as described in the extension point
chapters in this document.
• (An app extension can initiate uploads or downloads using an NSURLSession
object, with results of those operations reported to the containing app.)
• Receive data using AirDrop
• (An app extension can send data using AirDrop in the same way an app does: by
employing the UIActivityViewController class.)
58. App Store
• NOTE ABOUT 64-BIT ARCHITECTURE
• An app extension target must include the arm64 (iOS) or x86_64 architecture
(OS X) in its Architectures build settings or it will be rejected by the App
Store. Xcode includes the appropriate 64-bit architecture with its “Standard
architectures” setting when you create a new app extension target.
• If your containing app target links to an embedded framework, the app must
also include 64-bit architecture or it will be rejected by the App Store.