tags:

views:

1582

answers:

10

Is Android development restrictive in any way like the iPhone, or can you download whatever and from whoever you want?

I want to learn about development for either iPhone or Android, but from what I hear iPhone development is pretty restrictive!

+26  A: 

Nope! That's the beauty of Android. Even though there is a AppStore equivalent, you can download an app from anywhere. Plus, it's programmed in Java, so you don't have to worry about all that mundane stuff like garbage collection (just at the cost of speed).

Don't mean to insult the iPhone. It is a great platform too.


EDIT: A lot of people have been noting that the iPhone APIs are not restrictive, but rather the approval process is. This is true, however the iPhone's APIs are still somewhat limited, in the way of low level hardware access, backgrounding (only notifications in 3.0), etc.

iPhone 3.0 is a step in the right direction, but there is some work left to do.

Also, have you considered making JB iPhone software? I'm not sure of it's market share, but I do know of a lot of people with Jailbroken devices.


EDIT: I have read in some more posts on similar questions that Android's Java can slow things down due to the Garbage Collector. Just something to watch out for.

PiPeep
A: 

Yes, Android is indeed open and you can publish whatever you'd like to the Market Place But:

  1. you still need to learn how sign your application and mind the technical posting requirements to the market (like keeping proper version IDs etc.)

  2. if you really want to get/send a package from/to anyone, then the receiver of the package (called an APK file will need to know how to use a command line tool called 'adb' to administer their phone to install & uninstall applications. It's pretty simple to do, but you need to have Android drivers installed and the SDK tools.

To be fair to the iPhone development model, you can also distribute test versions of your application reasonably easily, though perhaps not as easily as with Android. Your testers need to provide you a special device ID which they get from iTunes while the device is connected, then you create a license file containing keys for all of your testers which you distribute with the release directory of your application. The users then install your application via iTunes.

jottos
You don't need to use adb to install APKs. If you point the Android browser at an APK file hosted on a website it will let you download and install it directly.
Reto Meier
Reto, thanks for comment - if you install via URL does the APK have to follow version ID hygiene?
jottos
+1  A: 

Well is Apple open at all? Uhm.. eh.. no. Closed hardware, closed software, closed everything. I think Alcatraz is more open then Apple, at lease you get to leave your cell there.

You can write an application for the iPhone. Will it get approved? Well not sure. They could deny it for any reason whatsoever. You may have used a blue background and Apple only likes white and gray, thus deny.

However with Android it is completely open. You can develop for it, or even develop Android itself. No fear of ever being denied.

But in all seriousness. Apple has a larger market share, millions of people use and love the iPhone and they will most likely not be leaving for quite a while. While on the other hand the Android was for T-Mobile. Does anyone even use T-Mobile?

IMO if you do not have a gPhone I would develop for the iPhone. However as much as I dislike the Apple philosophy of being such a closed nature, they are the better bet if you wish to make some money with your application.

corymathews
must...resist..temptation to downvote for bad joke at the end.... :p
Davy8
Nosredna
maybe you can compromise and meet on the middle, i.e. get an hPhone. Programmed exclusively in haskell, of course ;-)
Jonas Kölker
"I think Alcatraz is more open then apple"
PiPeep
the world is larger than the United States, in Europe (Netherlands) T-mobile is pretty big (and there is vodafone with the htc magic now). Your point still holds though, globally there are more iPhones than gPhones.
BlackShift
-1 since there will be a load of Android phones releases during the autumn. HTC has released two, and will sonn release a third. Samsung is releasing one soon too, and a lot of other phone makers have announced Android phones as well (Sony Ericsson to mention one).
kigurai
Why are people so critical of this post?
PiPeep
+9  A: 

If you say iPhone is restrictive, I would describe Android as immature.

There are still many bugs in Android that you will inevitably run into if you are doing some none-trivial programs. Some of those only exist on the emulator while others only on the actual phone.

Though in my experience, developing on Android with Eclipse feels just as good as developing on iPhone with Xcode, if not better. The tool set provided by Google is very complete and is cross-platform. Garbage collector does make huge difference while programming.

I'm assuming you already have a Mac otherwise the iPhone wouldn't be an option at all.

David Lin
Garbage collection and mobile devices don't play well together. Hence one of the reasons iPhone apps feel more responsive than other platform apps.
Philippe Leybaert
I totally agree that iphone is more responsive. Though with the advance of garbage collection and hardware, I feel this may be less of a problem over time.
David Lin
By "restritive", I guess he means the availability of languages, as well as stuff like getting an application running in the background.
Daniel
XCode and Eclipse are both VERY nice IDEs. XCode is a lot faster and responsive though (Eclipse is in Java).
PiPeep
+7  A: 

