This is the first in a series of articles about lessons learned creating Android Apps as a side project. I have three paid apps on the app store with the first two published in December 2012 (the third was published in March 2013). With two full years on the app store, I thought it was time to look back and try to pull out some lessons learned. This introduction will provide some context to my approach and point of view. I hope the series will be useful to other developers thinking of making their own Android apps.
Side Project
I developed the apps after hours in my spare time. Do Android Apps make an appropriate target for a side project? My short answer is yes. The longer answer depends on your background and goals for the side project.
Android Apps make an appealing choice for a side project for a few reasons. First of all, there are a lot less moving parts as compared to a web app. The app is self contained. It does not need to run on a server or necessarily have to talk to other servers. There is also a lot of leverage provided by the Android platform and APIs making it possible to get an app working quickly.
Further leverage comes from Java. If you are already familiar with other strongly typed lexically scoped languages, Java will not seem too foreign. I appreciate having a full IDE and the ability to debug the app in a graphical debugger.
Finally, Android makes it easy to develop apps in two main ways. The Android SDK and development tools are available for Linux, Windows and Mac. This is all you need to get started as an emulator is provided with the developer tools. Additionally, compared to iOS Android makes it very easy to install your app on your device. Just put your device in developer mode via the settings and install your apk on the device.
My Background And Goals
My background consists of working for large companies on embedded C/C++ code. I did not have prior experience writing Java when I began the first app. One important goal I had when I started was to learn something new. By writing the apps, I learned Java and the Android platform along the way.
The second goal was to have complete control of the app. Perhaps the most frustrating part of working for a large company is when your project gets canceled. I once worked on a project for two years before it was canceled by upper management. Creating an app allows total control of all aspects of the project.
The chance to make some money by selling my own software was also appealing. My approach to this was to offer paid apps. Apparently, this is not the best way to capture revenue from app store sales. In app purchases seem to be the best approach for maximizing profits. However, it is the most straight forward arrangement in my opinion. If the app is valuable, people would be willing to pay for it.
Finally, publishing the apps provided portfolio pieces. I have worked on proprietary code throughout my career. During interviews it was possible to talk about the code and the technical work that was required. However, before the apps, I didn’t have anything that I could fully demonstrate.