views:

322

answers:

8
+2  Q: 

Android vs iPhone

I know iPhone development fairly well. From personal experience, how hard would it be for me to get into Android. I am concerned less about code than I am about distribution of my software, given the fragmentation of the Android OS on compatible devices.

EDIT:

Thanks for all the great input so far. I just have one more point to clarify. How does app distribution work in terms of carriers, app stores and how do I get my money from sales? Does Google or the Carrier handle it? Do I need to process credit cards myself?

EDIT2:

One last question. Does the Android App store tell the developer how many times the app was downloaded?

A: 

Go for 1.5 as a baseline and you won't go far wrong, in terms of targetted platforms. Pretty sure android 1.6+ is backwards compatible, would be amazed if not. 1.5 still has plenty of bells and whistles (gps, accel, compass, etc etc)

From what I can tell of the dev process, its basically java syntax and API bashing, so as long as you don't mind eclipse as an environment to learn in, shouldn't be so hard :)

danp
Where can I get a list of these version by version features?
Moshe
A: 

Initially, Android only allowed Java programs. Now, you can use the Android NDK to use C and C++. Here's a link to the Android NDK

zooropa
So can I use Objective-C too, if I code on my iMac?
Moshe
@Moshe http://stackoverflow.com/questions/2394236/objective-c-and-android and
ircmaxell
+4  A: 

There is a common misconception that the Android platform is heavily fragmented, for the most part this isn't a concern that most people consider it to be. Take a look at this post about the fragmentation being a red herring.

Beyond that, I generally target the 1.6 sdk to get a wide spectrum of useful features. The code and api itself is pretty simple and discoverable and there is fair documentation from google and also available here. You really shouldn't have any problems (in terms of "fragmentation") creating and distributing an application and having it work.

Quintin Robinson
Interesting article. A bit long for me, but I get the point. Thanks!
Moshe
+1  A: 

Build off of the 1.6 SDK. It added a whole bunch of stuff you will probably want such as Gestures, Graphics scaling, screen resolution support, hardware feature specification (so that you can say that you only want to be used on a device that has an accelerometer for example), and more.

If you want multi-touch, you need to use the 2.0 or newer SDK (only 2.1 is available for download actually)...

All versions are backwards compatible for the most part. So if you wrote an application with the 1.6 SDK, you could target 2.0 as well (via the manifest <targetSdkVersion> tag).

Fragmentation is an issue. However, since 1.6, you have the ability to restrict what "requirements" your application must have (Hardware, software, screen size, version). The market will automatically filter the app from those devices that don't meet those requirements.

ircmaxell
Awesome! thanks for the info.
Moshe
+2  A: 

I found the development for Android very easy. Nice combination of Java and XML. Beside them great documentation and very good development tools.

Radek Suski
This answer addresses the question directly. Would you mind addressing my edit and adding some links to the docs and dev tools?
Moshe
See here: http://developer.android.com/sdk/index.htmlhttp://developer.android.com/reference/packages.htmlNice thing is that if you connect your phone via USB the emulation of your app is going to be started directly on the phone instead of emulator.For me it is also great that IDE works very good on Linux :)
Radek Suski
+1  A: 

If you want something a little more high-level than Eclipse and the ADK (which isn't particularly taxing anyway) you could consider frameworks like Appcelerator, PhoneGap and Rhomobile.

Alan B
Are they free? I spent too much on iPhone dev equipment.
Moshe
All three are open source.
Alan B
A: 

Also, if you need to program to the Bluetooth API for your app you'll need to target 2.0 or greater

mmaitlen
Wow. It took that long to get a Bluetooth API?
Moshe
+2  A: 

To answer you question about application sales it is all handled throughout google checkout(google's credit card processing service). So after you set up your android market account, there is a link at near the bottom that says "Want to sell applications in the Android Market?". That link will take you through the step of setting up a google checkout account. After that, when you sell an application the money will go to your google checkout account which will transfer to your bank.

Jason
Figures. Can I have money form Google Checkout go direct to my bank account? Does that cost anything?
Moshe
It will atomically transfer into your bank account. The cost breaks down per transaction as followsMonthly sales under $3,000 2.9% + $0.30$3,000 - $9,999.99 2.5% + $0.30$10,000 - $99,999.99 2.2% + $0.30$100,000 or more 1.9% + $0.30
Jason