Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
2  
I've tried to clean up your grammar. Please make changes if you feel that I haven't accurately represented what you meant. –  Kris Harper Mar 28 '12 at 11:09
    
Oh. thanks :) So different with my original post and more clearer :D –  hqt Mar 29 '12 at 8:11

7 Answers 7

up vote 6 down vote accepted

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.

share|improve this answer
    
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 Mar 28 '12 at 21:08

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.

share|improve this answer
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 Mar 28 '12 at 14:46
2  
@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 Mar 28 '12 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 Mar 28 '12 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. –  Martin Beckett Mar 28 '12 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 Mar 28 '12 at 15:16

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.

share|improve this answer
    
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 Mar 28 '12 at 17:38
    
@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 Mar 28 '12 at 22:36

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
    
Yes. I know that. But I don't think most programmers can fix error –  hqt Mar 29 '12 at 4:14

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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