“One of the building blocks of styling and theming Android apps is understanding drawables”. Thus began the first ever post to Styling Android which was published on 28th March 2011. Which is almost 10 years ago to the day. I believe that Styling Android is the longest-running, actively maintained Android technical blog. An awful lot has changed in the Android world in 10 years so, in this post, we’ll take a trip backwards in time. We’ll revisit the early days of Android to see quite how different life was back then.
Android had actually been around for a couple of years before my first blog post. The T-Mobile G-1 (also known as the HTC Dream) was the first publicly available device in the UK, and in many other territories. At the time, I was working for T-Mobile and the G-1 was my work phone. This was also the first of many development devices for me. When I first got my G-1 it was running the first commercial release of Android: Cupcake V1.5 (API level 3).
I still have very fond memories of the G-1. It was a very nice device which had a fold out QWERTY keyboard. I actually still have it, and it still works!
The G-1 received an upgrade to Android Donut V1.6 (API 4), and my G-1 still runs Donut. Sadly it is little more than a museum piece these days. The only way to get apps on to it is to side-load them. It has the Android Market app installed, which is the predecessor of the current Play Store. However, the Android Market backend has long since ceased to exist, so it just creates errors.
Early Android UI
I don’t think that I’m being unfair or unkind when I say that the early Android UI was pretty ugly. The home screen isn’t too bad, and I’m sure will bring a warm feeling so those that have been Android devs since the early days (apologies for the lack of screen captures, my G-1 no longer wants to give me Developer Mode) :
However the ghastly orange highlight colour still makes me shudder. I could never understand why, if a garish highlight colour was necessary, why not go for Android green?
Android got a bit of a UI makeover in Honeycomb with the introduction of the Holo theme. However, the least said about the rushed Honeycomb release, the better. I could devote an entire post to the horror story otherwise known as Honeycomb. It was only with the introduction of Material Design in Android Lollipop (API 21 in 2014) that Android really started matching iOS in terms of visual appeal, in my opinion.
One very interesting thing on early versions of Android is the behaviour when showing an Alert:
What is interesting here is that the background is both darkened and blurred. It is only recently with the Android 12 developer preview that we have an easy option to perform blurring like this. It’s interesting how sometimes UI trends go full circle!
Early Developer Tools
While we may now complain about slow gradle builds and having to “Invalidate caches / Restart…” in Android Studio, it used to be far worse. In the early days, the only option was to use Eclipse. I recall many a frustrating time when the Eclipse configuration corrupted, and needed creating again from scratch. This was not a trivial task! Invalidating caches is much faster in comparison, and does not require a whole heap of stuff to be done manually. Of course, things may have improved since those days. But Android Studio is much better suited to Android development because it is specifically designed for it.
There was no default command-line build for Android back then. In the very early days, it was necessary to handcraft ant build scripts to build from the command-line. In time, it was possible to do this using Maven as well. Some of my early posts were about this very subject. Although gradle may have its flaws, the memory of using ant or maven reminds me that gradle isn’t that bad.
Miscellaneous early stuff
There are so many things worthy of mention that I could write pages of them, so I’ll just focus on a few of the more bizarre things. The first one is the existence of
AbsoluteLayout. Android was designed to work on different screen sizes and form factors since day 1. This premise was the foundation for the entire layout system. The existence of
AbsoluteLayout, which allows child views to be positioned at fixed x and y coordinates, completely contradicts this. In the early days, the Android forums regularly featured questions about how to get
AbsoluteLayout working well. These invariably got responses stating that if you were using
AbsoluteLayout then you were doing it wrong. Although
AbsoluteLayout was deprecated in API 3, it still pains me that it ever existed.
Another weird thing was an Easter Egg that was built into Android: The
<blink> tag. This was equivalent to the tag of the same name in HTML which would blink an element on the screen. It was as horrible as it sounds. For those wanting more information on this abomination, there is a fuller description here.
The final thing worthy of mention is when Android forgot about December. A bug in Android 4.2 (Jelly Bean API 17) resulted in the month of December disappearing from the People App calendar. It was a pretty high profile, at the time. Although a fix came pretty quickly.
It’s been an interesting 10 years seeing how the Android ecosystem has changed. Often you’ll hear us old timers reminiscing about the good old days, and moaning that things aren’t like they used to be. While there are certainly some fond memories, we have it much better now than we did back then. We have better tooling, a rich set of libraries that are decoupled from the Android Framework, etc., etc.
So no moaning that “things ain’t what they used to be” from me.
Well, not much, anyway!
And I managed to write this article without mentioning
AsyncTask. Wait? Wat! I just mentioned it. Dammit!
I would like to give my thanks to Shivam Gadhia, Sebastiano Poggi, Jon Reeve, Al Sutton, and Ben Weiss. During a recent virtual drinks meet-up, I mentioned that I was planning this post. They contributed some ideas, many of which have been included. They also did some proof reading and spotted a few typos which are now fixed. Thanks, folks!
© 2021, Mark Allison. All rights reserved.
Copyright © 2021 Styling Android. All Rights Reserved.
Information about how to reuse or republish this work may be available at http://blog.stylingandroid.com/license-information.