A Quick Thought on Android UI Themes

Right now I’m sitting in the dentist office lobby and decided to jot some thoughts down while killing time.

Earlier today I was showing off the latest version of The Shopper to a few friends of mine. If you follow me on Google+ you may have seen about a week ago ago that I posted a few screenshots of the app with the new UI optimized for tablets. The major difference is that it adheres more closely to the design guidelines provided by Google with modifications only to the colors used.

Surprisingly each of them agreed that it looks sharp and way better than the previous version. Even my girlfriend, who is my primary test user, said that she’s much happier with this layout design and prefers it.

This got me wondering about UI design for mobile as a whole. It’s always interesting to design your own UI theme but is it really necessary in most cases? I’m not talking about developing custom widgets but more toward themes and skinning.

I’ve used a few apps where skinning was possible and it’s always felt a little flaky. There are usually a handful of skins the user can choose from and some just look like total shit. I guess I’m wondering where it is a designer draws the line and says enough is enough.

I think it’s different for solo developers like myself who are the entire team in one: designer, developer, marketer, etc… Personally I’d rather cop out as easily as I can with UI such that I’m not spending a month working on custom art for widgets. So I’m more inclined to stick to design guidelines. We’re not necessarily designers by trade so the recognition of where to stop with theming might not be as obvious.

Does that mean we can’t make beautiful looking apps? I don’t think so. But I do think that it’s easier for people like me to go into overkill with the UI design. With The Shopper, I’ve been skirting around the UI carefully which is in stark contrast to how I did it last time. Maybe this is the better way to go?


Refactoring to Get Back to Root

Despite the implications of the title, this is more of a personal post than something exceptionally technical.

A few days ago I decided to pony-up to renew my Netflix subscription. The major benefit to doing this is independent documentaries; they can be a bit hard to come by even if you’re seriously looking. While exploring the available titles, one in particular jumped out at me: Indie Game The Movie. I was completely ready to dismiss this as yet another “here’s a developer and here’s what he does on a daily basis” films but gave it a shot anyway.

Not only was I completely wrong, but I was taken aback at how much I connected with the developers featured in it.

The thing that really scared me the most is that I came to find it at a rather interesting time. I’m actually in the process of developing my third Android application which happens to be a game. While still very early on in the project, I’ve found myself going through all sorts of emotions and engaging in combat with myself over seemingly trivial things for little result in the global scope of the project.

One of the developers featured, Jonathan Blow (now most known for Braid), said something to the effect that the major difference between independent games and high-end commercial quality games is that personal character flaws present in the developer can be translated into the game making it an extremely personal affair. I can’t remember the quote verbatim but this struck a major chord with me. I’ve actually been developing games for about five years now. In that time, I’ve written four, released two, and have since lost the source and binaries for all of them. While each one of them has been different in various ways, the one thing that has remained constant is that it’s been a difficult process and I’ve always left a little of myself in them either through personal tweaks in mechanics visible only though reading the source code or via the plot of the story.

As the years went by and I fell out and back into programming, something changed in me. All of a sudden I had no desire to write code for the pleasure of it. Instead I felt compelled by the monetary gains that would follow afterward and driven by such desire. I was controlled by the pressure to code for this framework and shy away from this language because you can’t develop fast enough with it. The code itself has no personality to it. Every line written was clearly marked as nothing more than an extension to the underlying framework API. Things like code completeness and¬†efficiency were now more important than how I felt while writing the code and then using the resulting program. Usability has always been important to me regardless what I’d written but now it felt like I wasn’t concerned about how I used it or leaving my own impression on the program.

Now I was just droning from one project to the next.

And this really bad mentality sunk into my recent game project. It shows in the code, it shows in the demos, it shows in the art. In a sense, the entire project is corrupted by this. And I knew it. I felt it. Something was missing and something was very wrong.

After hearing what Jonathan Blow said in the documentary, I stepped away from the project for a while and really thought about what it was exactly that I was missing. What I discovered was extraordinarily personal but the root to all problems.

Life has a way of making you experience things that you don’t think you should have to experience. You can’t necessarily shield yourself from the things with negative connotations; they have a nasty way of creeping up on you and making sure you know that they’re there. I can think of so many things in my life that have negatively impacted me on so many levels and degrees that it’s easy to get consumed by it: childhood hardships, the decay of family and friends, cancer, death, addiction, misplaced trust, dishonor, abuse of loyalty, hollow bonds of family, unforgivable mistakes, etc… It all detracted from the small lot of things that I did find solace in. Mostly because having experienced what I did it was really easy, and still is frankly, for me to be absurdly cynical about the world.

I took some time to proverbially “refactor” myself. Touching base with what it was that I really loved in life and finding again what I’d lost because of all the cruft, I’ve emerged feeling somewhat invigorated.

It’s truly hard to be yourself in a world that demands you be something else suitable to the context. But being yourself and not shying away from that is extremely important regardless of what you choose to do with your life. Not bringing your personality to the table might as well make you a drone.

Having done all of this, I humorously sat back down at my computer and started looking the code over again.

I’d like to say that most of it was okay. After all, structure work is structure work. Beyond that, it needed a total refresh. That wasn’t me writing that code there. It was drone code.

Is it going to take longer to get this thing done? Yes. Am I going to be happier with it? Absolutely. Is it going to be flaky like me? Better count on it.

Still Building

I’m seeing some people pinging the site already. Be patient – I’m still working on getting the content arranged on here and actually visible. It’ll come together, hopefully, before the end of the week. In the meantime, don’t forget to check out the LinuxInstall.net podcast that I co-host as well as the other projects that I’m working on!