iPhone development isn't particularly restrictive. Getting the resulting app on Apple's App Store is the restrictive part.

If the app you're working on follows Apple's guidelines on what an iPhone app is allowed to do, picking that as your initial development platform seems a no-brainer. If it violates Apple's guidelines and can't be modified to follow them, your market will be restricted to jailbroken phones - a very small subset.

ceejayoz
+1 for that second comment
PiPeep
>If it violates Apple's guidelinesMore like "If it violates the arbitrary rules App Store people made up that day". See http://gizmodo.com/5483217/apple-rejects-app-for-containing-minimal-user-functionality. Try http://www.google.co.in/search?q=apple+rejects+app for more fun.
sundar
A: 

No, you can sign the application yourself and distribute the resulting APK file via your own web server or by other means.

kgutteridge
A: 

'Restriction' can mean two things:

  1. The ability to install anything you want. Google is very good at that, Nokia somewhere in the middle and Apple is the worst
  2. What you are able to do with you app. They all have arbitrary restrictions on what you can and can't do, but it seems to me Nokia is the least restrictive, Google inbetween and Apple the worst (again).

YMMV

BlackShift
+1  A: 

There are some restrictions...

Matt G
+23  A: 

There are a variety of areas to consider regarding the relative restrictiveness of the two platforms.

The Market

Android Market is undoubtedly less restrictive than the App Store when it comes to the submission process. The upside is that you can get pretty much anything you want into the Android Market. The downside is that you can get pretty much anything you want into the Android Market (a market flooded with spam "applications" is in some ways a restriction).

A big negative on the iPhone side is the fact that your options for installing applications that are not in the App Store are limited -- you can either distribute the application as a beta (limited to 100 users) or jailbreak your iPhone. Android, however, allows you to install apps from anywhere, including a web page.

The Applications

One of the core design philosophies of the Android platform is "All Applications are Created Equal", which is supposed to mean that you can freely replace applications on the phone with a third party version. In practice this is not really the case, as many of the Google applications either have special capabilities not available to most applications (see: Android Market) or use undocumented/native APIs (see: Calendar).

The iPhone on the other hand makes no such claims about equality, and the Apple stance in general is "There is only one way to do it, and that is the Apple way". Additionally third party iPhone applications may not run in the background while Android applications can. New for iPhone OS 4.0 is the ability for apps to run in the background. One thing iPhone applications can currently do that Android applications can not is receive push notifications. New for Android 2.2 is the ability for apps to receive push notifications via something called the Android Cloud.

The Source

Android is open source - mostly (some firmware components are closed source). Even so, there is some rocket science involved just in getting the Android codebase to compile. In addition Google has sent cease & desist orders for redistributing custom images that include the Android Market and Google Maps application.

The iPhone is completely closed source, and recent changes to the developer agreement have been controversial as they mandate that all apps submitted to the app store be originally written in "Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs"

The SDK

The Android SDK can be freely downloaded; the iPhone SDK requires free user registration to download. Android development can be done under Mac OS X, Windows or Linux, while iPhone development is only possible under Mac OS X. You'll also need to pay for the $99 iPhone developer account if you want to test your software on an actual device (rather than the emulator).

The Userbase

And last but certainly not least, the userbase. When this answer was originally written the iPhone had a much larger userbase and was growing much faster than Android. This is changing as Android begins to support multiple carriers and hardware platforms (see: the Open Handset Alliance). The list of devices running Android is now quite long although none yet match the popularity of the iPhone.

Some analysts are now reporting that Android is outselling the iPhone and are predicting that Android will soon overtake iPhone for market share. Other analysts think that Apple will make up ground when the iPhone 4g is released. The former seems more likely based on the parallel history of the PC industry -- Apple's design and user experience were copied by GoogleMicrosoft and opened up to run on commodity hardware.

Luke
The iPhone does, however, does have the problem with needing a $99 license to test on an actual device (outside the simulator).
PiPeep
Hope I've addressed the comment
Luke
development in Xcode :(
Nnp
Heh, oh yeah. Added note about language requirements.
Luke
A: 

In most cases no, but Google has allowed the carrier and the device manufacture the ability to restrict certain things. Carriers are allowed to block individual apps. Also carriers/manufactures can prevent certain features of the device.

One example is the Motorola Backflip, it wont let you install non Official market applications. Also some phones do not have access to the Official Market.

ddcruver