I was itching to get into mobile development nearly two years before I finally took the plunge. I had my eye on Android even before the first device (G1) was launched, and I knew deep down the platform was going to be a huge success.
To be honest, I'm not quite sure why creating apps for the iPhone didn't appeal to me at the time, but something about Android struck my inner-geek chord. And what I still find interesting today is that I wanted nothing to do with mobile web, regardless of the fact that web development was my forte. However, HTML5 and mobile web browsers were nowhere near the level they are today (not to mention wireless speeds), so it's not terribly peculiar.
I embrace learning new technology with open arms, and I saw Android as a huge opportunity to sharpen my development skills. It was easy enough to walk through the "Hello, World!" and other various API samples, but the real question was "what problem should my first app solve?" So I decided that rather than try to solve other people's problems, I'd solve some of my own and surely others could benefit from my work.
Once I decided on this, I set out to create a simple MySQL manager that would allow me to run basic queries and create/edit/drop views and stored procedures on the fly. Next, I created an expense tracking system for my wife and me to share income/expense data in real-time, through separate user accounts to help reign in some of our spending habits and better track where our money was going on a categorical level. Then one day, the power button on my Nexus One was starting to fail. So naturally, I began investigating how to create an app that would allow me to turn off my screen, essentially a virtual power button.
By this time I felt like I had some pretty legitimate experience under my belt with Android. I wasn't terribly concerned with the aesthetics of my apps, because even though I had been doing web development (on the codedev team) for so long, I was only responsible for slapping together the functionality and then passing off the project to a team who did all the graphic design and styling. Looking back, I think I still had that same mentality while creating my first applications. The importance of this wouldn't become aware to me until quite a bit later.
Now I was ready to tackle my first big application. I quickly came up with an idea and finished the basics of the functionality in a couple weeks. I knew the UI/UX wasn't pretty, but I honestly felt this would be a "Field of Dreams" moment (if you build it, they will come). In my mind, once the app reached a certain critical mass, I'd then be able to branch out and find a graphic designer to help me re-do the UI, but I had no idea how long that might take.
Needless to say, the "flood of users" I was expecting never came, which forced me to re-evaluate my approach (several times). I've tried adding new "hip" features to get user's excited, integrating QR codes in creative ways, modifying the registration process, and even completely re-doing the UI/UX . Long story short, I've tried a ton of different approaches to gain a larger user base for my applications, and I believe I have identified a couple things that will benefit others as well. I will list them in the order of importance, as I believe them to be:
- UI/UX is quite possibly the #1 thing you ought to consider when creating an application. You need to capture the user's attention immediately with an eye-popping, attractive design. I truly believe this is the main reason why iOS has been such a huge success, and I think a lot can be garnered by studying iOS's ease-of-use and sleek designs.
- If your app requires user registration/login, make the process as easy as possible, and allow for as many different approaches to gain access as you can. For instance, I have found that integrating Facebook login is a very quick way for new users to get into your application, because in my experience most people are already logged into Facebook on their device, eliminating the need to type in any user credentials. Furthermore, the user doesn't have to come up with a new login/password, which I personally find nice. Another option is to allow users to enter your application through a ‘browse mode' where all features that require a user account are locked out. This will at least allow someone to poke around your app before they decide if they want to commit to creating an account, and possibly lead to fewer people uninstalling your app as soon as they see they must create an account.
- Users need incentives if you want them to continue using and interacting with your app long-term. Applications such as Gowalla and FourSquare accomplish this by giving users virtual prizes such as badges or "mayorships" (the latter which can be used to get free items in real life, such as cups of coffee). I personally think FourSquare's model is more enticing because I'm only going to continue using an application if my rewards can be redeemed in real life. My own personal take on this was to create a "Points" system for one of my apps, which can be redeemed for prizes. My goal was to create an exclusive marketplace for the users of my app to "buy" merchandise from businesses who wished to reward users for interacting with their business through my app.
I'm still learning new aspects of mobile development every day, and by no means do I feel as though I know all of the secrets. I do feel as though I've tried a multitude of different approaches to gain application popularity, and in the process, the items listed above have been the most effective for me. By no means do I expect the things I've suggested to help every use case, but hopefully there will be pieces you can take and modify/apply to your own development.
Kyle is a senior software engineer specializing in web/Android development living in Austin TX. He's a self-professed "gadget freak" whose passion for mobile devices drove him to jump into the mobile industry in 2010. He enjoys the fast-paced nature of the mobile tech industry, as it provides him constant opportunities to learn and tons of motivation to do some innovation of his own.