Soon, I'll be starting Android development, as I know a bit of Java. I'll also be getting an Android phone. My two options are the Nexus S and the Atrix 4G. I've heard the Nexus series is ideal for developers - can someone tell me why? Why is getting the Atrix bad as a developer?
The Nexus S could be considered "better" for two main reasons:
- It features only standard Android software, nothing custom from the manufacturer or carrier, and
- It gets updated faster than other handsets (because the updates come directly from Google, whereas other phones need to wait for the manufacturer to release the update and sometimes the carriers delay updates even further).
On the other hand, the Atrix has a faster processor (dual core, the Nexus S is only single core and basically just a slightly modified Galaxy S), better display and (IMO) looks better, too :-)
I'd go for a slower handset - pref the current most popular rather than the best to develop on. The majority of your users aren't going to be using the latest and greatest so if you are developing anything which pushes your dev handset to the limit, and you have a great handset, chances are that a lot of your users won't be able to use your application.
I've encountered handset specific issues with Android programs I've written in the past, so it's probably a good idea to make sure this doesn't happen to the handset most likely to be used by the people who want to download your app.
To be honest, I'd get multiple handsets (2nd hand off ebay - don't bother buying new) - work out what range of handsets (in terms of performance and screen size) you want to support and try and get a handset near the bottom of that range, one near the middle and one near the top - if you do this and get different screen sizes that should cover your bases. I prefer this method to relying too much on the emulator as it'll let you play with the app on the different handset speeds and screen sizes and it'll give you much better hands on experience than the emulator can.