views:

5266

answers:

25
+42  Q: 

iPhone or Android?

According to a recent article iPhone has gained a better appeal than Android among programmers. I'm quite a newbie to Java and a complete profane to ObjectiveC, in your opinion, in which one of the two could I have a try?

A: 

iPhone is by far the best phone i've ever had, havent tried googles but, how hard can it be, if you know C / C++ Objective C is juts a new dialect and you program against an API which probably is well documented by apple..

Google however probably, will have a broader developer community.

Filip Ekberg
The G1 is all Java though, no C. Not that the syntax is all that different...
Bob Somers
+14  A: 

Short-term (easy to get into, not as much you have to think about), iPhone. Long-term (more of a skillset to develop and more you can do once you have it), Android.

It's a bit amusing how that article skims past the comparative release dates of the platforms it's comparing.

chaos
What do you mean by "more of a skillset to develop"?
Dour High Arch
I would have to disagree with the coding on an iPhone versus Android. To me, it requires more of a skillset to develop for the iPhone, or it could be the time I've spent coding in C# is helping me on my way to coding in Java.
GregD
I'd say it's easier to get into Android dev - no need to own a Mac. You can just download the SDK and go for it.
Max Stewart
I mostly meant that the iPhone environment is more constrained, somewhat typically of Apple, which requires less flexibility of your code. For most people, it's harder to develop something that will still lay out well when your Android device switches from portrait to landscape, for example.
chaos
+9  A: 

I don't think you can compare by the size of the developer community, which is what that article is doing. The iPhone has been out for a lot longer and has a much broader user base, so of course more developers are targetting it now. Plus, there are significant flaws in the first G-phone, the G1, which will probably be fixed by later iterations.

So the question really is: Do you develop for the iPhone knowing you have a user base and other developers competing for that same user base, or do you develop for Android knowing that there are fewer customers (so far) and also fewer competitors (so far)? The answer you give today might be different than the one you give in January.

Paul Tomblin
The biggest flaw in the G1? It's as thick as a brick and it's UGLY. Techies never understand that sexy sells. Technical never does. May here will disagree, but they're TECHIES. The average consumer doesn't care about what it can do, they care about what it looks like.
Robert C. Barth
Yes, Robert, that's one of the big flaws. Another is that you can only install apps on the 1Gb of built-in RAM, not on SD cards. Another is that apps can over-ride your "i'm roaming" preference and start up a data connection that costs you 35 cents a second.
Paul Tomblin
+5  A: 

I think Android will interest more programmers with times to come as Android become mature. iPhone is a great platform but has lots of politics around building apps for it. I think with more Android phones, things will pick up. I can see something happen with NetBooks becoming popular running gOS. Maybe I am dreaming :). A final word, I think its too early to call Android infertile.

Perpetualcoder
+4  A: 

Android hasn't made it big yet because there are only a few phones that support it, and they have only been released recently (for example, the T-Mobile G1, released in September 2008) so there are very few consumers with Android phones.

It seems to me like Android is going to have the stronger and more open development community, based on it being a Google Code project. But it's too soon to tell.

David
I totally disagree. Android has not made it big yet because it has not delivered anything spectacular that end-users want. It is irrelevant if there are 5 or 500 Android-devices, they will all compete for the same small user-base until one of them can provide a user experience without obvious rough edges.
PeyloW
+3  A: 

A bigger point (imo) to consider is access to the marketplace. Apple determines which of the eleventy-zillion lightsaber apps is the best ones, and only allows a few on the store at a time. You may add some amazing features to your version of "Flashlight", but if there are too many apps on the store already that are similar, yours won't be accepted.

With the Android, like the internet marketplace, no such artificial control exists.

