GLOBAL – Harald Meyer is the main guy behind TeqUnique, famous for a long line of PhoneTorch utilities for every Symbian phone from the N95 onwards. In the last year he’s turned his attention to another hardware related function though – your phone’s camera, producing the well respected and polished CameraPro. I was fascinated to learn what makes Harald tick and how he created and manages this ambitious title.
How did you get the idea for CameraPro? What did it develop from?
When I received my Nokia N8 I was very excited about its camera but I missed various features in the camera app shipped with the device. So I started development of CameraPro in my spare time, which quickly graduated to a very time-intensive project consuming several weekends and long nights.
What have been the hardest and easiest parts of development? Any major roadblocks you’ve had to overcome?
CameraPro is a hardware dependent application which leads to various problems with different device models and firmware versions due to varying feature sets and incompatibilities. For instance, if you test a calendar application with a set of different screen resolutions then you can expect that it works on all other models too. This assumption does not hold true for the camera features, such as autofocus, flash, and other more involved features, which means a lot of testing with different devices. Then there is also the problem of interaction between features, which are to some extent mutually exclusive, or else rely on each other. The integration of CameraPro’s advanced features required a lot of research in the excellent Forum Nokia API documentation, the Symbian SDK source code, and experimentation with the different options available in the API.
What are the tools you’ve used? i.e. What language and/or toolkit do you write in?
CameraPro is completely written in native Symbian C++ code because it relies on advanced camera features which are not accessible in other frameworks such as Qt.
How do you test CameraPro 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?(!)
CameraPro is tested according to a fixed manual test plan which I run before releasing a new update. This test plan includes all major functions, e.g. checking if pictures are stored properly, if added and unchanged functions still work as intended etc.
Updates are distributed to a group of five to ten beta testers and selected CameraPro users, who continuously send me feedback. But most feedback comes directly from the user community and includes (mostly) small feature requests. All bug reports and feature requests are managed in a simple list, which I try to keep as short as possible. In rare cases (especially in the early days of CameraPro) I also provide individuals with updates with fixes for urgent problems.
How has CameraPro evolved since your first versions – why and how?
I spent a lot of time planning CameraPro before actually starting with development. Thus the feature set was already pretty detailed and extensive for the first CameraPro release. The vast amount of user feedback helped (and still helps me) a lot to understand other users’ requirements, which resulted in a much improved user interface and continuous integration of small tweaks. For instance, all major functions are now accessible with one or two taps, colour schemes can be changed, and different options are annotated with a short text. CameraPro now also provides more in depth control of the camera, such as control of the autofocus light, continuous autofocus, custom video bit and frame rates, video stabilization and image controls. Finally, different camera modes, such as video, anti-shake, burst, bracketing and time-lapse, make CameraPro applicable in many different situations.
How have you reacted to Ovi Store feedback? Do you monitor it? Has it proved useful at all?
I take user feedback very seriously and it has been the source for many small tweaks in CameraPro. Therefore I monitor and read the feedback posted in Ovi store regularly. But, to make things easier for the user and people interested in my applications, I provide an email form and a Facebook fan site for feedback, which is used very frequently. I prefer these alternative feedback methods compared to the Ovi commenting system because they allow much better interaction with the user.
Where next for CameraPro? Any major new features coming up?
CameraPro is updated very frequently – usually once every one to two weeks – and has evolved to a very stable state. I receive a lot of smaller feature requests which will be continuously integrated, together with platform adoptions (such as for Symbian Anna and Belle).
What’s your #1 tip (or tips) for someone wanting to get started in mobile app development?
It is important to select a problem which really interests you even if you are stuck in some issue which takes you a week or so to solve. In addition, integration of user feedback and active communication with users is a fruitful source for new ideas.