Rapture In Venice, LLC

:: Mobile Apps for iPhone, iPad, AppleTV and Watch

Comparing the iPhone and Android Development Environments

I’ve spent the last few weeks working on an Android project at work and, I have to say, I am having a familiar feeling of shock at how bad the Android development environment is.

Here are some comparisons.

Objective-C vs. Android

First and foremost, using Java is much better than Objective-C. While I consider Java to be a verbose language, it looks like Python next to the antiquated C offshoot. Private methods, inner classes, anonymous classes, generics, better function syntax, and a much wider plethora of 3rd-party code are just a small smattering of the advantages of Java.

It’s no contest.

XCode vs. Eclipse

I used to love Eclipse. I could do my PHP, Ruby, Java, and Flex coding in one place. I could master one IDE and get benefits for whatever work I do. It’s been over a year since I had to use Eclipse in a daily basis (for Flex 3 programming), and coming back has been…

…a horrible experience…

I don’t know how it happened. Eclipse is bloated, slow, and the simple act of changing editor contexts (XML vs. Java vs. Android Manifest, etc.) is mind-numbing. It takes seconds. And before you offer, I’ve upped Eclipse’s memory and turned off auto-compile. Maybe my laptop is too old to handle it (about 3 years old), but it’s making for a *miserable* experience doing Android work.

Contrast this with XCode, XCode is a delight to work with. It’s sleek, lightning-fast, and I never see any slowdown when typing in code. I took XCode for granted for sure.

XCode in a landslide.

iPhone Simulator vs. Android Emulator

I’ve done both Java ME and BlackBerry mobile work, and I always liked the java ME emulator. It did what it had to do. So, when I met the iPhone Simulator, I was disappointed to see how little you can do with it. No GPS? No accelerometer? How hard could it be to add those emulations?

However, the Simulator does something better than I’ve ever seen. For one thing, it’s super accurate. I hardly ever see a problem in a device that I don’t see in simulation. It runs fast, I can shut it down whenever, I can reset it easily, I can change languages, and so on.

Android’s Emulator, on the other hand, is the worst emulator I’ve ever seen. It’s worse than BlackBerry’s — which is saying something. In both cases, they take a couple minutes to load up. With Android’s, you can keep it running and future runs start quicker, so that’s better. However, it feels flaky to me. Sometimes I run an app and it just doesn’t run anymore on the emulator and I have to restart the thing. The screen locking feature is awful…I don’t see why I have to unlock the screen on an emulator. At least give me an option to turn that off.

(UPDATE: It appears there is an option to turn that off, thanks to reader dootzky)

It’s also horribly slow. I once times an activity as taking 8 seconds to display. This may be related to my Eclipse issues as well, but it must be noted because I have *none* of these problems with iPhone development. Every Android developer I run into says they don’t even use the emulator anymore, opting to run the app on the device directly. It’s that bad. But, for god knows what reason, when you run on the device you get this obnoxious dialog asking what device to use.

What?

iPhone Documentation vs. Android Documentation

Both documentation systems are about equal in power. Each has their strong suite. I tend to favor XCode’s search, but Android has some better explanations for some things and shows inherited fields and such. It’s really a wash, though.

Call it a draw.

Overall

The Android platform does a lot of things you simply can’t do with iPhone. You have more control and the power of Java allows you to write stricter code that accomplishes these tasks with better software methodologies.

However, working with each one day in and day out, I’ll take the iPhone environment over Android — hands down. The sheer speed of XCode and your development cycle runs rings around Android’s more frustrating environment. That can still change in the future as tools are more maleable than platforms, but that’s the reality right now. And while there are options to use the NetBeans or IntelliJ environments instead, that’s only possible when not working with a team of people using the standard Eclipse environment already.

Would love to hear of your experiences.

  • Print
  • Facebook
  • Twitter

John Blanco

John Blanco is a freelance iOS developer in Denver, CO. He's been developing mobile apps for 12 years, starting during the medieval days of Java ME, making him the ultimate hipster mobile engineer. Follow him on Twitter!

More Posts

Follow Me:
Twitter

, , , ,

Comments are currently closed.