David Hill
Besides the internet as a whole, I can think of very few marketplaces where there is no control over which goods are sold.
dancavallaro
I think there are definite plusses and minuses to Apple's control of the App store.
Mike Akers
What basis do you have to say Apple is limiting the supply of any kind of application?
Kendall Helmstetter Gelner
My evidence is anecdotal, based on the blog/forum posts of other developers. If you try to submit an application into an already crowded "space" you may be rejected out-of-hand. How many flash-lights are there? How many more were rejected?
David Hill
I'd prefer a community deciding whats worth looking at rather than some central hidden authority.
Luke
+7  A: 

I picked up objective-c and cocoa pretty quickly (3 months of off hours development). My feeling is that Android will be popular with developers because of the restrictions placed on them by apple. iPhone will in the end be more popular with users because of the marketing and ease of use with which they can install apps. After the success of iPods I find it very hard to bet against iPhone.

Nick
+2  A: 

It sounds like you just want to work on programming a mobile device, based on you're experience I'd suggest Android. You can get up and running quickly using what you already know and learn more about the details of a mobile platform.

If you're interested in making money off a particular application a different ansewr might be appropriate. But if you already know Java and you just want to program a phone then Android is the way to go.

jblocksom
+66  A: 

I have both phones (iPhone and G1) as a user, but I chose to develop for the android platform. Even though I am an Apple fanboy I made this decisions based on my dislike for Apple's politics (appstore, NDA, see above) but also for architectural reasons:

  • Android makes it very easy to integrate with other apps on a somewhat finegrained level. Sharing application logic across applications is done by using intents (http://code.google.com/android/intro/anatomy.html).
  • Also I want to pickup my phone and start to read news, not start to download news. With the iPhone that is not possible for a 3rd party developer to accomplish due to the lack of background tasks.
Mariano Kamp
If you do the downloading in the background, you won't be reading news either. You'll be looking for the battery charger.
Stephan Eggermont
Haha at the battery remark because it's true. I have the G1 and the battery life is atrocious. The hardware is not nearly as sexy as the iPhone, but I chose to develop for Android for all the reasons mkamp mentioned.
GregD
Hehe. It would certainly make sense to take the power status (plugged in or not) into consideration when scheduling syncs ... and you can do that.
Mariano Kamp
There really is no point to it. How much data do you need to transfer to start reading? Better solve it on the cabled side, with a fast server push on startup.
Stephan Eggermont
One of the biggest reasons to use Android is that you can incrementally improve your app without waiting up to a month in between for Apple to approve and reapprove it. My company is very happy on Android, because we can do whatever we want and run any experiments we want.
Artem
What a fantastic idea, software that can interact with other software and run at the same time too instead of running in complete isolation! This could catch on ;-)
vickirk
@Stephan : Contrary the popular belief, the background processing can actually save battery. You can trigger your news download based on event that data connection is available (some other front application is connecting). On iPhone, once you get to front, you have to connect on your own, which is more battery consuming. On Android, you can already have the data ready, no extra radio wake-up needed. Starting GPS is even more costly.
Pavel Lahoda
@Pavel: No, wrong scenario. The wake-up is needed anyway, as you want the latest news, not old. Piggybacking on an existing connection could save battery, but there are no networking protocols allowing you to do that.
Stephan Eggermont
@Stephan: It's not. It really depends on the application, if you really need the absolutely fresh copy of data, than yes. But if there was user activity say within last half hour, there is no need to get the news list again. Most of people are happy with "almost fresh" it is big difference if it's data from yesterday or some 20 min ago. It was just example, I can imagine many scenarios where this is perfectly fine. Also, networking protocols doesn't allow you to "piggy back" but this is irrelevant. The biggest energy impact is starting radio/gettting connection. Same for GPS.
Pavel Lahoda
+4  A: 

It is very simple. Go for iPhone now. It has market share, a polished device and an obvious growth path. With Android you can currently only target early adopters, and there is no killer handset.

If Android takes off, you won't find it difficult to switch to it with your iPhone experience.

If you just want to play, not create a business, pick whatever you like.

Stephan Eggermont
"It has market share" Last I checked, 7million iPhones as opposed to >200million for Symbian. ;)
Dynite
A market is only a market when people spend money there. The iPhone market is larger than the Symbian market.
Stephan Eggermont
I agree. iPhone market can be kept because developers can be rewarded. It will be hard to gather those paying customers on Android.
Eonil
+1  A: 

