Friday, December 25, 2009

Should I Develop for iPhones or Android?

Trying to shake off some programming rust, my goal for the winter break is to improve my mobile application programming skills, or, in other words, creating and selling apps for cell phones. Where to start?

First, which platform should I use? Creating apps for the iPhone is my preference, but, as I've ranted about before, Apple requires me to own a Mac (which I don't have). It's obnoxious. Meanwhile, Google's Android doesn't require anything, and that's quite a selling point.

Second, looking a few steps down the line, when I eventually want to sell my app, Apple's App Store requires a $100 registration fee, whereas the Android Market only asks for $25. Both companies take a 30% cut from sales, but Apple won't pay you anything until you break the $250 threshold, whereas Google has a $1-earned minimum. Additionally, employees at Apple have to approve all apps before they get posted in the store, and this has been a nightmare for some developers, since Apple often rejects apps without giving any explanation as to why.

Third, from a programming perspective, iPhone apps require that they be coded in the language of Objective-C. Meanwhile, Android apps can be coded in either Java, PHP, C/C++, or several other languages. Thus, no need to reinvent the wheel - you can just go with what's already your area of expertise. For a more detailed technical comparison, I recommend reading Green's Opinion.

All things considered, I'm going with Android.
  

34 Comments:

At 1:48 PM, Blogger Howard Kam III said...

That would seem more the wiser choice considering that the Android OS is expanding on several carriers, the core operating system is open-source, and Google has less restrictive measures than Apple.

Although I could be biased as I am an impassioned Android fan.

 
At 2:05 PM, Blogger Rob Domanski said...

That was my conclusion as well, Howard, and since I've begun with Android programming, I've found it delightfully simple and hassle-free.

Decision affirmed. (Although final judgment is reserved until we see how the apps perform in the Android Market).

 
At 2:12 PM, Blogger slughapp1 said...

It depends. Do you want to be told what programs you can write, and still might be told no you broke the rules we just made up and didn't tell you. If you secretly want to spend much more money for that special glowing apple on the back of your screen. If so go with apple.

If you want to write what you want. Go with Android.

 
At 3:03 PM, Anonymous Anonymous said...

I started this very day.
And now have an application on Android Market. Very satisfying.

 
At 3:10 PM, Anonymous Ben Gotow said...

I've developed apps for both platforms, and I feel like you may be missing a big selling point of Apple's platform here. The App Store has millions upon millions of paying customers who eagerly download apps. While the Android Marketplace has been expanding as more Android phones become available, those customers haven't shown that they are willing to pay for software. iPhone users are less tech savvy than Android users, but surveys have shown that almost 80% of them _purchase_ apps off the App Store.

You bring up some great points here, but if you're going to pour your heart and soul into an app it's worth considering your audience! Android programming may be "hassle-free", but in my experience, it's far, far less profitable. Google may take a smaller chunk of your profits, but how much revenue is there to begin with?

I write graphics-intensive painting apps for the iPhone, and I should add that it has been very challenging bringing my apps to Android because the hardware specifications of Android phones vary widely. You can write an app once that will work on every iPhone/iPod Touch device ever made - you don't even need to test on the different devices. On the other hand, it's pretty tough to get an intense, resource-consuming app to run on even a handful of Android phones. Be warned :-)

 
At 3:17 PM, Blogger t said...

Both!

 
At 3:21 PM, Blogger Sammy said...

Why not code for the apple platform and port to android. yes, it's objective C, but the foundation is C. Just make sure to use all user created content so apple doesn't bitch.

 
At 3:23 PM, Blogger Robert said...

I don't disagree with anything you've said however I would point out the following.

1) You've got to consider that it's not just the iphone out there it's also the itouch, combined they have a titanic userbase. Which leads me to..

2) Iphone/itouch users are conditioned to actually buy and pay for stuff. I am life long believer in not paying for anything if I can get away with it but I regularly use itunes on my itouch because it's so incredibly convenient. There is some real value in this.

3) Objective-c is actually quite a nice language, if you've programmed in c or c++ before you'll have no problems picking it up. You can port your favourite c libraries fairly easily and the amount of support/tutorials out there for iphone dev is *huge*.

4) I don't know anyone who owns a droid phone, I know 4 people who have an itouch and 3 people with iphones.

My major stumbling block with iphone was having to have a mac to program for it. I solved this by buying a mac mini, getting familiar with mac osx then getting a hacked up version installed on my wintel laptop. Sold mac mini on ebay, problem solved.

