We have to give it to developers like TeslaCoil, for they have molded (and allowed us to mold) Android. This developer focuses on Android customizing, allowing us to make android what we want it to be, and make it do what we want it to do. After creating highly-popular applications and tools like Nova Launcher and WidgetLocker, TeslaCoil has gained its respect in the Android community, as well as the tech industry.
But behind all the codes that make our devices behave like they do, there is always a developer (or team) that we have much to learn from. One has to wonder how a developer is and how that reflects in his work. We can see that just like his apps, Kevin is a very strong, goal-oriented individual with an open mind. Without further ado, let’s jump into the interview and see what TeslaCoil is all about!
Phandroid: How did you get started with Android Development?
Kevin: I needed a project and mobile is the really exciting field right now. I debated between Android and iPhone. Android’s advantage was openness while iPhone’s advantage was my wife (then fiancée) using one and potentially being a loyal user of any app I made. Perhaps for the best, her iPhone was stolen out of her pocket, while I was standing next to her. We didn’t even notice until someone ran up to us with the license plate of the taxi that drove off with the thief, but it was too late. Though upsetting at the time, it meant I went with Android which is the right place for me and my wife now uses an SGS2, with WidgetLocker and Nova Launcher, and loves it.
Phandroid: What phone do you personally use?
Kevin: I switch phones pretty frequently. I prefer unlocked GSM devices as even if I’m not using them personally I can easily move a SIM to test phone calls or SMS. That said my primary device lately has been a Galaxy Nexus running AOKP. My personal preference is against vendor skins (especially on ICS). For development/testing reasons I prefer devices to be stock-rooted rather than running a full custom rom. I probably wouldn’t be running AOKP on my GN if I didn’t have another running stock.
Phandroid: What was your biggest challenge in developing your apps?
Kevin: Both WidgetLocker and Nova Launcher have had lots of challenges and I’ve grown a lot working on them.
On the technical side, WidgetLocker makes use of many things not guaranteed by the Android SDK, meaning that it’s hit extra hard by fragmentation (and I accept that responsibility by choosing to go outside the SDK). Part of the issue can just be identifying the problem, users will email me but it’s not always clear it’s related to a certain device or type of device. Once it’s identified and I can reproduce then it’s not just a matter of working around it, but also potentially needing to accurately detect if a system is affected. Model numbers are a poor indicator as often the same bug effects multiple models and doesn’t effect custom AOSP roms on such devices.
On the business side, running a business is challenging! Time management is especially hard. I’m self motivated and love programming, so I find time to write code, but there’s a lot more than code that goes into apps. I need to prioritize features and fixes for a release date. Work with translators. Network with blog sites like Phandroid :). Work with other developers, companies or freelancers. There’s a lot of user email to get through as well. I’ve debating hiring another developer but managing another person is a big challenge as well.
Phandroid: Nova Launcher and Widget Locker are some of the most popular Android apps in their categories. We are witnesses of their birth and evolution, and can’t wait to see what you have prepared for the future. Can you give us any hints or news of what is to come from TeslaCoil in the future, whether it be related to current apps or any new/upcoming projects?
Kevin: I don’t have anything to announce at this time. There’s a lot I want to do with both WidgetLocker and Nova Launcher. Having both is nice as some ideas fit well for both, like more customization of widgets. But I also have some specific ideas for each I want to explore. I have plenty of ideas for new apps, one in particular that I hope to be my next app, but it could easily be a year or more before I’d have time to really work on it.
Phandroid: Monetization: In terms of driving revenue, can you tell us about your experience, your strategy, and the overall potential?
Kevin: I’ve been very fortunate. I started making around $10/day pretty early and was thrilled. I used the money to buy more phones off craigslist. I kind of fantasized about making real money from apps and being able to quit my day job, but I figured even if it somehow happened I’d take a pay cut in exchange for the freedom. I was wrong. After getting some blog attention, WidgetLocker was making more money than my day job and I was able to quit and focus on TeslaCoil. Day to day there are ups and downs, but overall sales have steadily been increasing since then.
Personally, I use the forums heavily. I can do market research by reading what users are looking for or complaining about, then by giving those users something awesome to talk about apps can market themselves. The personalization niche is working well for me, I think because it’s small enough that I can be a big player in it, big enough that it can support development, and vocal enough to virally market the apps.
Phandroid: What do you want to see in future versions of Android?
Kevin: I’d love to see more ability to integrate with the system. The big two in my mind are proper lockscreen APIs, including for security, and proper notification APIs.
For the lockscreen, the existing APIs are inconsistent between vendor skins and don’t actually have anything to set an app as a replacement. Security can also be a big challenge to deal and impractical to modify without compromising security.
For notifications, I’d like two things. One would be the ability to replace the notification bar. The other is for apps to be able to get unread counts and notification text. Currently notification text can only be gathered by abusing the Accessibility APIs and unread counts are app dependent. Gmail supports them but the stock email app
doesn’t. Some third party apps do, but each one must be supported individually by the third party app that wishes to know the unread counts.
Phandroid: Do you develop for other platforms and how does Android compare to those platforms?
Kevin: My previous job was Perl/Web programming and at school I majored in Electrical Engineering which meant I programmed embedded systems and robots rather than Java. Currently I’m just doing Android development.
I love that Android is open source. I dig through the AOSP code, git history and commit messages all the time. Google has some really smart people working on it and I learn a lot by studying their design and methods. Some of the problems I need to solve in my apps have already been solved in AOSP that I can reuse. Sometimes it’s just interesting to follow the history of some chunk of code or find the easter eggs left behind.
Phandroid: If you could give one tip to fellow Android Developers, what would it be?
Kevin: Use multiple devices from different manufactures. Did you know that TouchWiz devices are notably slower at creating hardware layers? Or HTC Sense 4.0 removes the overscroll glow in Theme.Holo? The emulator can help you out with a stock android version you don’t have or a different size screen, but it can’t help with performance tuning or vendor skin differences.
Phandroid: Tell us one thing that most people don’t know about you.
Kevin: People sometimes refer to me as “Tesla” which I get a kick out of because that’s the name of my cat. But he’s usually in the office with me when I’m working so it’s understandable people would confuse us.
Phandroid: You develop software that revolves around customization and we are curious to see how your device looks. Would it be possible to see some pictures or screenshots of your personal device’s homepage/lockscreen?
Kevin: It’s kind of funny, the nature of my work gets in the way of truly personalizing my device. More than anything else, I use my device for testing. I also use several devices every day so consistency is preferable. The test devices have WidgetLocker and Nova Launcher uninstalled/reinstalled frequently so they tend to be relatively close to defaults. My personal device is customized but not so heavily that switching between it and a test device will slow me down. My setup in Nova Launcher should just require three pages, but I keep a fourth, ideally blank, page for testing. Likewise with drawer tabs and folders. I like the ICS blue, but am using a red color theme (which is also nice) right now to make sure any of my recent changes don’t conflict. I use Beautiful Widgets because I like it, but also because it’s popular with my users. Though I heavily use the Gmail and Google Reader apps themselves, their widgets earn a place on my desktop more because they’re popular and scrollable. I used to keep the Calendar widget on my desktop hoping to reproduce the crash reports from it I’d seen, but I ended up figuring out the bug analytically and fixing it that way.
For WidgetLocker I used to have all the space filled, but frequently had to delete items to test something else so now I intentionally keep some empty space.
Those that have used these apps can attest to the great convenience and fun they can add to your smartphone experience. Please do support TeslaCoil by checking out its apps at the Google Play Store!
Want to get involved in Developer Appreciation Month? Contact us and start your message with “Developer Appreciation Month”.
Don’t miss your chance to win! Sign up for our Developer Newsletter: it’s required to win most of our contests and it’ll feature some huge announcements that you won’t want to miss.