This is a guest post by Edward Kim, an independent Android Developer best known for his apps Smarter Alarm — on sale now for $1.99 as part of our Developer Appreciation Month — and Car Locator — an Android Developer Challenge prize winner that recently received a major refresh. Check out our interview with Edward to learn more.

My journey developing Android applications has been an exciting one. It started with an app I wrote called Car Locator in August 2009. After two months, I was excited to share as my first post on my blog that I was making enough money to pay for my lunch. Things really took off in November 2009 when I won 3rd place in the Android Developer Challenge 2. At that time, Android was still a very small but rapidly growing platform, so when I blogged in March 2010 about my success story of making $13,000/month in app sales, the news sent ripples through the tech community, and Car Locator came to be featured in magazines, radio shows, blogs, and even a couple seconds in a Verizon TV commercial. As Android continued to grow, so did I by building and releasing more apps. In January 2011, two of my apps won a combined cash prize of $75,000 from Verizon’s Power Your App Contest. Today, I have a total of 10 paid Android apps on the market.

In addition to benefitting financially from Android, I’ve more importantly learned a great deal during this time. This post is about two expected and two unexpected things I’ve learned during my Android journey.

Things I Expected to Learn

Becoming a better developer

The most practical lesson I’ve learned is how to code better. Writing an Android app is no small task. I had to think about compatibility with existing and future Android versions, be able to design layouts that work on anything from a tiny 2.8” phone to a 10” tablet to a 42” TV, and sometimes get down and dirty in writing native C code and dealing with compilers. As a result, I gained a better understanding of common software design patterns, acquired a deeper knowledge of advanced techniques like Java reflection, and learned more about how Linux works. I also became more comfortable with reading the Android source code and strongly believe it has made me a better engineer. Having spent the couple years prior in the web development world where we code using much higher level languages and frameworks, it was a refreshing change to be able to hone my skills on fundamentals. If you really want to improve your programming skills, writing Android apps is a great way to do it.

A keener sense of how to run a business

Developing and selling an Android app is similar to running a business or a startup company, but on a much more compressed timeline. When releasing my first few apps to the market, I learned so much about what is takes to run a business – finding a customer need, understanding the importance of a large market, developing a good product, marketing to the right users, providing great customer support. Unlike a traditional business that can take years to get up and running, I learned all these lessons within a matter of 2-3 months. And it has to be that way, because you can’t take much longer to release an app. Even if an app isn’t hugely successful, you’ll likely have gained a keener sense of how to run a business.

Things I didn’t Expect to Learn

Views on time and money

Freedom of time is far more important than freedom from money. It’s great to be able to be able to set my own work schedule, know that I can go on vacation whenever I want, and generally spend my time on whatever I desire. Because of this, my life has changed greatly for the better. On the other hand, my life hasn’t changed much as a result of the financial freedom. I discovered that, beyond basic needs and occasional luxuries, I don’t need to spend a lot to be happy. The freedom to do what I want with my time is far more important than having lots of money. While I always suspected this to be true (perhaps because it’s an oft-stated adage), I didn’t expect to confirm this for my own life as a result of my Android apps.

[Side note: I actually have very little free time this year because just I co-founded a startup company. However, the decision was completely voluntary and I’m having the time of my life right now working on it. If you’re an awesome web developer and want to join me on this startup, please reach out to me!]

How diverse people are

One very interesting thing I’m often reminded of is the diversity of ways people use my apps. I get a lot of emails from customers every day, and I personally answer every one. During these interactions, I’m always surprised to learn of the very diverse needs of users and the creative ways they’ve used my apps to fill their needs. It has been fun for me to witness my apps being used in ways wildly different from what I ever imagined. It goes to show that there are all sorts of people in this world and how impossible it is to have people use your app in exactly the way you intend.

***

I’ve learned countless lessons and discovered many things in my journey as an Android developer. Some have been practical lessons that I can use to be more successful in future endeavors. Others have no practicality at all, and are merely personal things I’ve discovered about myself. My hope is that anyone who embarks on Android development would do it not just for the money, but also for the things you’ll learn along the way.