Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

I was hoping to avoid this kind of mudslinging - can we acknowledge that each platform takes a different approach, that each approach might be better suited for certain kinds of people, and move on?

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

It is the same story... Android implements it and Apple does it better.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

Why are you so arrogant ? Why do you feel like people who don't want to stress about every detail of their devices don't deserve a good experience? Do people who can't name every spec about their car not deserve a nice ride? Do you have to be able to recite building codes to have a nice house?

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

Why are you so arrogant ? Why do you feel like people who don't want to stress about every detail of their devices don't deserve a good experience? Do people who can't name every spec about their car not deserve a nice ride? Do you have to be able to recite building codes to have a nice house?

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

The reason for the iOS restrictions is security. You trade flexibility and customization for sterile security. Android can accomplish more without these restrictions but is less secure than iOS and always has been. File system encryption, ASLR, sandbox implementation, quick security updates, app vetting process, the list goes on.

Honestly the bit about comparing to android feels a bit fear-mongering to me. Not to mention technically inaccurate.

Quote:

Especially dangerous settings that would make all of an app's data readable and writeable by any other apps were deprecated back in Android 4.2, but Content Providers can still provide apps with direct access to data in other apps.

Settings? These are flags used when you ask to create a file. They're loose wrappers around the Linux APIs to create files with specific permissions. This isn't a user setting nor is it something that the user can even choose to do. An Application writing a file somewhere with those flags on 4.2 would have created a file under its sandbox username with permissions of 777. But since the file in question is likely in /data if it was created with Context.openFileOutput() on a path on Context.getFilesDir(), other processes can't actually open it as they don't have permission on any of the parent folders on pretty much any modern android platform. The old emulated /sdcard is world-readable/world-writable by default, which is where the whole WhatsApp world-readable/writable database security hole from a few months back came from, but the actual internal storage isn't, and using those flags when opening files in there isn't going to allow any app to access the app's files.

Those two old modes were likely deprecated because they don't work anymore: creating a file in /sdcard will always have both of them by default, and creating a file in /data with them won't actually do what it says on the tin.

And content providers are being described in an awfully nefarious tone here. They allow an application to expose its own data, through its own code, in a very similar manner to what you're describing as happening with Apple. ContentProviders are implemented entirely by the app. They're guarded by permissions, both the system ones that show up inside the play store dialogs, as well as third party permissions, so developers like Facebook can create a content provider marked signature-only, and that provider is only accessible to Facebook's own apps.

But most critically, ContentProviders do not provide direct access, period. They provide indirect access, through the system ContentResolver, to resources offered up by an app. If you want to open say the album art exposed by a music app's content provider, you might try to open an URL that looks something like content://package.name/some/album/0 using SomeContentProvider.openFile(). That's as close though as you get to direct access: a file descriptor that's been mapped through to your process by ContentResolver talking to another app's ContentProvider on your behalf. Said descriptor is almost certainly opened in read-only mode by the content provider, so the querying app can't change anything in the file, just read it. Most ContentProvider operations are much more abstract than this though. To continue the music example, things like listing tracks, querying artists, etc, all are indirect data pulled out of the app's own database and packaged up into a Cursor by a ContentProvider for the querying app, which is a copy of the data. If you, as a developer, expose a ContentProvider, any operation on that ContentProvider is being done by your app at the request of another, and you can enforce any rules you like about what can and cannot be done.

As far as I can tell from looking at Apple's documentation on this, the main difference is that Apple's extensions are process-isolated from the app itself, and have their own data storage locations. The former is optional in Android, just add android:process="some-unique-value" to the <provider> element in your manifest and it will start up outside of your app's main process. I'm not sure I'd recommend it, as it can cause memory issues and communicating with your own process is harder to deal with then, but still. That and they don't have a third party equivalent of a ContentProvider, which is sad.

With this, why is FireFox still not allowed on iOS? It seems frivolous to argue that it has something to do with Apple's technical approach to security, since FireFox has been a leader in many ways in browser security. If I remember correctly, Apple always argued that multiple HTML rendering engines would somehow fragment the platform or confuse users or developers. Now that everyone is going to have their own keyboard it's going to be hard to keep arguing that with a straight face.