15 thoughts on “Comparing the iPhone and Android Development Environments
  • […] RaptureInVenice Comparing iPhone and Android’s Development Environments — Who Won? http://raptureinvenice.com/?p=195 [2010-11-19 03:42:42] nokia__news Nokia News Apple co-founder Wozniak bashes Nokia, predicts […]

  • […] This post was mentioned on Twitter by Andrey, Andrey and iPhone Dev News, Rapture In Venice. Rapture In Venice said: Comparing iPhone and Android's Development Environments — Who Won? http://raptureinvenice.com/?p=195 […]

  • Kovi says:

    You should really try NetBeans.

    • Thanks. I’d take a look, but we’re a team of three and it would be extremely hard to tell two people not having as many issues with Eclipse to switch when that’s the standard platform.

  • Chris says:

    Intellij IDEA offers a very good Android development environment. IDEA is arguably the best Java IDE on the market and their Android plugin is great.

    I’d recommend trying the new v10 public preview, available here:

    http://www.jetbrains.com/idea/nextversion/index.html

  • dootzky says:

    this is a funny article. :)
    looks fair, but it’s biased.

    I for one am having no difficulties on my 2-year-old desktop computer, using Eclipse.
    Sure, Eclipse is a little slow and bloated, but it’s fast enough to work with.
    Android emulator is working perfectly, it’ loads in about 15 seconds, and after that it starts every app every time I compile it in less then 2-3 secs.

    And you can shut down screen locking, of course, you just need to be a non-moron (sorry for that, but if you can’t go to SETTINGS of the phone, then you just suck at tech).

    The phnoe choice dialog when compiling is for when you have multiple devices, like couple of emulators, and your real phone plugged in. I prefer to test on multiple screen sizes and devices etc.

    Overall – it seems to me that your “decision” is based only on the fact that your enviroment is slow. Fuck that man! I wouldn’t go to Objective C now just because it has a “nice IDE”. Are you serious?!?! o.O

    Anyway, nice post, fun read, good luck in your future developments! ;D

    • Not too fair to call someone a moron because they don’t know about something considering the universe of knowledge that development presents. That doesn’t make you very endearing.

      Thanks for the tip, I wasn’t aware screen locking was something you could disable. I’ll look for it. One main problem I have is I’m a 1.5 year vet of iphone dev and have an iPhone myself, but Android is new and I have no phone, so no relevant experience.

      I prefer iPhone development tho that could simply be because I’m more familiar with it. I can speak Objective-C in my sleep, though I still regonize Java as a much better and modern language. However, the other big reason to favor iPhone dev is it’s simply more fun and easier to do. I still have nightmares of supporting multiple phones with Java ME (something no one can truly do) and Android, while a much better platform without the SDK fragmentation, still presents that same problem and it gets worse every week.

    • Honest Observer says:

      “Android emulator is working perfectly, it’ loads in about 15 seconds, and after that it starts every app every time I compile it in less then 2-3 secs.”

      That sounds hilariously slow when compared to the speed of the iPhone simulator.

  • Lautaro says:

    I work with both platforms. I really prefer Eclipse over XCode. XCode is a 2.7Gb notepad with syntax coloring. No perspectives, lack of good refactoring options, the debugger is a joke…. just to mention some issues. Worst of all, we have iPhone 3.0 and 4.0 projects. You can’t do this with a single XCode. You need an older version to compile 3.0 and the latest one to compile 4.0. And they (up to my knowledge) doesn’t coexists. So we need sometimes uninstalling7reinstalling XCode (it just runs on Mac, which are expensive – another bad thing)

    • Well, I disagree with XCode being a glorified Notepad. Perspectives aren’t supported, but I don’t find that a big deal at all. The debugger works OK. It’s much faster than Eclipse and I like that you can sort/group items logically, whereas in Eclipse they have to be part of the folder structure. The global search is also much better.

      You can install multiple XCode’s side by side. I hate that they take the old SDK’s out, but when you install your XCode you can change the install directory. Just be sure to NOT install the system tools as they are shared. You should have to uninstall/reinstall.

    • Burcu Dogan says:

      My experience with Eclipse on Mac with ADT plugin installed is truly disappointing. I had to switch to Ubuntu for Android development at work. Emulator truly needs improvement: it’s slow and inaccurate and costs me at least 1GB of memory — that makes everything worse on Eclipse. There’s absolutely no other option than working with a real phone which is what I rarely do while I’m doing iPhone development.

      • I agree, Burcu. Even those who have had luck with the environment acknowledge that the emulator takes a long time to load and is pretty lousy. I’m not sure what magic dootzky is using.

  • Neil Weber says:

    Yes, Eclipse is bloated. Definitely use IDEA; it’s much better.

  • […] Comparing the iPhone and Android Development Environments (raptureinvenice.com) […]

  • […] Comparing the iPhone and Android Development Environments (raptureinvenice.com) […]