Want to improve this ques开发者_C百科tion? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this questionI 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
First, get yourself confident with android as a user. There are some fundamental differences and some different visual conventions. Start with Eclipse (as documented on the android developers website), it will get you started the easiest (there's enough changes to deal with already) Read up on Activities, they work a bit like ViewControllers, but not quite. As for GUI design: you have to take a more robust approach. Tweaking to the last pixel is not practical. I find it more like designing a web page. There is a visual interface builder in eclipse but it is buggy, you'll have dig into the layout XML files every now and then.
I had been coding for Android for six month and now I have switched to iOS. You can start Android programming with this official tutorial.
You need basic OOP understanding. Android design is more complex compared to iOS. Android support multiple screen resolutions. You have to deal with basic HTML and XML for UI design to enable horizontal and vertical layouts in Android. You have to understand Linearlayout and Relaivelayout all properly.
Here is Multiscreen Support Guide.
I've just started learning android, I was doing iPhone before hand.
Each has their pros and cons, you shouldn't have any trouble working with Android.
Java language is much nicer to work with than objective c. iPhone has a nicer GUI designer.
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?
Go read the main tutorials. Its not hard at all when planning from the start. It's sorta like designing for a webpage.
Also I am using a mac, what IDE is the best and can I use Xcode to develop?
Eclipse would be the official supported one by Google. IntelliJ is also listed in the Google tutorial so it's another option however I haven't tried it. Anything else you would have to research if it has any good enough support.
Edit: I would now go with Android Studio for Android development, made by Google and based on IntelliJ.
精彩评论