I am going to start developing for Android. I was just wondering what’s the major differences that I should be aware of. Particularly, how to deal with so many devices and so many resolutions to support? Is this easy to do with the sdk or a pain?
Also I am using a mac, what IDE is the best and can I use Xcode to develop?
Thanks.
I was once in your shoes. I’d advise using Eclipse and the plugins ADT, since it’s the best tools for the job. Using XCode will only bring you pain. The main difference, of cours,e is you’ll be using Java instead of Objective-C as the core language, even though on both platforms you can use C (NDK with Android, native C with iPhone) shelled in a wrapper of Java/Objective-C.
The other main difference is on iPhone you design interface and database with visual tools (Interface Builder / Core Data) as a preferred tool (even though you can always code you interface and write your SQL) and on Android you’d better write the User Interface as XML and you will write your SQL code anyway. I would not advise the visual UI builder on Android, at least I can’t use it :p
Apart from that, Android revolves mainly around Intents and iPhone uses interactions between NSController and NSNotificationCenter to achieve the same purpose. Android accesses OpenGL preferentially with Java calls (though you can wrap C with the NDK) and iPhone will use direct OpenGL ES C calls.
Be aware Java is not bundled with OS X Lion anymore, so you will have a little bit of setup to do, but since you need the SDK anyway, it is not big deal. Finally, there is the matter of screen sizes, but you’ll probably target one type of device in particular (tablet, phone, and then decide which sizes for that form factor you’ll work for). If you do form apps, it’s not much of a problem, if you do games, you’ll be well served deciding on one particular deployment target and expanding your options once your game sells.
Good luck, fellow AndroiPhoner :p