Depends on what you're doing. If you're looking to sell your application, iPhone. no question. The current Android phone is butt-ugly and, IMO, will never be more than a tiny blip on the radar. Unless/until someone comes out with an Android phone that doesn't look like a doorstop, is as thin and sexy as the iPhone, it will never be much of a player.

If you're just programming for programming's sake, pick whichever one's SDK appeals to you more.

Robert C. Barth
It's really funny to read this kind of comments today. Hindsight is 20/20, sure, but still. :)
benvd
Someone (lots of someones) DID come out with one that didn't look like a brick. The Droid's are all very nice and appeal aesthetically much more so than the G1 ever did. iPhone still has the lion's share of the U.S. market, though (3x that of Android).
Robert C. Barth
+1  A: 

The rumor is that the Android Market will start to allow charging for apps in January, which IMHO, is key to attracting developers. While the G1 is not a very good device and I question whether it will last for the 2 years of my contract, the OS is downright sexy. HTC makes some nice hardware so it's really too bad that they relegated the G1 to an apprentice designer and really only gave him or her the left-over scrap plastic to make it out of.

GregD
+2  A: 

I've heard the rumor about Android Market opening up in January as well. I think it's more than a rumor, I heard that they launched it with a 90 day prohibition on pay-to-play apps.

If your background is C#, then Android (Java) will be pretty easy to figure out. Obj C on the other hand, not so easy. See my comparison of Hello World here (bottom half):

http://codingmostly.blogspot.com/2008/12/hello-android.html.

If your background is C++, then Obj C won't be to tough to figure out I suppose. I'm not really sure. Obj C looks like something from 1985 to me ;)

There's rumors of many more Android phones on the way in 2009. Samsung may be releasing an Omnia that is running Android in 2009 (no idea on the carrier).

My conclusion: Android will take over the portion of the smartphone market that's not dominated by the iPhone. More developers will move to Android simply because of how developer-friendly it is. Developers = apps, apps = gain in market share. Maybe it's not that simple, but that's part of it for sure. Also, bye bye WinMo :)

Edit: Also, virtual keyboard and stereo bluetooth will be in the January update. I for one like my G1, I'm a fan of buttons, touchscreens are great for pointing and swiping, but not the best for typing. Sure, it's a bit plain and I'm sure the G2 will be cooler. But the difference between Android and iPhone is that there will be many phones running Android (choices!) vs. one iPhone.

Here's the link to the Samsung Android Omnia/Instinct: http://www.switched.com/2008/12/19/samsung-launching-google-phone-in-2009/

jcollum
Obj C is not really 85, more like 95. But the libraries sure look like they've had 30 years of polishing. Much better than anything java or .net has to offer.
Stephan Eggermont
Your Objective-C example isn't really representative; developers won't generally write all the code to present their user interface by hand like you do in the example. Instead they'll use IB, and only do the -setText: in code.
Chris Hanson
Example corrected, someone else said the same thing. I blame my source, who apparently posted a crappy how-to. I don't know the first thing about iPhone programming.
jcollum
+2  A: 

About 6 months ago I got an iPhone, simply because the Android wasn't there yet. The main advantage of the iPhone is the great hardware-built device.

The downside of the device is the limited (and sometimes unpredictable) battery-life: Prepare to charge it every night. I don't think this will be much different with an android device.

Another downside is that the device reminds me of earlier windows O.S. instability: the thing crashes a lot, most of the time not caused by installed applications: Either you end up back in the Summerboard application launcher, or worse, it just restarts with you simcard locked. Even with some of the updates I applied, this has not been improved. I've also noticed that jailbreaking has no influence on the stability (I tried the iPhone some time without jailbreaking to check).

All-by-all, I still enjoy the device. It's the first phone-sized internet device and the touch works great. And both the free applications and available jailbreak applications have not tempted me to buy any payed applications.

