2

My question may seem silly, but, I've read in many Android books that the better part of Android is Android is open, and iOS is closed.

But, from a programmer viewpoint, who cares about this point? Programmers just care about the platform: is it easy to program in, easy to have help in the network, etc. They don't care about whether the platform is open or closed.

One book had additional information, but I don't understand it much. Since iOS is not open, I’d be able to share my work with others only if Apple allowed it.

So, if you write an app, and need to share, you must have Apple's permission, but not Android's?

Please help me understand this point. I'm preparing for a presentation on Android. And I don't know if I should put this point into my presentation.

2
  • 2
    I've tried to clean up your grammar. Please make changes if you feel that I haven't accurately represented what you meant. Commented Mar 28, 2012 at 11:09
  • Oh. thanks :) So different with my original post and more clearer :D
    – hqt
    Commented Mar 29, 2012 at 8:11

7 Answers 7

8

If Google doesn't accept your app for the play store, or you don't like their conditions, you could still offer it through alternative means, e.g. Amazon Market, AndroidPIT etc. or just sell it on your own website (*). Additionally, since Apple has strict requirements regarding content etc., and enforces them, your app is more likely to be rejected by Apple than by Google.

Android in general allows your app to dig deeper into the system. On iOS, your app simply cannot get the permission e.g. to kill other apps.

(*) Gameloft offered their Android games only through their website for a long time, so it's not a purely hypothetical option.

4
  • IIRC, your example permission (killing other apps) is also no longer allowed in Android as of 2.3-ish, the API returns success but doesn't actually do anything.
    – Izkata
    Commented Mar 28, 2012 at 21:08
  • Keep in mind that you can distribute iOS apps without Apple's permission and not using the App Store, but it does involve getting the ID of the phone from the user and adding that ID to your AdHoc distribution profile before packaging your app for distribution. It's not as generally flexible as the Android options, but is possible. Commented May 15, 2015 at 4:34
  • @user1118321 I don't believe that is true. There are strict limits on the number of UDIDs you can register; 100 I believe Commented May 15, 2015 at 16:24
  • It's 100 per distribution profile, if I recall correctly. And I'm not aware of limits on the number of distribution profiles you can make. Whether that's worth a developer's time or not depends on who their audience is. It's perfectly fine for working within a small organization, but might not be workable for commercial software to consumers. But the point remains, if you don't like Apple's policies you do have other options for distribution. Commented May 16, 2015 at 0:56
3

Because Android is open-source is more appealing to be installed on many other devices, different than smartphones and tablets (for example wearable devices, cars, game consoles, TV media players and many others). Besides that, different manufacturers can easily customize Android, on their specific phones but still be able to use all the apps.

This means that Android is used in tens of devices from tens of different vendors while iOS is used in 2 devices (iPhone and iPad) from just one vendor (Apple). As a programmer in Android you are able to program for all of devices while on iOS you are know to program only for iPhone and iPad.

Also Android is based on Linux, so the source code is not entirely strange or undocumented.

3

It's no more than an ideological point. If you want normal people (i.e. non developers) with iOS devices to be able to use your iOS app, you have to distribute it via the Apple app store, there is no other way, unless you limit your audience to people with jailbroken devices. If Apple rejects your app, that's it, you're done.

The source code of iOS is not directly available to you to look at, but the APIs are generally pretty well documented. The source code for Android is, at least theoretically, available, but if you need to start looking through it, it's an indication that the documentation is crap.

8
  • 1
    Prefering 'open' software over 'closed' software is not just ideology. There are very tangible practical consequences to using closed software or developing for a closed platform.
    – tdammers
    Commented Mar 28, 2012 at 14:46
  • 3
    @tdammers: I don't think the tangible benegfits are that fantastic except for the one I mentioned which is that Apple have power of life and death over your app.
    – JeremyP
    Commented Mar 28, 2012 at 14:58
  • How about having to sign up for a developer account, being limited in your choice of tools, not being able to distribute your work in any way you see fit?
    – tdammers
    Commented Mar 28, 2012 at 14:59
  • IIRC Apple also had some pretty restrictive clauses n their dev agreement about sharing any information. A few authors claimed it would be impossible to write a book about iOS programming, and ,technically, answering questions on SO could be illegal if you are a registered developer. Commented Mar 28, 2012 at 15:09
  • @tdammers: the tools are the tools. Android also limits the tools in some respects. But it's the same for many target platforms.
    – JeremyP
    Commented Mar 28, 2012 at 15:16
1

So, if you write an app, and need to share, you must have Apple's permission, but not Android's?

Yes, in case of Android you can just share the APK file and anyone can install it. Google Play (f. Android Market) is just for convenience. On the other hand the on iOS, Apple AppStore is the only way to distribute your software to the people. You can share it with you dev team using iOS Provisioning, but that's quite complicated and limited. I'm not really counting jailbreaking as an option, as most people aren't wiling to do it because of legal and technical risks involved.

Programmers just care about the platform: is it easy to program in, easy to have help in the network, etc. They don't care about whether the platform is open or closed.

Open platform translates to more 3rd party tools, more involved community and better community documentation. And it's all googleable.

It's also about freedom. In case of iOS you have to develop using Apple SDK with Apple Xcode on Apple machine, and have an account in Apple Developers Program. In case of Android you can develop on your favorite OS, on you favorite brand of computer, using your favorite IDE.

3
  • There are no legal concerns with jailbreaking at least until that exception expires. You are allowed by law to jailbreak your phone. I do not know if that exception extends to your other iOS devices.
    – Ramhound
    Commented Mar 28, 2012 at 17:38
  • 1
    @Ramhound: First, that depends on country you're in, and to which countries you'll travel. Secondly criminal charges aren't the only issue. For example in case of most operators jailbreaking is against their rules, thus voiding any warranty and support from them.
    – vartec
    Commented Mar 28, 2012 at 22:36
  • @Ramhound and in addition it is almost certainly a breach of contract with your telco, most of which (maybe all) have clauses that prohibit it.
    – jwenting
    Commented May 16, 2015 at 9:32
0

The book is talking about the platform being open or not.

Why would you care?

If there is a bug in the framework/platform, if it is open source you could fix it and submit a patch to fix it for everyone. You could add features that you need. You can view the source to see how things are done.

You can't do that with closed source.

1
  • Yes. I know that. But I don't think most programmers can fix error
    – hqt
    Commented Mar 29, 2012 at 4:14
-1

There is a direct implication: If you use GPLv3 code in your app, you cannot legally make an iOS app out of it (IANAL, opinions vary), while with Android there is no problem, as long as you provide the source code somewhere.

-2

Android is a open source because is provide the source code while in ios is closed so,that it not provide the source code.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.