Brainstorming Creative Uses of iOS 8
Extensions
CocoaConf Columbus 2014Doug Sjoquist (@dwsjoquist)
What are they?
Why?
Better experience for existing users
Why?
Reach new users
Why?
How do they work?
Ars TechnicaExplaining iOS 8’s extensions: Opening the platform while keeping it secure
How is this different?
Related ideas• URL Schemes
• private UIPasteboard
• x-callback-url
• AudioBus
How is this different?
Data driven
How is this different?
Fits into existing workflows
How is this different?
How do I use them?
User controlled
How do I use them?
Component of regular app
How do I use them?
Limitations
No Background Processing
Limitations
No callbacks
Limitations
Restricted APIs
Limitations
Constrained Resources
Limitations
Extension Points• Today
• Share
• Action
• PhotoEditing
• Document Provider
• Custom Keyboard
Constraints — Creativity
• Understand extension point purpose
• Identify underlying key capabilities
• Gives us constraints for brainstorming
Today
Extension Points
Purpose
Quick access to timely,
pertinent information
Key Capabilities• Update availability of data in
background via containing app• Visible in Today view and lock
screen• No keyboard access
Example
Share
Extension Points
Purpose
Convenient way to post content
Key Capabilities• Activation rules• Supports nonstandard data types• Manipulate web page with
Javascript
Example
Action
Extension Points
Purpose
View or transform content in context of another app
Key Capabilities• Activation rules• Supports nonstandard data types• Manipulate web page with
Javascript• Return values to host app
Example
Photo Editing
Extension Points
Purpose
Edit a photo directlywithin the Photos app
Key Capabilities• Work with original image +
adjustments• Can add, edit, or remove
adjustments
Example
Document Provider
Extension Points
Purpose
Allow other apps to access the documents managed
by your app
Key Capabilities• Import or open files from your
server• Export documents to your server• Move documents on your server
Example
Custom Keyboard
Extension Points
Purpose
Replaces the system keyboard for text input
Key Capabilities• Respond to input events• Provide plain text at insertion
point• Request open access
Example
Brainstorming
Today ideas
Multiplayer game leader board updates
Today ideas
Containing app uses background geofencing to
update when custom widgets appears /
disappears
Share ideas
Company help desk submission
Share ideas
Personal journal data collection
Share ideas
Footnote and reference collector and categorizer
Share ideas
Data collection assistant for multiple research assistants to post to
shared site
Share ideas
Annotator for custom wiki
Share ideas
Wikipedia reference updater from source URLs
Share ideas
Shared bookmark collector and organizer
Share ideas
Camera based group social game (scavenger hunt)
Keyboard ideas
Use BLE connection to Mac App to use its
keyboard for text input
Photo Editing ideas
Selectively cleanup photo adjustments
Photo Editing ideas
Batch update multiple photos with watermark, frame, or other common
annotation
Miscellaneous ideas
Create custom content types as part of an industry consortium
(e.g. AgileBits 1Password example)
Miscellaneous ideas
Take advantage of background
NSURLSession completion response to act as
callbacks into your app to do further background
processing
Your ideas?
Thank youCocoaConf Columbus 2014
Doug Sjoquist (@dwsjoquist)
http://sunetos.com/cocoaconf/Extensions_CocoaConfColumbus2014.zip
Top Related