One final thing. Apple supports apps because it wants to sell hardware, it probably wants to break even on apps in the same way as it breaks even in itunes (although both are presumably profitable). Google on the otherhand supports apps because it has too because apple does. Why? Google needs a big install base in order to sell us ads on our mobiles. Ultimately google is as much a gatekeeper of android phones as apple is, it just hasn't chosen to exercise that power because no ones trod on it's toes yet.

 
At 3:41 PM, Anonymous Anonymous said...

Let's be honest here guys - Apple is restrictive for a purpose. Just wait until someone write an Android app that has a virus in it and it spreads to many phones . . .

Also - I'm quote tired of your complaints - ease of coding/have to buy a Mac . . .

You IT types love to code crap and send it out half baked - like most win-platform stuff.

 
At 3:50 PM, Blogger Zigurd Mednieks said...

I'm not impartial (http://www.amazon.com/Android-Application-Development-Programming-Google/dp/0596521472) but you did mention that you want to write applications in order to get back into coding. So, the number of iPhone users buying apps won't be the deciding factor.

Although both iPhone and Android have powerful user interface classes that enable you to create cleanly implemented and good looking UIs, the Android APIs are more innovative than the iPhone APIs. The Intent, Activity and Service classes and the underlying support for unique inter-process communication capabilities introduce new ways for applications to share functionality.

Plus, you can access the source code for Android's Linux, the Dalvik VM, and other system components.

If you have used Eclipse before, you will be familiar enough to get started quickly. If you don't have any Eclipse experience, and you have a Mac, you might find Xcode friendlier.

If you want the more interesting experience from a system architecture point of view, Android is the better choice.

 
At 4:24 PM, Blogger TheZorch said...

I'm sorry Ben Gotow and other iPhone supporters but in my opinion investing in the development of an app for the iPhone is too risky a proposition financially. Too many have been burned, badly, by Apple's inconsistent and ever changing (without warning) App Store policies. Remember Apple didn't originally want 3rd Party Apps on the iPhone and later relented after consumers demanded it. So far it has worked out for them but they are jeopardizing their position with their unethical treatment of developers. In the beginning they were the only game in town, but now they have major competitors who have projects that just as good as the iPhone (ie; Android and Palm's WebOS).

At this point I can't see putting money into the development of an app that could get denied because Steve Jobs had a hangnail that day. No, its too risky. If Apple changes their ways and starts "respecting" 3rd Party Developers then maybe but not right now. The iPhone is an unacceptable risk at this point and the more developers who realize this the better. Put your money into Android or the Pre, at least Google and Palm won't screw you over on a whim.

 
At 4:36 PM, Anonymous Anonymous said...

Actually you can write your iPhone apps in Scheme:

http://jlongster.com/blog/2009/06/17/write-apps-iphone-scheme/

As far as platform, go for iPhone as it has a much larger market share in terms of users. You can do Android later.

 
At 5:31 PM, Blogger thatguy said...

IMO Android. In the long run, it will have more market share with the unfortunate side effect of forked/fragmented versions. My opion is biased though, been on an ADP since they became available.

 
At 5:36 PM, Blogger Tim Bowen said...

It is true that there is an element of risk in investing time in iPhone development, but like most other things in life taking risks yields greater rewards. You can also mitigate those risks by reading the Human Interface Guidelines and other documentation and adhering to Apple's policy the best you can. This is not a sure bet by any means as different app reviewers interpret policy differently, but the worst you are likely to suffer in terms of setbacks is a two week delay.

Basically it comes down to this - if you're in it for the money the iPhone is currently the best choice. If revenue is not so important to you go for the Android because it's so much more developer friendly.

 
At 5:36 PM, Blogger TS said...

Being mad that you have to buy a Macintosh to develop for the iPhone is like being mad you have to order food from a restaurant to eat at it's tables.

 
At 6:40 PM, Blogger shoebappa said...

@TS, No, it's clearly not. If Apple was an Italian Restaurant, it'd be like saying you have to buy their stoves, their pasta, their sauce, herbs, etc... in order to open your own Italian Restaurant, and then give them half of your revenue.

 
At 6:50 PM, Blogger CausticMango said...

So, what you need to figure out is whether this is a hobby project or a commercial endeavor.

If it's a hobby, develop for what you have already or what excites you and don't worry about all the silliness you quote in the article since it's largely irrelevant anyway. Having developed in Java for years before leaving it behind, I can say that in my experience and opinion, ObjC > Java by far.

If it's a commercial endeavor, Android is a mistake. The iPhone market is larger more developed, more stable and with more predictable growth.

Android is a gamble unless you have a verticle market to exploit.

Commercially, Android is to iPhone as Linux is to Windows (this coming from a Mac & Ubuntu user). Are you trying to "stick it to" Apple (like some want to Microsoft)? Give it up, that's a fool erand.

