Well written Android applications are structured like mashups. There is no main. There are multiple entry points for screens (aka Activities) as well as entry points for processing (Services), data (ContentProviders) and even a mechanism (BroadcastReceiver) for telling all interested apps about events (eg battery charge level changing, incoming calls, apps being installed). There is a mechanism for decoupled communication (Intents) which allow specification of a verb (eg VIEW, PICK, DIAL, EDIT) and one or more bits of accompanying data (eg text, urls, images). It is trivial to bring up/use part of another app that didn't even exist at the time yours was released and have the experience combined. (You can always tell iOS apps ported to Android because they don't do mashups or collaborate with the apps already on your system.)
This means that an iOS app will never be improved by other apps installed on the system, while Android ones can be. And because of Intents it becomes possible for a user to choose their own experience - want to use a different browser or app for viewing images? No problem. For example I installed the GitHub app on Android and it added itself to the AccountManager. Now other apps can collaborate with it (eg it supports the SEND verb which creates a Gist) or ask it to display an issue/user/commit.
The (long winded) point behind this is that app installations are far more valuable to Android users. If things were only decided on technical merit then Android will end up nailing iOS because of this. But that walled garden sure looks nice to many people, and it is rare for users to really notice what is going on and they definitely won't have both devices to continually contrast and compare.
I've got apps launching links in iCab, other apps using files from the Dropbox app, etc., so that seems a bit inflexible.
I get that Android's app-to-app crosstalk is considerably deeper, it's just the characterization of iOS that doesn't seem totally right to me.
Try alternate dialers. On Android you just install an app that claims to handle tel:// urls. You are out of luck on iOS. Try adding another social network that can handle sharing. Again you are out of luck on iOS until every source app adds libraries. And images, contacts, calendars, and whatever some startup thinks of next week.
iOS is trivial in this regard - there is essentially no cross app integration. That fits with Apple's walled garden model, and means that apps do not change their functionality after installation which fits in with Apple's review process. Having "deterministic" app behaviour hasn't hurt Apple so far - they rake in over half of the smartphone industry profits.
This is not true for Android. Some OEMs might ship a version of Android that is tied to a single app store (e.g., Kindle Fire), but I'm quite certain that vanilla Android can install any old .apk from any source.
Case in point: Google Wallet.
The openness of Google, nexus, and android is a big selling point for me.
I've got mobile broadband in my laptop. Imagine if the provider of that service would have a say over what programs I could run on my laptop. Very strange.
Video game consoles are similar - MS won't allow you access to the Xbox Live service if you've modded your hardware or installed different firmware.
Verizon doesn't care what you do with your phone, but they say that you can't get their cell phone service unless you run the device the way they want you to.
This is why the whole new Windows 8 direction scares me, too. For now at least, they are allowing desktop apps on Windows 8, but on Windows RT, Microsoft is just as bad as Apple with iOS. They won't allow you to sideload any apps. So if you want to use an app that wasn't approved by Microsoft, you'll have to jailbreak the Windows RT device. Sames goes for WP7/WP8.
What about game consoles? Calculators? Cars? Washing machines?
It's absurd to force a company to provide features and services by law. That is a huge violation of free trade and the rights of those who sell devices. You know what you can and can't do on a device before you buy it. If people cared as much about the issue as you do, they'd buy phones that allowed that. They don't. That is why your house analogy is so far off.
If someone creates software that runs on a game console, or calculator, and distributes it where users have a choice to install it or not, I agree with cs702, it should be up to the user/owner of the device if they want to take the risks to install it or not, the manufacture of the device shouldn't actively prevent such installation, but simply say, "If you do this, we won't support it, and it voids your warranty, but it is your device now."
They don't even after to make it easy for the users. It's not that Apple should provide another way for them to install another app store, that's a feature. It's that Apple shouldn't religiously hunt and destroy every means of jailbreaking just _because_ it allows users out of the Apple Control Sphere.
This is exactly how things work on Macs now and Mac users aren't exactly swimming in malware.
Edit: now that you have completely changed your second point, my comment is not a valid response. Please refrain from substantially changing your comments once posted.
Apples App store and approval process is basically an online version of the classic game console model with much cheaper entry fees for developers and must less restrictive rules.
All the reasons why game consoles have been successful vs PC gaming apply to Apples success, lower piracy, less problems for users, less complexity for developer because of controlled hardware and software platform. All the same limitations apply as well.
Apple prevents sideloading simply to have greater control over the platform.
What information do you have the confirms Apples doing it only for "greater control"? Would they also not want to prevent piracy in order to make their platform more attractive to developers?
What is the difference between a Nintendo DS and a iPod touch other than Apple has a wider range of apps other than games?
Apple has every right to vet the apps it sells in its app store. And it makes sense to do so.
But I agree with your second point, that consumers should have the option to obtain apps from other stores.
You're acting like: 1. Jailbreaking doesn't exist. 2. Apple is actively working to prevent people from jailbreaking their devices.
This is simply not the case. Apple is neither technically nor legally hindering anyone's ability to jailbreak their devices.
Your problem is analogous to complaining you ought to have the inalienable right to go outside, but you were born in a home with doors. But once you open the door, the world is yours for the taking. No one is stopping you.
Your analogy doesn't work because the only way to open the door on your Apple house is to pick the lock.
http://www.wired.com/threatlevel/2010/07/feds-ok-iphone-jail...
But keep things in perspective. Apple chooses to sell appliances, not platforms. Apple products are more like toasters than houses. I agree that I should certainly have the right to modify my toaster, but I don't begrudge the designers for making it difficult for me to do so.
http://www.slideshare.net/bcousins/when-the-consoles-die-wha...
* iOS allows users to install only applications approved by Apple. This makes about as much sense as a house with built-in technology that prevents the owner from using any furniture, kitchen equipment, and entertainment device that isn’t pre-approved by the home builder.
* iOS prevents users from installing and accessing other app stores. (Other proprietary mobile OSs make it difficult or impossible to install third-party app stores.) This makes about as much sense as the home builder having the legal and technological power to prevent the homeowner from visiting certain shopping malls in the area.
Installing any app you want -- and any app store you want -- on your own device ought to be an inalienable right.
--
Edit: I updated the second point to reflect that Android does allow the installation of third party app stores -- see comments below. (Thank you mokeyfacebag, stanleydrew, and ZeroGravitas for pointing this out!)