Whilst learning Java in 2010, I was interested in applying my skills by creating some simple Live Wallpaper applications for Android OS. Little did I know they would go on to accumulate over 5 million downloads with a 4.3 average rating! I think I got lucky finding a niche in the market before the Google Play Store became oversaturated with competition, but nonetheless I am proud of what I achieved and like to think I maintained a high level of quality whilst looking after my user base. The income generated from these apps allowed me to focus on my masters degree without having to find a part time job.
Unfortunately, after selling the source code and rights to the apps to help fund my wedding in 2014, the new owner hasn’t done much to maintain or update them, instead opting to maximize profits with advertisements whilst removing some of the free versions altogether.
Anyway, here are the apps…
Snowflakes Live Wallpaper
Two Live Wallpapers roughly translated into 13 different languages, with a free version linking to a paid version via it’s limited settings menu. Swiping left and right acts as a gust of wind, blowing the snowflakes sideways. The full version is highly customizable - users can change the speed, shapes, size, colors of the snowflakes and backgrounds, choose from a set of colorizable background textures or use a personal background image, save and load presets, change the FPS, and more. Why wouldn’t you want to upgrade, right?
By clicking on the banner images below, you can see the apps as they appeared in the Play Store during my time of ownership in 2013 (thanks to the awesome WayBack Machine):
What did I learn?
- Android SDK debugging and development.
- Design, Development, Art (sort of), QA, Strategy, Marketing, PR - I had to do it all and enjoyed every minute of it!
- Maintenance challenges (backwards compatibility, fragmented userbase).
- Combating piracy was a constant battle, not just people downloading illegally but also rogue developers encroaching on my IP.
Demo Video
Most of the other apps I released were modifications of the Snowflakes Live Wallpaper idea. Some were real flops whilst others went on to achieve more downloads and higher ratings (but less income). I consider them experiments in Marketing more than anything else, as the code and options are fundamentally the same throughout, just with different shapes, presets and physics. Unfortunately, the new owner has since removed all the free versions from the Play Store. Here are some notable mentions:
A set of Live Wallpapers in a space / sci-fi theme. The free version had plenty of features and was supported by a small AdMob banner at the top of the settings menu. Users were occasionally reminded that they could 'Go Pro!' to remove the advert, gain special 'Monster' shapes, and save their own settings. It was quite a successful strategy, and ended up gaining the highest user ratings and most free downloads (3+ million) of all my apps, even the YouTube demo has generated 900k+ views!
A set of Live Wallpapers with an Autumnal feel, with a restrictive free version linking to a feature rich paid version. This set didn't do so well, probably about 50k free downloads in total. Maybe I got unlucky, maybe there wasn't enough demand, maybe I messed up the marketing! Who knows? It never really took off like Androids or Snowflakes. It's a shame as this one had my favourite color scheme and physics, which swayed gently down the screen as if falling from a tree.
A set of Live Wallpapers with a restricted free version linking to a feature rich full version. The obvious theme here is love, hearts, cupid, etc. This set didn't do so well either, only achieving around 100k free downloads.
Apart from the above Live Wallpapers, I also created a widget for the home screen called ‘Click Clock widget’. This was a bit more complicated than my previous efforts, utilizing web services, geolocation features, and hardware info. I thought it was a neat idea with a unique selling point, but it didn’t do as well as I’d hoped (only 2k downloads). I can’t be sure why but I guess got lost in the sea of other homescreen clock widgets available on the market at the time…
The unique selling point is that no instructions or settings are needed - you just click on various parts of the widget itself in order to cycle through the options. You can change the font, date format, background, or toggle between battery level/current weather. I discovered that obtaining correct weather information based on location was quite tricky as showing a moon or sun to the user depends on sunset and sunrise times around the globe. So obviously I had to utilize GPS and/or WiFi geolocation functionality, as well as plugging into a weather forecasting web service. Wanting to cut costs, I opted to decipher Google’s non-public weather API. Despite working well at the time, this was not such a good idea as the API contract changed several times, thus breaking the app. It was also non-trivial trying to keep the clock running, as Android has a habit of deciding when it should terminate running programs and services, including the app’s service worker which updates the time.
I think I took the idea a bit far really. Whilst it’s neat to be able to customize via the widget itself, it wasn’t really very practical. I would like to have added a settings area, perhaps via a small icon on the widget itself. The widget would flip around to reveal some options: toggle locked/editable, 12⁄24 hour format, help page. Some options were a bit pointless too, and could have been autodetected based on location.
What did I learn?
- Android's GUI layout system to display content as an Android Widget.
- Access hardware features, such as battery info and geolocation features using GPS and/or WiFi.
- Never use a secret API that isn't intended for public use!
(Click image for Play Store listing)
A set of Live Wallpapers in a space / sci-fi theme. The free version had plenty of features and was supported by a small AdMob banner at the top of the settings menu. Users were occasionally reminded that they could 'Go Pro!' to remove the advert, gain special 'Monster' shapes, and save their own settings. It was quite a successful strategy, and ended up gaining the highest user ratings and most free downloads (3+ million) of all my apps, even the YouTube demo has generated 900k+ views!
(Click image for Play Store listing)
A set of Live Wallpapers with an Autumnal feel, with a restrictive free version linking to a feature rich paid version. This set didn't do so well, probably about 50k free downloads in total. Maybe I got unlucky, maybe there wasn't enough demand, maybe I messed up the marketing! Who knows? It never really took off like Androids or Snowflakes. It's a shame as this one had my favourite color scheme and physics, which swayed gently down the screen as if falling from a tree.
(Click image for Play Store listing)
A set of Live Wallpapers with a restricted free version linking to a feature rich full version. The obvious theme here is love, hearts, cupid, etc. This set didn't do so well either, only achieving around 100k free downloads.
Apart from the above Live Wallpapers, I also created a widget for the home screen called ‘Click Clock widget’. This was a bit more complicated than my previous efforts, utilizing web services, geolocation features, and hardware info. I thought it was a neat idea with a unique selling point, but it didn’t do as well as I’d hoped (only 2k downloads). I can’t be sure why but I guess got lost in the sea of other homescreen clock widgets available on the market at the time…
The unique selling point is that no instructions or settings are needed - you just click on various parts of the widget itself in order to cycle through the options. You can change the font, date format, background, or toggle between battery level/current weather. I discovered that obtaining correct weather information based on location was quite tricky as showing a moon or sun to the user depends on sunset and sunrise times around the globe. So obviously I had to utilize GPS and/or WiFi geolocation functionality, as well as plugging into a weather forecasting web service. Wanting to cut costs, I opted to decipher Google’s non-public weather API. Despite working well at the time, this was not such a good idea as the API contract changed several times, thus breaking the app. It was also non-trivial trying to keep the clock running, as Android has a habit of deciding when it should terminate running programs and services, including the app’s service worker which updates the time.
I think I took the idea a bit far really. Whilst it’s neat to be able to customize via the widget itself, it wasn’t really very practical. I would like to have added a settings area, perhaps via a small icon on the widget itself. The widget would flip around to reveal some options: toggle locked/editable, 12⁄24 hour format, help page. Some options were a bit pointless too, and could have been autodetected based on location.
What did I learn?
- Android's GUI layout system to display content as an Android Widget.
- Access hardware features, such as battery info and geolocation features using GPS and/or WiFi.
- Never use a secret API that isn't intended for public use!
Conclusion
I learned a lot from my experiments with Android, it was a great way to learn Java whilst having some fun. I don’t think I could recreate the early success I had today as the market has changed so much - it’s virtually impossible to get noticed in the Play Store without a vast amount of luck as there are big businesses dominating the rankings with hefty marketing budgets. I believe the key for me was to get in there early with a simple, quality product.