Apple's calculation is not to balance flexibility or developer tools with security. Their calculations are always in trying to figure out where control buys them the most leverage. In the case of browsers they seem to want to have a stronger say in mobile browsing de facto standards than their legitimate market share -- if they allowed fair competition -- might afford them. They clearly base all their strategies on similar calculations.

The way extensions are executed also differs from the way apps are executed. If you begin to use the same extension in two or more host apps at the same time—if you fire up an extension in Safari and then hop over and start the same extension in Mail, for example—the system actually launches two separate copies of that extension and runs them as separate processes.

Hmm, wonder what impact this will have on memory usage (let alone performance on older hardware) for commonly used extensions such as keyboards.

The way extensions are executed also differs from the way apps are executed. If you begin to use the same extension in two or more host apps at the same time—if you fire up an extension in Safari and then hop over and start the same extension in Mail, for example—the system actually launches two separate copies of that extension and runs them as separate processes.

Hmm, wonder what impact this will have on memory usage (let alone performance on older hardware) for commonly used extensions such as keyboards.

It would make a compelling reason for the iphone6 to have 2gb of ram, and for people still using an iphone4s or even 5 to upgrade. I am sure it should run just fine on 1gb of ram, this procedure sounds more processor than ram dependent.

The way extensions are executed also differs from the way apps are executed. If you begin to use the same extension in two or more host apps at the same time—if you fire up an extension in Safari and then hop over and start the same extension in Mail, for example—the system actually launches two separate copies of that extension and runs them as separate processes.

Hmm, wonder what impact this will have on memory usage (let alone performance on older hardware) for commonly used extensions such as keyboards.

It would make a compelling reason for the iphone6 to have 2gb of ram, and for people still using an iphone4s or even 5 to upgrade. I am sure it should run just fine on 1gb of ram, this procedure sounds more processor than ram dependent.

It'll probably increase the memory usage slightly, but it's not that huge. It also gives the OS a nice, smaller target with a different usage pattern when it goes looking for processes to kill, so these extensions should pretty much be killed off as quickly as they finish. I'd expect Apple to include more memory soon on the iPhones, but they've been getting away with their small memory amount pretty well, largely by aggressively killing backgrounded processes (much more aggressively than Android does, android basically only does it under memory pressure).

Springboard will probably use a good bit more memory now though due to all the widget extensions that it'd have to talk to. So the minimum memory footprint will probably go up a bit, it might make it a bit more difficult as a developer on 512 MB devices due to that.

