GLOBAL – Jan Ole Suhr is the guy behind MobileWays.de and, most famously, the Twitter client Gravity, which has since expanded to include Facebook, Google Reader and much more. Despite a relatively high price point, Gravity is one of the best-selling and most-loved Symbian applications. In this interview, we get to grips with the man and the product.
Where did Gravity come from?
Gravity was initially a personal project. I started using Twitter in 2008 and, after a while, I got really hooked on it. So I wanted to have my own Twitter client on my Nokia N95 and E61i. Most of my friends were on Symbian phones as well, so I got a lot of positive feedback for this project. Actually, they pushed really hard for this project themselves!
Twitter became more and more popular and there were already a number of really good mobile clients for the iPhone that got a lot of press coverage. So I made my plan to create a showcase app for the Symbian platform: a Twitter client that’s at least as good as the apps on the other mobile platforms. This way I could justify working long hours on a Twitter client for myself, while the project would hopefully draw some attention to my little company.
How long has it taken to create so far, in man hours? Hundreds? (Gulp) Thousands?
Gravity has grown tremendously during the last two and a half years. Currently, the code base is almost 100,000 lines large. That’s quite a lot to handle for one developer. I’ve been working on Gravity more or less full-time since February 2009. Partly because it has been so much fun, partly because it is such a commercial success.
What have been the hardest and easiest parts of development? Any major roadblocks you’ve had to overcome?
The most difficult and time-consuming part during the development of Gravity is definitely the User Interface. I’ve had to write most of it from scratch.
Furthermore, a really good Twitter client needs good web browser integration. Gravity got a deeply integrated browser at the end of 2010 and I am more than happy that the new “Anna browser” – for Symbian^3 and some S60v3/5 phones – is compatible with this feature.
What are the tools you’ve used? i.e. What language and/or toolkit do you write in?
Gravity is completely written in Symbian C++ and I am currently using Carbide.c++ 2.5 from early 2010 for Gravity and all other Symbian related projects. I try to keep the development platform as small and simple as possible. I also upgrade my development environment – compiler, SDK, the whole PC – as seldom as possible. Being a small development company, there are few resources available for administrative tasks like installing and testing(!) a new SDK.
Apart from Carbide.c++, I’m using PHP for automating tasks like compiling icon files, deploying Gravity to my download servers and version/build control. For artwork, I am using Inkscape and Photoshop.
How do you test Gravity as it develops? How many testers do you have and how do you manage them and their feedback? Do you have an automated change management or fault logging system of some kind, or is it all on scraps of paper?(!)
I’ve learned that the best way to create a good product is to use it yourself as much and as often as possible. I was very lucky with Gravity, because I do a lot of customer care via Twitter and thus depend on the application myself. If there were a lot of bugs in Gravity or if it was awkward to use, I’d fix it quickly just to make my life easier.
For me, Gravity is a “productivity tool”, and using it myself for work has helped a lot in increasing its quality. On the other hand, you can never fully test a mobile application on a platform like Symbian. This is not possible, regardless of what you’re being told. Don’t believe it! Gravity is my first globally used application. There are so many operator/network related problems that you cannot test yourself.
For Gravity, I’ve created a logging tool that can be deployed and run on users’ phones and then delivers a very precise report of where a bug is located. I’ve used this tool a lot – with the help of my users. Without those users, Gravity would still contain some evil bugs.
With Gravity being used in almost all countries on earth, I can be sure that there are always at least 50-100 beta testers awake to test a new Gravity build just minutes after release. This is very, very helpful.
How has Gravity evolved since your first versions – why and how?
As I said earlier, Gravity was partly a personal project. I’d never ever imagined the success – both in user feedback and commercial terms. In fact, the decision to make Gravity a commercial app instead of a free app, came during the last days of its initial development. After Gravity was released, I got so much overwhelming feedback that I continued to work on the project. There were a lot of suggestions and feature requests that I wanted to have myself. Gravity 1.0 was actually a bare-bones Twitter client. A lot of features were missing.
During those first months I figured out that the way I handled feature requests created a unique environment for user engagement: I implemented some features within days and the users who asked for those features were just stunned and flattered that they had direct influence on the development of Gravity. There’s so much user engagement and praising of Gravity, that I’m still working full time on it – still adding features that I think are necessary to make Gravity one of the best mobile applications.
An example for such a feature is the Gravity Virtual Keyboard. Although it didn’t take much time initially, I spent a lot of resources on improving it later on. I felt it was crucial for a Twitter client to have a proper keyboard – because users want to write tweets. The easier it is to write tweets with Gravity, the more tweets will be sent and the more popular Gravity will become.
There are some users who don’t like the Gravity keyboard, and they can of course continue to use the native Symbian keyboard. But the overwhelmingly positive feedback I got for the keyboard made it a success alone. It also demonstrated that Gravity and my little company are still at the leading edge of mobile development.
Similar features in Gravity – where I had to go the extra mile – are the embedded web browser and the Youtube Video Player for Symbian^3. They all make Gravity something special and that’s why I spent so much effort and time on them.
Some other features might look minor at first glance, but actually are revolutionary: Gravity was the app to introduce kinetic scrolling to Symbian. As I’ve used an iPod Touch for learning about modern user interface design, I was taken by surprise that my users were so amazed by simple, kinetic scrolling.
How have you reacted to Ovi Store feedback? Do you monitor it? Has it proved useful at all?
I’m trying to visit the Ovi Store site for Gravity every now and then, but unfortunately, it is nearly impossible to react to user feedback. Apart from the fact that many complaints are about the non-delivery (failed download) of Gravity, there are a lot of fair complaints there. I’ve tried to look up the usernames via Google or Twitter’s user search and from time to time I was able to contact the users. Contacting them via the Ovi Store itself or via Ovi Store support is not possible. But this is going to change soon.
Where next for Gravity? Any major new features coming up?
Currently, all the hype is with Google+ and as soon as there is an API available, I will add it to Gravity.
Despite the recent news about Nokia having troubles, Gravity is still selling very well, so I can continue to work on it.
What’s your #1 tip (or tips) for someone wanting to get started in mobile app development?
There’s no single tip that’s most important, but there are a few points I’ve learned during my nine years as an app developer:
- Engage with your users. Make them feel important. Always be polite – regardless of how rude a customer may sound. If you’re winning an angry customer over, you’ve actually won a fan.
- Publicly show your own engagement with the product. Use it yourself as much as possible. You’ll learn about the problems with it sooner!
- Create a way to interact with your users via the app: the first feature to implement is an auto-updating mechanism, or at least a way to push messages to the app. There are so many download sites offering your 1.0 version that might not even work anymore. If you cannot notify those users, you might just lose them right away.
- “Small companies have a hard time competing with the big ones” – Well, that’s not true in my experience. Small companies have a lot of advantages: you can move quickly – dump projects and start new ones within a blink of an eye. You can sit out projects while working on other things, waiting for competitors to give up. You can create a personal, and thus more engaging, relationship with your users (fans!). Small companies need to be aware of those competitive advantages.
- Try to use today’s technology, not tomorrow’s promised technology. But this comes naturally, because you have to make a living today and not tomorrow – most of the time – especially if you’re not VC funded!