FixMyQ Android app Post Mortem
Apr 10, 2013 · CommentsJust over 2 years ago, I published my first smartphone application: a Netflix Android app that helped me solve the problem of losing track of expiring Instant Queue movies. This app was my first independent effort and by far my most successful to date. As of mid-April 2013, I’ve hit 1,300 active installs and 7,600 total installs.
Key Lessons Learned:
- Build something useful/Solve a problem you’re interested in. If you are generally excited about the work, you’re more likely to stick with it over time and see it all the way through. Users/installs don’t happen over night, but will come over time if you build something useful. The rush of seeing that first download, then the fifth, then hitting 100+ downloads is incredible and the learning experience that comes with dealing with users is priceless!
- Building an app around a popular product or company helps with traction. Spending some time searching the app stores can be very insightful -how many apps relate to my idea? How popular are they? When I started, there were only a handful of results for “netflix” - Netflix didn’t even have an official app yet! Getting in early was great; by the time the other apps showed up, I had significant download traction and was a top search result. Thus, if possible, get something out there before it becomes too saturated. If that isn’t possible, my next point can help.
- Focus on differentiation. This is the first thing I focus on with designing new applications because of what I learned developing FixMyQ: figuring out how to provide a unique, compelling experience that is similar yet different from others. With FixMyQ, I noticed that others were simply copying the main Netflix features - searching for movies, showing instant/dvd queues, etc. I found a useful, unique twist: showing the user’s instant queue but instead of normal details (actors, release date, length) I solely showed title and expiration date with an option to sort the queue by movies that were expiring next (the idea being that if you see them at the top of the queue, you’re more likely to watch them before they expire).
- Pick the right app platform for your goals: I originally chose Android over iPhone (even though iPhone was more popular) as it was more “open” than iPhone and I could develop on a PC (I still find the Mac requirement a big annoyance 3 years later). Now, Android has overtaken iPhone in terms of user install base and a new contender, Windows Phone, has emerged.
- Monetization strategies: Currently in 2013, it has now well known that Android users tend to not buy apps vs. iPhone users that more consistently do. While I never got around to this, ads on Android and a fixed cost on iPhone seem to be the way to go.
- Development tool issues: 3 years later, Eclipse/Android is still a major pain to work with. Granted, Google has made great strides to alleviate the pain of getting started, but even now I’ve recently had multiple friends almost give up on their apps because installing Eclipse/Android SDKs are mind-numbing. As my buddy Brandon Nelson told me, “I feel like I’ve gotten so much accomplished when all I’ve really done is open Eclipse, run my app, and see nothing crash.” Indeed, Brandon, indeed. :)
- Beware relying on 3rd parties. Without a signed contract with a company, they can change their data/APIs that your app relies upon without notice. This happened to me a few months back - again, the purpose of my app is to notify users of instant movie expirations. With no notification, Netflix removed the main API endpoint that I was using - effectively rendering my app useless. Backlash was strong in the comment section, naturally. One month ago, they announced that no more public API developer keys would be handed out. This time, the comment section was closed. Twitter, Facebook, and other popular services are starting to tighten up their APIs as well, leading many to question the value in building apps that rely on these services.
Where do I go from here?
I released a small change to the app tonight in order to verify the current state of the Netflix API (I have used the app in many months). Depending on how that goes, I’m planning to either finish up the iPhone version of the app (been tabled for about a year now) or pivot and start a new project. Stay tuned!