I have a Galaxy S4 (personal) and an iPhone 5 (work). I greatly appreciate the addition of extensions to iOS. However, I feel that at least for my needs, the Android Intents system will work better than iOS Extensions (based on what I've read). There is nothing technically preventing an iOS Extension from abusing your data. What if I come up with an extension to share to Facebook, but also secretly at the same time send that shared content to my own private servers? The only thing stopping this is a code review by Apple. Which makes all this security talk about Apple's way of doing things kind of overblown in my opinion (because it would be easy to miss the few lines of code needed to leak the data). Data can still "leak" from iOS Extensions the same way as from Android Intents.

Still, greatly appreciate that Apple is opening their model up a bit, and now I'll probably enjoy using my iPhone a bit more.

I'm looking forward to this update eventually and swype coming out for iOS. It's probably the biggest thing I miss from my android days (aside from the physical keyboard but that is pretty much dead on both platforms).

Both operating systems have their advantages. Android is much more flexible and does allow the user and applications to do more. On the other hand I think iOS does permissions much better. I don't know why Android's permissions have to be all or nothing and why you have to decide when you install. I much prefer Apple's method prompting you when an app needs permissions for something and even allowing you to turn them off later. I got so tired of 95% of the android apps I installed needing full access to the internet. Almost everything on my phone could phone home and send pretty much any info it had access to up to a server someplace. Often times it was for some silly thing I didn't want to use but I still had to give the app the permissions anyway or I couldn't install it.

I'm very impressed at how well Apple is implementing Extensions. I thought Android had it pretty well with intents but Apple just blew that out of the water.

Apple has proven time and time again that they truly care about security. It makes me think very strongly about switching away from the toxic hellstew that is Android. Why does a keyboard need access to make a phone call?

Amazing improvements Apple . Makes picking Android every single year a harder and harder decision, almost impossible at this point

Hmm. Not having slide typing was probably the biggest reason for me not using iOS. Generally I like Android more. It lets me do more. When an app, or in this case OS, stops me and says, "You can't do that," I can't help but think the app or OS is working for someone other than me. The 'iPhone is for children" troll is rude, but there is some truth. iOS treats users like children. Android gives them the freedom to make mistakes. Neither is more or less legit than the other; it's up to you as the individual to decide what is more important to you. Apple's caution or Android's free spirit. Personally, I just think it's so funny that the company that made that legendary 1984 Super Bowl ad is the one making the iPhones, not the Androids. Changing the case is not setting yourself apart from the guy next to you. Having a different brand of phone, different OS revision, different icon set, different keyboard... I really don't need to go on.

Good writeup... I didn't understand most of it, and I flash custom firmware, or at least I used to. It sounds like Apple is doing what they did with the iPod. Sitting back and watching their competitors stumble through the first steps of innovation, then stepping in and doing it right. But I really wish they would have; that is, added slide typing to their own keyboard. Swype is a memory hog and SwiftKey is hypocritical—they want you to tap out short words. Because sliding from A to N to D, surely you didn't want AND, you must have wanted ABSOLUTELY or something like that. And it's gonna make you redo it so many times that, you idiot, you shoulda just tapped it out. Google Keyboard is the best so far, and it's free. I figured the Apple keyboard would offer slide typing and it would just work.

I'm sure I still won't be getting an iPhone next time. Not because I'm spoiled by Android. I think I could get used to iOS. Slide typing will soon be here (there?) and I think they did a good job with Command Center, and more or less, with Siri. The parts of the lock screen they nicked from Android look good. But I'm so entrenched in Android with all the apps. Doesn't help that there's no way to trade in my Android licenses for iOS licenses, with apps that are on both platforms. Nope, they want you to pay again. But the iPhone 6 is still on my short list, behind the LG G3 and the new Moto (X+1? X2?). I'm not writing it off yet. But I want to see what the iPhone 6 looks like first.

Especially dangerous settings that would make all of an app's data readable and writeable by any other apps were deprecated back in Android 4.2, but Content Providers can still provide apps with direct access to data in other apps.

Again, these are mechanisms that will protect your data just fine when used properly, but all an Android user has to do to put this data at risk is grant permission to a malicious application, and people can't be counted on to read those app permissions dialog boxes carefully every time they install an app.

To be clear, the "settings" in question that would make an app's data world readable or writeable consist of certain flags set by the app itself, not by other apps. That is, an app can *choose* to declare its files world readable; it's that flag that was deprecated back in Android 4.2. The only way an app's private data could be at risk of being read by a malicious app is if the developer willingly exposes the data.

Honestly the bit about comparing to android feels a bit fear-mongering to me. Not to mention technically inaccurate.

Quote:

Especially dangerous settings that would make all of an app's data readable and writeable by any other apps were deprecated back in Android 4.2, but Content Providers can still provide apps with direct access to data in other apps.

Settings? These are flags used when you ask to create a file. They're loose wrappers around the Linux APIs to create files with specific permissions. This isn't a user setting nor is it something that the user can even choose to do. An Application writing a file somewhere with those flags on 4.2 would have created a file under its sandbox username with permissions of 777. But since the file in question is likely in /data if it was created with Context.openFileOutput() on a path on Context.getFilesDir(), other processes can't actually open it as they don't have permission on any of the parent folders on pretty much any modern android platform. The old emulated /sdcard is world-readable/world-writable by default, which is where the whole WhatsApp world-readable/writable database security hole from a few months back came from, but the actual internal storage isn't, and using those flags when opening files in there isn't going to allow any app to access the app's files.

Those two old modes were likely deprecated because they don't work anymore: creating a file in /sdcard will always have both of them by default, and creating a file in /data with them won't actually do what it says on the tin.

And content providers are being described in an awfully nefarious tone here. They allow an application to expose its own data, through its own code, in a very similar manner to what you're describing as happening with Apple. ContentProviders are implemented entirely by the app. They're guarded by permissions, both the system ones that show up inside the play store dialogs, as well as third party permissions, so developers like Facebook can create a content provider marked signature-only, and that provider is only accessible to Facebook's own apps.

But most critically, ContentProviders do not provide direct access, period. They provide indirect access, through the system ContentResolver, to resources offered up by an app. If you want to open say the album art exposed by a music app's content provider, you might try to open an URL that looks something like content://package.name/some/album/0 using SomeContentProvider.openFile(). That's as close though as you get to direct access: a file descriptor that's been mapped through to your process by ContentResolver talking to another app's ContentProvider on your behalf. Said descriptor is almost certainly opened in read-only mode by the content provider, so the querying app can't change anything in the file, just read it. Most ContentProvider operations are much more abstract than this though. To continue the music example, things like listing tracks, querying artists, etc, all are indirect data pulled out of the app's own database and packaged up into a Cursor by a ContentProvider for the querying app, which is a copy of the data. If you, as a developer, expose a ContentProvider, any operation on that ContentProvider is being done by your app at the request of another, and you can enforce any rules you like about what can and cannot be done.

As far as I can tell from looking at Apple's documentation on this, the main difference is that Apple's extensions are process-isolated from the app itself, and have their own data storage locations. The former is optional in Android, just add android:process="some-unique-value" to the <provider> element in your manifest and it will start up outside of your app's main process. I'm not sure I'd recommend it, as it can cause memory issues and communicating with your own process is harder to deal with then, but still. That and they don't have a third party equivalent of a ContentProvider, which is sad.

Yeah, it's clear the author doesn't have a complete grasp of Android's intent system and security model. I just got tired of endlessly debating the whole "Apple's implementation is more secure and private ” nonsense.

Apps and processes on Android are sandboxed. Intents only work via a hierarchical permission based security model, which is now based on SELinux. Users have to provide explicit permission for apps to access their data. Every component in an Android app is heavily fortified by permissions even more so than iOS apps. I can go on, but why bother. I'm no match for Apple's marketing.

99% of malware targets Android. Only 0.013% succeed. If that is not secure, I don't know what is.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

It is the same story... Android implements it and Apple does it better.

Honestly the bit about comparing to android feels a bit fear-mongering to me. Not to mention technically inaccurate.

Quote:

Especially dangerous settings that would make all of an app's data readable and writeable by any other apps were deprecated back in Android 4.2, but Content Providers can still provide apps with direct access to data in other apps.

Settings? These are flags used when you ask to create a file. They're loose wrappers around the Linux APIs to create files with specific permissions. This isn't a user setting nor is it something that the user can even choose to do. An Application writing a file somewhere with those flags on 4.2 would have created a file under its sandbox username with permissions of 777. But since the file in question is likely in /data if it was created with Context.openFileOutput() on a path on Context.getFilesDir(), other processes can't actually open it as they don't have permission on any of the parent folders on pretty much any modern android platform. The old emulated /sdcard is world-readable/world-writable by default, which is where the whole WhatsApp world-readable/writable database security hole from a few months back came from, but the actual internal storage isn't, and using those flags when opening files in there isn't going to allow any app to access the app's files.

Those two old modes were likely deprecated because they don't work anymore: creating a file in /sdcard will always have both of them by default, and creating a file in /data with them won't actually do what it says on the tin.

And content providers are being described in an awfully nefarious tone here. They allow an application to expose its own data, through its own code, in a very similar manner to what you're describing as happening with Apple. ContentProviders are implemented entirely by the app. They're guarded by permissions, both the system ones that show up inside the play store dialogs, as well as third party permissions, so developers like Facebook can create a content provider marked signature-only, and that provider is only accessible to Facebook's own apps.

But most critically, ContentProviders do not provide direct access, period. They provide indirect access, through the system ContentResolver, to resources offered up by an app. If you want to open say the album art exposed by a music app's content provider, you might try to open an URL that looks something like content://package.name/some/album/0 using SomeContentProvider.openFile(). That's as close though as you get to direct access: a file descriptor that's been mapped through to your process by ContentResolver talking to another app's ContentProvider on your behalf. Said descriptor is almost certainly opened in read-only mode by the content provider, so the querying app can't change anything in the file, just read it. Most ContentProvider operations are much more abstract than this though. To continue the music example, things like listing tracks, querying artists, etc, all are indirect data pulled out of the app's own database and packaged up into a Cursor by a ContentProvider for the querying app, which is a copy of the data. If you, as a developer, expose a ContentProvider, any operation on that ContentProvider is being done by your app at the request of another, and you can enforce any rules you like about what can and cannot be done.

As far as I can tell from looking at Apple's documentation on this, the main difference is that Apple's extensions are process-isolated from the app itself, and have their own data storage locations. The former is optional in Android, just add android:process="some-unique-value" to the <provider> element in your manifest and it will start up outside of your app's main process. I'm not sure I'd recommend it, as it can cause memory issues and communicating with your own process is harder to deal with then, but still. That and they don't have a third party equivalent of a ContentProvider, which is sad.

Yeah, it's clear the author doesn't have a complete grasp of Android's intent system and security model. I just got tired of endlessly debating the whole "Apple's implementation is more secure and private ” nonsense.

Yeah the section on Android brought into question the technical validity of the whole article, which basically defeats the whole purpose of coming to Ars for such articles.

But I say that it's a valid argument that Android's more flexible system brought about complex interactions that's harder for developers to fully grasp the security implications of what their components are doing (there was a demonstration on how a no-internet access app can use some unsecured HTC built-in intent to perform networking operations back around 2011). It's just sad that Ars seem to have bombed on this article.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

It is the same story... Android implements it and Apple does it better.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

The reason for the iOS restrictions is security. You trade flexibility and customization for sterile security.

Don't fool yourself. The reason for iOS restrictions is control and nothing else.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

The reason for the iOS restrictions is security. You trade flexibility and customization for sterile security.

Don't fool yourself. The reason for iOS restrictions is control and nothing else.

Still, it looks like Apple has addressed one of the biggest complaints about the platform in a way that doesn't drastically increase the operating system's memory requirements...

I'm curious to know how much this will though, using an iPad 2 the memory limitations are real (especially browsing), adding to the memory usage might not make for a lot of fun.

Still, this is good to see, it addresses some of the more frustrating limitations of iOS in a well done way. I wish they went further (allowing an extension to be a browser engine, for example), but it's hard to complain too much about it

The way extensions are executed also differs from the way apps are executed. If you begin to use the same extension in two or more host apps at the same time—if you fire up an extension in Safari and then hop over and start the same extension in Mail, for example—the system actually launches two separate copies of that extension and runs them as separate processes.

Hmm, wonder what impact this will have on memory usage (let alone performance on older hardware) for commonly used extensions such as keyboards.

It would make a compelling reason for the iphone6 to have 2gb of ram, and for people still using an iphone4s or even 5 to upgrade. I am sure it should run just fine on 1gb of ram, this procedure sounds more processor than ram dependent.

It'll probably increase the memory usage slightly, but it's not that huge. It also gives the OS a nice, smaller target with a different usage pattern when it goes looking for processes to kill, so these extensions should pretty much be killed off as quickly as they finish. I'd expect Apple to include more memory soon on the iPhones, but they've been getting away with their small memory amount pretty well, largely by aggressively killing backgrounded processes (much more aggressively than Android does, android basically only does it under memory pressure).

Springboard will probably use a good bit more memory now though due to all the widget extensions that it'd have to talk to. So the minimum memory footprint will probably go up a bit, it might make it a bit more difficult as a developer on 512 MB devices due to that.

Because reloading browser tabs and entire apps every single time you switch between them has been such a wonderful user experience for everyone on iOS 7 (and to a much lesser extent, iOS 6). The OS is getting bigger, apps are getting bigger, but that only means they take even longer to start up every time. Getting back to where I was is all the UX I want, instead of being dumped back to the app start.

I wanted to love the iPad Air, I really did, but when what was to be a revolutionary upgrade debuted with no more storage or memory, I knew Apple was letting profit margin dictate engineering instead of the other way around.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

The reason for the iOS restrictions is security. You trade flexibility and customization for sterile security.

Don't fool yourself. The reason for iOS restrictions is control and nothing else.

Take the tinfoil hat off. The only reason for the restrictions on extensions is security. Extensions remove control from Apple, by subbing out Apple's system elements and subbing in 3rd party ones.

Thanks for this article, it is a good primer into the new functionality to be expected from iOS devices.

I am wondering about a specific situation, which I often encounter and which is handled seamlessly on Android. Whenever I want to send files to my parents, I select the file in a media or file manager, then choose "share", then Skype, and the file is sent via Skype. My question is, how this would be handled on iOS -- will the sharing app fire-up its own instance of Skype, and what if Skype is already running?

Thanks for this article, it is a good primer into the new functionality to be expected from iOS devices.

I am wondering about a specific situation, which I often encounter and which is handled seamlessly on Android. Whenever I want to send files to my parents, I select the file in a media or file manager, then choose "share", then Skype, and the file is sent via Skype. My question is, how this would be handled on iOS -- will the sharing app fire-up its own instance of Skype, and what if Skype is already running?

I think that Skype would actually implement the File Picker inside of itself, allowing you to choose a file from your iCloud or <cloud provider who has written an extension for themselves>. The other possibility I could see is that they do what the OS X iMessage widget does. Allow you to choose a recipient from a list, and it creates a connection and sends it separately from the "main" skype application.

Yet another reason iOS is a toy for children, while Android is a tool for adults. Android respects the user's intellect and allows them to do whatever they wish, while iOS coats everything in child safety guards. It should be a no brainer as to which the educated consumer prefers.

The reason for the iOS restrictions is security. You trade flexibility and customization for sterile security. Android can accomplish more without these restrictions but is less secure than iOS and always has been. File system encryption, ASLR, sandbox implementation, quick security updates, app vetting process, the list goes on.

I agree with your first two sentences, but the rest is factually incorrect. Android has has full FS encryption since 2.3 at least (that's when I started using it), and Nexus devices have always had quick updates (if you want updates, get a Nexus. It's not the OS or Google's fault carriers drag their heels). Etc.

Thanks for this article, it is a good primer into the new functionality to be expected from iOS devices.

I am wondering about a specific situation, which I often encounter and which is handled seamlessly on Android. Whenever I want to send files to my parents, I select the file in a media or file manager, then choose "share", then Skype, and the file is sent via Skype. My question is, how this would be handled on iOS -- will the sharing app fire-up its own instance of Skype, and what if Skype is already running?

I think that Skype would actually implement the File Picker inside of itself, allowing you to choose a file from your iCloud or <cloud provider who has written an extension for themselves>. The other possibility I could see is that they do what the OS X iMessage widget does. Allow you to choose a recipient from a list, and it creates a connection and sends it separately from the "main" skype application.

Well the situation where I am already inside Skype is fairly obvious. However creating a separate connection seems like an unnecessary overhead. We'll see how this fares in reality, but I anticipate RAM and performance issues.

Thanks for this article, it is a good primer into the new functionality to be expected from iOS devices.

I am wondering about a specific situation, which I often encounter and which is handled seamlessly on Android. Whenever I want to send files to my parents, I select the file in a media or file manager, then choose "share", then Skype, and the file is sent via Skype. My question is, how this would be handled on iOS -- will the sharing app fire-up its own instance of Skype, and what if Skype is already running?

I think that Skype would actually implement the File Picker inside of itself, allowing you to choose a file from your iCloud or <cloud provider who has written an extension for themselves>. The other possibility I could see is that they do what the OS X iMessage widget does. Allow you to choose a recipient from a list, and it creates a connection and sends it separately from the "main" skype application.

Well the situation where I am already inside Skype is fairly obvious. However creating a separate connection seems like an unnecessary overhead. We'll see how this fares in reality, but I anticipate RAM and performance issues.

Well, if a developer uses a Framework as Apple suggests, you won't have RAM issues. the Framework will only be loaded once into RAM, thus saving RAM rather than using more.

I much prefer Apple's method prompting you when an app needs permissions for something and even allowing you to turn them off later. I got so tired of 95% of the android apps I installed needing full access to the internet. Almost everything on my phone could phone home and send pretty much any info it had access to up to a server someplace. Often times it was for some silly thing I didn't want to use but I still had to give the app the permissions anyway or I couldn't install it.

That doesn't make much sense. iOS automatically grants apps internet access. It only asks user permission for a few specific things like Location, Contacts, Microphone, etc. Apps can still "phone home".

You shouldn't be installing the app in the first place if you're afraid it'll abuse your privacy.