Linked by Thom Holwerda on Mon 24th Mar 2014 10:57 UTC
PDAs, Cellphones, Wireless

Fantastic article about design on Android by Cennydd Bowles, design lead at Twitter.

Android design is indeed more difficult than iOS design in that it offers fewer constraints. But any skilled designer can handle that with a bit of effort. My uncharitable interpretation for this class of responses is simple laziness, and if Android forces designers to drop a pixel-perfect mentality and adopt approaches that suit a diverse world, then that’s no bad thing.

The evidence is out there for all to see. Android developers - developers who are Android-focused instead of iOS-focused - come up with absolutely beautiful Android applications all the time. I have no doubt that it's harder to do so on Android than it is on iOS, but the cold and harsh truth is that there are also a hell of a lot more Android users and devices out there. If your iOS application requires two full-time developers, is it really fair to expect your Android application to require the same, even though the user base is four to five times as large?

A translation consisting of 3000 words takes me about a work day. A translation of 12000 words takes me four work days. None of my clients expects me to translate 12000 words in the same amount of time as 3000 words without a serious degradation in quality.

Bowles also dives into the argument that Android users are less willing to pay than iOS users.

Socially, excluding Android users seems almost prejudicial. Unlike Android is difficult, this isn't about about mere convenience; it's a value judgment on who is worth designing for. Put uncharitably, the root issue is "Android users are poor".

If you are an iOS developer, and you port your Android application over as a side-project, is it really so surprising that Android users aren't buying your application? Could it simply be that your potentially poor iOS-to-Android port simply isn't even worth paying for? If you do not develop and design with Android's strengths in mind, Android users won't be as willing to pay as your iOS users, the platform whose strengths you do develop and design for.

I translate English into Dutch, and since this is my speciality, I'm pretty good at it and my clients are willing to pay good money for my services. I could also translate German into Dutch, but since my German isn't nearly as good as my English, my clients aren't going to pay for it. I can translate German into Dutch just fine, but the quality will be far less than my English-to-Dutch translations.

Even then, Android's userbase is far larger than iOS', so even if only 50% of your Android users pay, and 100% of your iOS users (unlikely figures), Android still provides a more worthwhile revenue stream.

Still, the core issue is that Android is a different platform and ecosystem than iOS, with different strengths and weaknesses, and as such, requires different talents and mindsets. Translating English is different than translating German. I realise that. Developers should realise the same, and understand that being a good iOS developer does not make you a good Android developer - or vice versa.

Thread beginning with comment 585208
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: You don't need more developers
by kurkosdr on Mon 24th Mar 2014 23:15 UTC in reply to "You don't need more developers"
Member since:

Most of this could be mitigated if Google would grow a pair and make some decent hardware guidelines for android branding and google play access.

Huh? I had a look at Google's compatibility definition, looks pretty detailed, precisely to make sure OEMs can't mangle important APIs, so an decently-made app decently can run on all phones having the version it was coded for.

The problems with Android development are:

1)Version fragmentation. Want to use that cool new API the latest version of Android introduced? Bummer, you have to bend backwards and backport to older versions if you want to get more that 10% of users. Compare and constrast with iOS, where 80+% are running the latest version.

2)The NDK is barebones. Really barebones. If you want to put hardware-accelerated video or 3D in your app, you are going to hit a wall with the SDK. So, you have to relearn a completely new thing (the NDK), which is hard to learn and diffcult to use too. Compare and contrast with Apple's single SDK and slick Xcode. It's not a coincidence most developers complaining about the Android developer experience are game developers.

Other things like handling screen sizes and different SoCs are non-problems if you know what you are doing. But there is no way to dance around the fact version fragmentation and the barebones unfriendly NDK are problems.

Edited 2014-03-24 23:17 UTC

Reply Parent Score: 4

moondevil Member since:

The NDK is a joke, compared with the iOS, Windows Phone and Blackberry experience.

It is bare bones, Google looks at it as a stepchild and even APIs that are intended for game developers like the Game Services are only Java.

Only now, after too much pressure, did they release a NDK version of it.

Even though they make use of GCC/Clang, they cripple them to C and C++. There are a few open issues to offer the full set of languages supported by those compilers.

Then there is the developer experience. It is hard to believe that a company like Google is not able to offer, since Android 1.5, a working debugger.

Again the move to Android Studio, left out the NDK developers making use of Eclipse CDT, with no upgrade path.

Not that Java support is any better, with Google's fork stuck on Java 6 level (Java 7 only with 4.4) and Dalvik GC/JIT leaves a lot to be desired. Everyone is looking what ART might bring to the picture, besides AOT compilation.

Reply Parent Score: 4