3 ms·
If I'm understanding the article correctly, the only extensions iOS allows are keyboards, document pickers, photo editors, sharing services, widget things, and
by jmgrosen 12y ago
If I'm understanding the article correctly, the only extensions iOS allows are keyboards, document pickers, photo editors, sharing services, widget things, and "action extensions." Assuming the action extensions aren't as catch-all as their name, this seems significantly more limiting than Android's model, where any app can arbitrarily define an intent (e.g. "com.example.calculatething") and send it with arbitrary data to any app that defines itself as catching that intent. These built-in extension types seem fairly encompassing now, but they don't leave much room to expand to future ideas, unlike Android's system.
Can any iOS developers clarify the situation? I've long been an Android fan (I've even written a few apps), but iOS 8 (and its integrations with Yosemite) are very tempting.
- conradev 12y agoAction extensions are essentially share extensions with a return value. They may or may not present UI, and then manipulate content before returning it to the running application. For example, a Bing translate action can be run on a webpage. Extensions cannot be enumerated or run programmatically using public APIs. They can only be presented after user interaction in a presented UIActivityViewController.
- jmgrosen 12y agoHm, that doesn't sound too bad. Do you say a certain extension "implements" a certain type of action or something? E.g. the Bing translate implements "com.apple.action.translate.web" and thus when Safari asks for actions that implement "com.apple.action.translate.web" Bing translate appears to the user, or Zxing implements "org.moreactions.scan.barcode" so then when the user taps "find by barcode" in a shopping app the Zxing app is presented to them as a choice?
- madeofpalk 12y agoThey're not quite as specific as "com.apple.action.translate.web". I believe it's more like "com.apple.web" - any action that can transform a website will include that in it's extension predicate.
- jmgrosen 12y agoI guess my primary question was whether apps can define their own actions -- can they, or is there an Apple-controlled set?
- objclxt 12y agoAction extensions can declare their support for any UTI (uniform type identifier), so yes - apps can effectively define their own actions. There is an 'Apple-controlled set' in the sense that the item being provided must have a UTI.
- shinratdr 12y agoIt's a process. iOS 4 opened the limited multitasking APIs, and iOS 7 allowed any app to refresh in the background. I predict the same for extensions, except on an accelerated schedule.
- aaronbrethorst 12y agoExactly. Plus, I think Apple is (quite reasonably) concerned about the potential privacy and security risks posed by malicious extensions, and so is intentionally minimizing the available surface area, and some aspects of functionality in order to mitigate threats.
- bitserf 12y agoThe mechanism underlying extension points (XPC, remote views), is pretty general, I would be surprised if the initial use cases were the end of it. ActiveX is pretty much a poster child for what happens when you rush this kind of feature, so, hopefully the assorted security vulnerabilities will not occur with Extensions.