Joe Hewitt, the man behind Facebook Mobile for both the iPhone and Android, hates Android. And the iPhone. And judging by his twitter feed, he also hates people, kittens, unicorns, and the Salvation Army. Just kidding - but as Chris says, he's definitely a "negative nancy." (Yea, we're going for the high-brow stuff today).


Ouch. This is the same guy who left Facebook's iPhone dev team because of Apple's tyranny. I'm not a programmer, but I can't imagine any system is perfect to code for, and frankly I haven't heard any other devs complain about coding for Android.


That's an unedited snapshot of his twitter feed. What a charmer. Still, if things are that bad, maybe he could switch to the Blackberry or Symbian team, and code for a sinking ship.

Just kidding - after all, who am I to judge, especially somebody who can do something that I can't (I mean it). What do you think, devs? Is Android a nightmare to code for? Drop us a line in the comments below.

[Source: DialToSave, Joe Hewitt's Twitter]

Aaron Gingrich
Aaron is a geek who has always had a passion for technology. When not working or writing, he can be found spending time with his family, playing a game, or watching a movie.

  • http://www.onelostpoet.wordpress.com Andrew Rowley

    This guy should change careers. Stop doing code. Be a life coach! Suicide rate will sky rocket. Hope he has some preparation H for all the stings.

  • Rasputin

    >Salvation Army

    They actually refuse to hire gay people. And they get away with it because they are owned by a church. So, fuck them.

    • http://twitter.com/tokyomonster Chris Dehghanpoor

      Haha, yeah, I actually agree with you there..

    • Melissa

      That's actually not true. I know very openly gay people who work there. There may be certain positions, if it's a leadership role within the church, that they don't hire homosexuals, as they are a Christian church, but for the vast majority of employees, this is simply not true.

  • http://blog.iangclifton.com Ian G. Clifton

    His tweets about the Nexus One having banding are accurate, though that's obviously not an issue with all Android devices. The problem with baking an AsyncTask into the http request object is that you generate a new thread for every request. It makes more sense to reuse a pool.

    • http://androidpolice.com brian

      Isn't the banding caused by Gallery3D?

  • http://twitter.com/ryansavaiano Ryan

    This guy just seems like a jackass. Quit coding for Facebook then, because it's obvious he doesn't love it...this is probably why the Facebook App for Android sucks so much.

    Go work with Blackberry if you hate Android and iPhone so much.

  • Gogol

    He just incapable ... that's it.

    Stop whining ...

  • Philip

    Personally, I think it's refreshing to hear complaints from someone who knows what they're talking about. And since I'm half French, I hate all the fake candy-floss happiness that some people try to project on others. Bitch, laugh and cry - as long as you're honest.

  • http://techbh.com.br Claudio Bastos

    He wrote Firebug, and probably his level of quality are too high...

    Anyone want's things to be simpler.

    As we grow and know a few things, we normally complain about things that should, and could, be better.

    Is he wrong to think that way?

    • Aaron Gingrich

      Nothing wrong with wanting things to be better, but there's a difference between that and just complaining about everything.

      He seems to have a negative outlook, is all. Then again, that's based solely on his twitter feed.

    • Tim Collins

      If his application didn't suck I could take the criticism a little bit better.

      • Phil

        Exactly. It seems more like his Java skill suck and it shows in the Facebook app. If he developed Firebug like someone above mentioned and works for Facebook I imagine he is also a PHP guy. Maybe he's a dynamic language guy. I sure the hell don't see anything better about iOS's API and dev tools. But I guess when you're the type that will code barebones in gedit or even nano if you have to you don't get all excited about tooling.

  • Philip

    Yes, yes, yes - let it all out, guys! See how great it feels getting all that anger out... ;-)

  • http://www.gaveuphope.com angstwad

    Android OS is as good looking as you want to make it. Do what you want: make a ROM, change your launcher...theme it. Load this and that. No walled garden market.

    Perhaps the tools aren't quite as refined as Xcode and the iOS SDK. Of course, this market is open everywhere...and makes money hand over fist.

    With the good comes the bad.

    Still wish he gave the Android Facebook app a little more work earlier on. Perhaps Facebook wouldn't have 10 iPhone users for every one Android user. I mean, it's not as if they're not selling (or activating?) 200,000 Android phones a day.

  • Just-a-dev

    Well, sorry but not putting my name here, because of all the hatred this post will provoke.

    He is completely right though. Pretty sure you are not going to take this at face value, but that's your problem. I have been a developer (for work, not play) for both apps and sites for many years, and have used many different languages, development environments, and frameworks on many different platforms - ranging from server clusters to desktop to various different mobile platforms, and to be perfectly honest, yes, Android truly is a nightmare to code for.

    First there's Java. While Java has its uses, most of its power lies in the massive library support that make it available to do many things easily on many platforms. This is not so apparent on Android, as you're pretty much using the standard set only. If you look purely at the Java language, then I can understand how it makes him cry. I too sometimes wake up sweaty and screaming in the middle of the night because of it.

    The example he names is good too. He's completely right. AsyncTask (and other helper classes) aren't difficult to use at all, but come on, HTTP classes that don't support async out of the box ? What, did 1990 call and want their progress back ? This is functionality so commonly needed and so basic that there really isn't any excuse for it not being there. Depending on what you want to do, you indeed have some hoops to jump through in this case. And what if I want to do 20 transfers semi-simultaneously ? Where's my automatic download thread pooling ?

    Now don't get me wrong, it isn't particularly hard to make either yourself. The point is, and Joe hits the spot there, you shouldn't have to. What's the point of using Java if you still have to do all this stuff yourself ?

    But to get to the more Android specific issues. The Android framework is indeed horrendous, and often inconsistent. You constantly need to override standard class behavior because it does something silly you don't want, or does it in a bad way, etc. Often the calls you need to override are private too, or existing inherited methods simply don't work / are not implemented for some types of classes (these are always the calls you need, by the way). I could go on and on.

    The UI system, activities, tasks, etc, they tried to reinvent the existing systems. While that is a noble effort because for example the desktop way of windowing doesn't really work for mobile, this "new" system doesn't actually work any better. It is often very frustrating to use, and it needs a lot of configuration and hair pulling before it will work exactly the way you want it to. This only happens when apps/games get complex though. Your standard 3 screen app won't have this happen. After a while you get enough experience in it so it isn't a problem anymore though, but that doesn't mean it actually works well or is in any way intuitive or easy to use.

    And then there's Eclipse. Do I even need to write anything about this? Excruciatingly slow, would be the first comment to come to mind. There isn't exactly so much completely wrong with Eclipse, but if you're used to Visual Studio, it does rather feel like being thrown back into the stoneage.

    All in all, yes, I can honestly say that developing for Android is more annoying (I wouldn't call it exactly frustrating) than any other platform I've ever had to develop for (taking into context what year it is when you develop for it).

    But hey, a job is a job, and from a user perspective, I wouldn't currently trade it for any other mobile platform (though development wise, WP7 is so far beyond Android...). I'm not saying Android is bad or "sucks", but it could have been so much better.

  • http://andyhall.org Griff

    I single-handedly wrote a basic app for the company i work for. There was honestly nothing advanced in there at all as i only just started learning Java maybe a month before i started this. Needless to say it's done now and on the market to download, and it works!

    But i must admit, even with my noobishness, Android felt, at some times, rather unnecessarily difficult to do. While i'm not going to say that iOS is better as i love Android as a user, but as a dev (if you can call me that) i can imagine that iOS would be the easier task to take.

    For example, i had a look in the iOS API documents and saw something that the official Twitter client uses, release to update. In iOS, this really really cool and useful thing is a built in API ready to go, in Android you have to code that behaviour yourself.

    I think if Google and the Android team put in some, what i would call, 'naturally useful' stuff to callback to, developers wouldn't be tweeting this sort of doom and gloom.