Thoughts on Android

I should have posted this 3 months ago. Looking at my post drafts, hey I had this, so let’s post it.

This Valentine day, I have a love confession to make… I have an affair.

For front-end side, I’ve been developing in iOS development platform for 6 years now, and I love it! I still do. But now, I have a new love.

Although never spoke it out loud, mostly only among friends and team, or in my mind, it was quite often I underestimated Android development platform, generally judging from most Android apps available, that to my judgement are lost in term of overall quality compared to iOS. Just look at Path app for Android (Path is quite popular in Indonesia, so I use it as example), for example, is quite different from the iOS version. Or from reading at a glance the news updates around Android development. For example, how developers tend to choose iOS over Android, how fragmented Android is, bla bla bla.
I often thought, hey Android development kinda sucks, no?

Although my company has been developing a lot of Android apps, I myself never look at the code, at least not in details. I never did coding a real-world Android app before. All this time, mostly just giving advice the team how to achieve the great result, only by logics and comparing my deep knowledge on iOS. To achieve a functionality on Android, say animation-related, I compare the expected result and methodology based on iOS technology. Sometime, the team cannot achieve the result perfectly, then mumbling about the limitation on Android SDK. And I think, hey that sucks!

Until… I code for Android by myself. It happened initially because I have to. If anyone remember, last November my team had an opportunity to represent Indonesia to involve in a regional competition, bringing along our app, Jepret Story for Android. From scratch to viable product, it took only 3 months. Due to certain conditions, I decided to help the team to actually code the app, to make the development faster.

Initially, it’s awkward world. A moment before, I was getting used to the elegance of syntax and language features of Swift. Now I meet Java, again, after 2007 the last time I speak Java. But, what can possibly change in 7 years.

Later I found out that many things are easier in Android SDK. Layout-ing is FTW. Styling, theming, globalization are built-in and well facilitated. Those are pain points in iOS. Deeper I went, deeper I know, many stuffs that I initially thought hard to do in Android, actually quite easy, e.g. doing animation, image processing via filter, . The ecosystem of 3rd party open source libraries is doing well, although to me, arguably not as rich as iOS.

So, as always, ignorance can be misleading…

Android is an exciting development platform. True, the tooling support, based on my experience in 3 months using Eclipse, need much more improvements, in term of performance and stability (yes, I experienced a lot of crashes with Eclipse. And yes I know, Eclipse is not supported anymore by Google). Android Studio with Gradle build system has reached v1 for quite sometime now, and looks promising. I’ve switched to Android Studio ever since, and love it every single day! Support on Multidex is awesome, good bye 65K DEX methods limit! Android 5.0 (SDK 21) offers a lot of exciting stuffs.

Yes, it’s true, Android device fragmentation makes you pull your hair out to support as many devices as possible. But, it’s not Android fault, it’s commercialism, baby! As long as you can define your target audience (that are using specific range of device category), you’ll have no problem. Download number is not an important factor anymore, user engagements with your app, that’s super important!

Finally, I can say, I love coding for Android, and of course also in iOS, Node.js and .NET.