Roalt
+21  A: 

I speak as an active iPhone developer with a few shipping applications, but also an experienced Java developer with one eye on the Android platform.

I feel at this point the iPhone has a much more refined set of libraries than the Android platform. Partly this is because they borrow a lot of foundation classes from the Mac, but also it's because Apple has put a huge degree of thought around APIs that are fundamentally touch driven.

I'm not sure Android has this same fundamental commitment to everything being centered around touch (never mind multi-touch). Android devices will probably all feature at least a number of buttons, possibly even always offering a physical keyboard.

What that means in terms of development is that you too want to decide what kind of application you are writing. If high leverage of the touch interface calls to you, then develop for the iPhone. Otherwise, you may want to consider the Android platform for the degree of flexibility it gives to possible applications.

A more practical matter is also market share and potential market - there's no denying the iPhone has a very large base of users at this point, while we do not even know details of what Android development looks like in terms of revenue from the Android equivalent of the app store. The large existing iPhone install base is why so many developers have been drawn to iPhone development to date, and it could be the sheer size of the development community has enough momentum to keep growing indefinitely at this point - just as Palm application development did for many years even as other organizers (and eventually smartphones) challenged them. In the end it was Palm that brought down Palm, and I do not see Apple making the same platform mistakes that crippled Palm and allowed other companies to steal away the market out from under them. Apple has far too much focus for that.

As far as which is easier to learn - at this point both Java and Objective-C have very large libraries that are much more what will consume your learning time than mere language syntax. Happily both Java and Objective-C have very well thought out libraries, so I'm not sure you can go wrong either way.

Java the language will have more reference material than Objective C, but the iPhone SDK has more third party documentation and probably will for some time to come.

Kendall Helmstetter Gelner
This is old I know. But I just bought The HTC Magic. It has some buttons (home, menu, back, search, call, hangup and trackball thing) But it has no keyboard. It's all onscreen touch for that.
Sekhat
+1 on more mature API:s for iPhone. As general rule anything that is supported on both Android and iPhone, will require 10 times as much code on Android. And if Android SDK has a color coded XML-editor, then iPhone SDK will have a full fledged WYSIWYG drag-and-drop editor.
PeyloW
A: 

I'm surprised no body has mentionned the Symbian alternative.

Symbian OS is the market leader of smartphones with over 200million devices shipped worldwide. It provides the most advanced whilst stable mobile OS and provides support for a great many languages C++ (native),C,Python,Ruby,Java etc.

iPhone and gPhone whilst both having their own advantages do not come close to Symbian when you look at the real issues such as market share, stability, binary compatibility etc.

Dynite
Nobody cares. There is no market as the symbian buyers are not spending money.
Stephan Eggermont
You are probably right about that, although once Nokia sort out 'Download!' (or release whatever is to replace it) things should become somewhat more balanced I should think.
Dynite
I agree with Dynite. And you know, it has already started with the Ovi Store. Also, add to the above list of programming languages the Qt toolkit for some easy C++ ports.
Kensai
Until very recently the hardware which Symbian ran on was not nearly comparable with the iPhone or Android phones (no touch screen etc.). That's changing right now with Nokia pushing S60v5 with new (touch enabled) phones -- but it will be at least another year until the number of users of those models gets significant at all.
Henning
+19  A: 

iPhone is better than Android in the following:

  • current number of users

Android is better than iPhone in the following:

  • many phone manufacturers creating phones, possible very large amount of users in the future
  • no approval needed, no "censorship"
  • nice and easy to start development environment and guide to it (arguable of course)
  • easier to communicate with other applications and integrate applications like Google Maps
  • possible to replace default dialer or "home" application with your own
  • fully open-source
  • possible to have application running in background
  • apps can run in parallel
  • easy to embed web content
  • much more flexibility and power in general

Feel free to correct me and suggest your items in comments, would be very happy to hear.

Tilek
now iphone OS 4 supports multitasking
chester89
A: 

