I’ve been very vague about what I’ve worked on for the last few months. But today, I’m excited to share with you one of the two big projects I’ve been building for the last few months. I’ll save the second big project for another time.
FoneDoktor is an Android app that monitors the usage of your phone (e.g., average screen brightness, time on and off charge, usage of wifi vs. 3G) and recommends different ways to configure and use your phone that will help you squeeze more performance and battery life out of your Android phone. FoneDoktor doesn’t change any configuration on your phone. Instead it makes recommendations that you may want to consider.
- Compare your battery life against the average battery life of your phone and your carrier
- See how your battery life improves over time
- Receive push notifications with recommendations for improving performance and battery life
Give it an install and tell me what you think. Also, don’t hesitate to report any bugs you may find.
Really what FoneDoktor is doing is creating an Android community around usage data, and using that data to provide value to the individuals in the community. The more data that’s collected, the better job FoneDoktor does at making recommendations and calculating battery life. Similarly, with more data from the community, we can deliver more interesting aggregate reports about device and application performance, and signal strength by carrier/location.
Developing the App
Android is a very fun platform to work on. The documentation and developer tool support are both exquisit. I was able to get most of the app done in less than a month, which included time for me to remember how to code in Java. I haven’t written Java since college! Frankly, I can’t think of any big complaints or shortcomings for developing an Android app. The developer community, mostly on stackoverflow, is vibrant and insanely helpful.
The backend is composed of a Django web frontend that receives JSON HTTP requests from the Android app and sends them upstream to WibiData, a data storage, analysis, and serving platform built on HBase. WibiData was also a ton of fun to learn and build on. WibiData drastically reduces the complexity of MapReduce and HBase, providing a platform that is scalable, stores and serves huge quantities of data and makes complex analytics a breeze.
Lastly, the interface was designed by Aaron Newton. There’s no way I could have made something this beautiful.
Tell me what you think of the app! I hope you enjoy using it as much as I enjoyed building it!