Android is currently the only compelling alternative to the iPhone platform, but is still starting from both a technical and practical disadvantage. I'm glad it's there to give some real competition to Apple, but don't be silly and think that's your fight to take up. Let Apple & Google battle that out and don't waste your time & energy fighting one side or the other.

 
At 7:13 PM, Blogger Lusid said...

I don't develop for systems that make me jump through hoops (especially financial ones). An operating system is essentially just another piece of software, and the applications that run on it are essentially plugins... every other company in the world is ECSTATIC when they are able to get developers interested in developing plugins for their software... but not Apple. Apple continues to throw more and more money at marketing gimmicks, and care less and less about the people that truly want to make their system worthwhile through third party applications. Apple will lose in the end. It is only a matter of time. When there are no more developers/apps, the iPhone will start to look a whole lot less attractive.

Besides, Apple is a hardware company. That's why their hardware is so expensive and MacOS X is like $20. They still make about $500+ on each copy of MacOS X that they sell with a new Mac because their hardware is about twice as expensive as it would be for building a normal PC (you can even build your own Hackintosh for less than half the price of an equally capable Mac), but no one sees that because they somehow think Mac hardware is better (it isn't... you are paying twice as much for a brand name, just like those designer jeans with holes in them).

More and more developers are realizing that the iPhone is not the only player any more, and taking a stand by moving on to better development opportunities... and when they leave, so will the Apple customers.

But I'm sure all the Apple groupies will still be running around, waving flags of Steve Jobs in the air and singing Kumbaya to their marketing God, blinded by their own ignorance.

 
At 7:15 PM, Anonymous Anonymous said...

I'll have you know GOOGLE is MORE than happy to screw you over. Take adwords, they've stolen $10,000 in legitimate clicks...then after their monopoly made them the only game in town and forced me to use those pricks again, stole yet another couple thousand. No explanation, no pleading your case, nothing. STAY AWAY from a company that stands behind a policy that "protects" users by not explaining what an innocent publisher allegedly did wrong. You'll appreciate this when you are depending on the cashflow to get by and can reasonably expect said cash to be transferred to you, the rightful owner. Microsoft is no longer the monopoly, Google is the monopoly you should fear.

 
At 7:33 PM, Blogger Lusid said...

Yeah, I'm not sure how you consider Google a monopoly. They don't force people to use them, people CHOOSE to use them... obviously, if a company burns you once, you don't want to go with them again. That's still YOUR experience and not the typical experience everyone else will have. In addition, Google isn't in the cell phone business... they just make the operating system (which is 100% open source and openly available, I might add).

Unfortunately for Apple, they intentionally lock down their OSes to only work on their own hardware, and screw the average consumer that doesn't know they are paying twice as much money for the same Intel architecture that PCs have. I had no problem with Apple until they switched from PowerPC... now they show their true intentions by charging twice as much for specially branded Intel hardware... it is laughable.

If that isn't vendor lock-in, I don't know what is... thankfully, the business world tends to still think intelligently or we'd all be bowing down to our new Apple overlords.

Google competition is always one click away.

 
At 9:17 PM, Anonymous Anonymous said...

I have written two iPhone apps and have ported them (after much effort) to Android. iPhone apps have outsold Android counterparts about 900 to 1 in the same time period. Yes, that really is 900 to 1.

Whoever is recommending you to spend your time on Android as your primary platform is either:

a) working for Google, or
b) doesn't care about making your company profitable

Do your own research and don't trust some guy with a blog (or this comment from myself). Just research it on your own.

Best,
Dan Grossman

 
At 9:30 PM, Blogger GME said...

No one forced me to buy my Macs. I choose so because it's a better and more comfortable tool that fits my needs.

No one forces me to use Google. I do so because it's a better and more comfortable tool that fits my needs.

No one forced me to buy an iPhone back in 1997. I did so because — at the time — it was the best phone on the market and fit my needs.

No one is forcing me to buy the new Google Nexus One phone when it's released next month. I will do so because I can no longer — in good conscience — continue to support a Company that is holding on with every ounce of life left in its body to an outdated and outmoded technology and business model. I'm talking about AT&T.

That, and I'm pissed that Apple STILL refuses to let Google Voice onto the app.

Still love my Macs, they're damn fine pieces of hardware, and I'll take my Mercedes of computers over the equivalent Kias & Hyndais (Dell) any day.

I still like the phone (or rather the apps that run on it) and I admit, it's going to be tough to give up a few of the one's that I've grown more dependent on.

But life. goes. on.