Hi,

One of the reasons why I chose Android over iPhone is, Android is open source operating system, where as iPhone is hardware + software + Apple politics. We at androidcompetencycenter.com, have already ported Android to multiple platforms targeting Netbook market and custom apps for such light weight PCs (?) .

From business point of view, right now you cant choose to ignore any of the Symbian, iphone, blackberry, WinMob and Android. And it seems that mobile market will never become single pole world. So better yet to learn multiple things.

sbidwai
+12  A: 

Nobody has mentioned cost to market with iPhone applications. You have to buy yourself a Mac Mini or Macbook to write an iPhone application. To release it on iTunes you have to pay a $99 yearly subscription.

So with the Mac Mini option, it's about $600 to get started. Plus the optional Objective-C book if you want a reliable way of learning, though it's easy to pickup for C/C++/C#/Java developers.

Of course after shifting ~1000 units of your $1 app you've made the money back.

Chris S
Regarding the last sentence: No, because Apple (just like Google btw.) keeps 30% of the application price -- the developer gets the remaining 70%. And you need the developer program subscription. So you have to sell your $1 app 998 times (in the first year) to make up for the initial costs.
Henning
And even that is not correct. You have to sell it in limited number of countries, because each country has its own treshold...if you won't have enough downloads in country, Apple keeps 100%. Also if you have any chargebacks, you have to pay Apple the 30% they keeping. Would be interesting to see what percentage of iPhone developers breaks even in the first year.
Pavel Lahoda
Yes $1 is actually closer to 30c if you include tax and Apple's cut
Chris S
(Updated it from 600 units to 1000 which is just a rough estimate)
Chris S
@Henning: Google only take 30% if you upload your app to their Android Market. They do not charge you for making it available on another market / direct download from website.
seanhodges
+1  A: 

Try writing a "Hello World" app in both and see which one you like more. iPhone certainly has bigger app store, but android makes life for a developer a lot easier (no stupid rejections, background processes, etc.).

A: 

I have developed games on both. Android platform sucks in OpenGLES/graphics and generally iPhone development is very easy due to Interface builder.

Did I mentioned memory issues. Android uses Java and it has memory leaks.. duh ! stupid API design where internally many classes hold references.. iPhone programming was a charm, Performance Tools are awesome..

I feel iPhone development tools make Developer life easy and better in terms of development and in terms of revenue returns.

Quakeboy
+1  A: 

See this article http://www.codeproject.com/KB/mobile/wm_iphone_android_market.aspx it has WinMob as part of comparison also.

kape123
+2  A: 

As someone with Windows Mobile development experience, I am not qualified to compare Android and iPhone from a development or architecture standpoint. As someone who just replaced a Windows Mobile phone with a Nexus One, I think that Android makes for a very interesting platform that has great potential to compete against the iPhone, and possible overtake it in terms of market share in the next 3 to 5 years. There are a lot of ifs and whens, though. Android has compelling advantages, but also quite a few limitations for certain user segments that will hamper its ability for growing market share in the short term. I would not rate the Nexus One a device that is ready for a broad consumer market.

If you look at the Android issues list (I compiled a list of my 10 favorites), with many critical ones unadressed since 2008, you have to ask yourself if they will have to change their process in order to become a more serious force.

All things considered, though, I think that this is the time to bet the horse on Android. It is early enough to get in before it really takes off. Android Market is fun to use, and new devices will come out soon that are equally potent as the Nexus One, creating more buzz among potential converts. I will port my most popular .Net CF app to Android and not to the iPhone in the next couple of months.

cdonner
+1  A: 

I wrote a quick comparison of the newest phones. I hope it will help. http://adrianvintu.com/blogengine/post/Comparison-of-Android-vs-IPhone-vs-Nokia-vs-BlackBerry-vs-Windows-Mobile-7.aspx

Adrian Vintu
A: 

Try this article. The author has compared the two on various Zones. http://java.dzone.com/articles/android-vs-iphone-development

franklins