3 ms·
I think it doesn't solve a security problem as much as an UX problem. In Android, you can activate a context (a file, a photo, a document) after you've chosen
by emsy 12y ago
I think it doesn't solve a security problem as much as an UX problem.
In Android, you can activate a context (a file, a photo, a document) after you've chosen an action from a, sometimes endless, list of possible actions. In iOS it's inverted. You'll get a context within an app and can then choose a possible action. Also, there is no option for a default action, which is a huge plus, because in Android that confuses the user more than it helps him. See also this link that was posted a while ago on HN http://jacksonfish.com/2014/05/22/a-user-experience-designer-switches-from-ios-to-android/ http://jacksonfish.com/2014/05/22/a-user-experience-designer....
As for security: iOS warns you that a keyboard extension may send your input to a remote server, but it doesn't prevent it. I assume it's the same for the other extension points.
While I welcome the new keyboard extensions, they could've done better. A keyboard extension can send your input to a remote server but isn't allowed to set the text cursor or mark/copy/paste text. That's a huge drawback to me. The most effective mobile keyboard I've ever used was on my jailbroken iPhone, where you could move the cursor or mark text by swiping over the keyboard. But YMMV.
- 0x0 12y agoI think it does prevent sending keyboard strokes by having two levels of sandboxing, where you can either run heavily locked down with no network, or opt in to extra permissions including networking in which case your app will be extra carefully reviewed by apple + users will get huge warnings during install.
- rsynnott 12y ago> I think it doesn't solve a security problem as much as an UX problem. In Android, you can activate a context (a file, a photo, a document) after you've chosen an action from a, sometimes endless, list of possible actions. Note that Apple extensions do a different range of things than Android intents; they cover a lot of the same stuff as intents, but also some other things. In particular, they have plugin-like behaviour; you could, for instance, be writing an email, decide that you want to edit one of the images in the mail, and pop up an editor, which from the users point of view appears to be embedded in the app. The easy way would have been to implement this as a plugin; however, in that case it would live in the same sandbox, which would be dangerous. Android intents don't provide this functionality in the first place, so don't have to worry about it. > As for security: iOS warns you that a keyboard extension may send your input to a remote server, but it doesn't prevent it. See the documentation. (https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html https://developer.apple.com/library/prerelease/ios/documenta... Table 11.1). There are two security models for keyboards. One type is allowed to talk to remote servers, and to communicate with its 'containing' app (that is the app it's installed with, not the app it's providing keyboard functionality to). Some keyboards need to be able to talk to servers for a full range of functionality. On installing this type, the user will be warned and asked if they wish to proceed. It hasn't been explicitly said, but in practice, this type will be subject to far stricter review. The other type has no access to the network, or access to the containing app. This type is thus guaranteed not to leak data (barring bugs in the security model). This type is the default, but it restrains functionality enough that some people may opt for the other type.
- mcintyre1994 12y agoI don't know if it's called intents (activities maybe?), but are Android's popup activities (I think) similar? An example is http://i.imgur.com/usXmLzn.png http://i.imgur.com/usXmLzn.png, which is Dropbox providing a file select to another app. Other than being full screen (I'm not sure if Android apps can do these activities full screen) is the concept about the same as that?
- rsynnott 12y agoSimilar enough, I think. Apple seem to have gone with the rather confusing approach of calling a whole lot of things extensions because they (presumably) work similarly, but aren't necessarily all that related in function.
- emsy 12y agoFor the usability, what I've seen so far in the WWDC Videos, I think iOS gets it right. Android's intents feel like the "Open with" menu on the desktop, only that it's always shown (unless you specify a default action, which many people I know, including myself, are uncertain about). The way iOS handles it seems much more suitable for touch devices. As you said, Android doesn't have to worry about sandboxing and its ramifications, that's why I deviated from the security topic. > See the documentation. I admit I on glanced over the documentation. I dived right into implementing a custom keyboard and look around what's possible. That's when I got the warning about the remote communication. BTW, this was the keyboard tweak I was talking about: http://www.youtube.com/watch?v=R1caFI-hPkg http://www.youtube.com/watch?v=R1caFI-hPkg