As a consumer, it's nice to see more developers coming forward to Android. While the market share may not be there today; mark my word. It will get there soon. I'm not alone in my feelings about Apple & AT&T. A BUNCH of us are waiting to jump ship first chance we get.

 
At 9:34 PM, Blogger GME said...

Well this is embarrasing. I meant to say **2007** and not 1997. Sheesh. I guess I was in some kind of time warp when I wrote that last comment, or maybe it's because I harken to go back to T-Mobile where I was since like 1997 before I ditched them for AT&T to get the iPhone. I dunno.

 
At 1:41 AM, Anonymous Anonymous said...

you can write an android app in php? what?

 
At 5:35 AM, Anonymous Anonymous said...

Why don't you look at WebOS and Blackberry. I know with RIM they have quite a few new APIs and they have a few different ways to make money on an app (even with free apps). Don't limit yourself.

 
At 6:55 AM, Anonymous Anonymous said...

the way you want to think about it is, "i need to get started developing for mobile devices."

you're too late to the iphone or android party, but you won't be for the next thing. So pick whichever one you want, or better, pick both.

also, be prepared to spend some money to make some money. buying a mac is the least of your problems if thats what it takes.

 
At 7:17 AM, Anonymous Anonymous said...

Android is the better choice long term.

Remember, most people here who claim the iPhone platform sold 900:1 applications also don't take into the account there are many more apps on the iPhone store. Most of them fart apps. And seriously, the people who claim iPhone users are more likely to buy apps are joking themselves. I don't know anyone with an iPhone who has paid for an app. Its likely though that thanks to Google's advertising platforms though, that integrating ads in the future will be quite easy on Android.

Furthermore, premium applications on Android are potentially more profitable on Android, especially if you win an Android Developer Contest.

If you are throwing serious money into it, do you want to risk being rejected from Apple's store? Is it worth it? You can develop anything you want for android, but Apple will kick you out on a whim.

There is also a good chance that Android application compatibility might be integrated into normal operating systems too.

Finally, the iPhones aren't actually that good. Yes Apple makes a lot of noise and how they beat everyone else, but I know more people these days who are interested in the new Android phones.

Oh, and anyone here who claims that the App store protects the iPhones from viruses clearly has no clue. Don't take them seriously because they clearly have no idea how security works..

 
At 11:32 AM, Blogger Casper Bang said...

Android, for it has the greatest potential - especially in the long run. Analysts predict Android will take over the iPhone as marked leader. That makes the current "profitability" point a straw-man argument in my book.

 
At 12:25 PM, Anonymous Alex said...

Just a couple "fixes". :)
You cannot write for Android in any other language than Java, as of today.
You can write libraries in C/C++, but not full apps. You will need to access your C/C++ libs through Java.
The good part is that Dalvik keeps a precompiled copy of your Java software in a cache, so it will not recompile it at every start (I mean: compile bytecode to native code, not compile Java source to bytecode. This last happens on your PC)

Second: you cannot write viruses for Android, because every app runs as the userid of the developer. So you (developer) can only ruin data in YOUR applications).
You can write worms, botnet drones, network hoggers, etc, but not viruses.
The only exception is the data in the SD card, because it is FAT32 formatted, and has no userid knowledge. But it is also not executable.

Back to discussion: it may be true that more iPhone owners are willing to pay for your app, but Android is growing fast. It works on phones and Tablets (Archos), and they are porting it to MIDs and netbooks.
Maybe you could give away the app for free and use Ads in it to raise money.

 
At 4:11 PM, Blogger Ted said...

If you're looking to make money, write for the iPhone. Search for a short while and you'll find news stories of app developers creating Android versions and getting very, very little in sales compared to the iPhone versions. For whatever reason, no one is buying apps on the Android.

If you're looking to just write apps for yourself (and don't care about buying other apps), write for Android.

If you're looking to write games, write for the iPhone. You can write directly to Open GL using Objective-C.

If you're looking to do anything Apple restricts, write for Android.

 
At 3:17 AM, Blogger رائد said...

I summarized this article and translated it into Arabic here

 
At 12:11 PM, Blogger Rob Domanski said...

Another 423 comments on this post can be found at:

http://www.reddit.com/r/programming/comments/aiq3y/should_i_develop_for_iphones_or_android/

 
At 1:48 PM, Anonymous iphone developer said...

In my opinion, developers should always go where the money is and right now its with the iPhone OS. They simply have a much more efficient app store and have really done a great job at making their developers rich.

 
At 4:33 AM, Anonymous Android app developer said...

Good information and i really enjoyed to read this articles, its a good entertainment. i think most of the peoples are likes your informative post , because its having enjoyment. so thanks for your great informative post.

 

Post a Comment

<< Home