1) Can you introduce yourself?
My name is Peter Vrenken and I am a 30 year software engineer happily living with my girlfriend in the east of the rainy Netherlands (the city of Almelo to be precise).
I call myself a “software gadgeteer” (sometimes also referred to as a geek :-)). I’m not only interested in Windows Mobile development but also other kinds of software technology such as artificial intelligence, user-interface theory, software development tools and innovation such as PhotoSynth, Panoramio, and Google Gears.
2) Who do you work for?
At the moment I’m working as a Mobile Software Engineer for Sigmax Mobile Solutions (located in Enschede). I work in a team that develops law enforcement and supervision solutions. One of my tasks involves the development of new features for the mobile application and its user-interface. And no, adding a new skip-my-parking-ticket feature is not allowed!
I am also studying towards a Masters in Philosophy of Science, Technology and Society at the University of Twente. I have written my thesis on how end-users more and more influence the development of mobile software appliances. Mobile devices are starting to grow out of their child-age and are steadily throwing off their gadget-image to become the mobile tools we want them to be.
3) How did you become involved in Windows Mobile based development?
To finish my Bachelor in Software Engineering I had to do a project for Pemstar B.V. (now known as Benchmark Electronics). One of the new products they were developing was based on an Intel PXA255 hardware platform running Windows CE 3.0. I developed a stress-test tool which could test the different hardware device drivers of the platform. The result of this research was a working set of desktop and device tools written in C# and native C++ that worked together and could be scripted. It was the first time I had worked with both .NET and mobile hardware, and was truly a great project to work on.
4) When did you start developing your own personal applications?
Researching the stress-test environment for Windows CE increased my affinity with these devices, and as a developer I just cannot seem to use a piece of hardware without fiddling around with it and finding out how it works. I see the development of mobile consumer software as a hobby, but my girlfriend calls it a curse whenever I try to write some software to tweak and tune a device she uses!
5) One of the applications that you offer for sale from your website is called MusicAlarm. How did this come about?
MusicAlarm started out with me being jealous at all non Windows Mobile phones that can awake you in the morning by playing a nice song. I got annoyed with the horrific sounds available on a Windows Mobile device and the complex configuration of the standard alarm application.
To be precise my girlfriend got annoyed of me not being able to quickly stop the alarms from playing. This got me thinking about how an alarm application should work. The result is MusicAlarm, which can be downloaded from my website.
6) What is your preferred development environment?
I have really grown fond of C#. It is a very powerful language that is still easy to understand, while being flexible enough when complexity kicks in. For example the Platform Invoke feature comes in handy accessing Windows Mobile specific functionality not exposed by the .NET Compact Framework.
As a development tool Visual Studio 2008 rocks!
7) A number of your applications have fairly custom looking user interfaces. How challenging is it to develop rich user interfaces using the existing tools?.
Very challenging. Out of the box the tools within the .NET Compact Framework only allow the most basic looking applications that conform to the guidelines set out by Microsoft. Radical deviations required for complex user interfaces are not easily realised.
Customisation of built in controls is very limited and when more advanced GUI features are required the .NET Compact Framework sometimes really hinders development.
As an example take the simple situation of drawing text on a picture or gradient background.. This problem is something which a lot of people come across during development (just read the support forums) and requires some kind of transparent label. On Windows Mobile the inner workings of windows controls limit the realisation of such a label, which results in a lot of weird workarounds and incomplete patches being proposed.
8) Do you carry a Windows Mobile device with you at present?
Yes I do, at the moment an HTC Kaiser, which is also used for development and testing purposes. Sometimes – like on vacation – I also carry my old HTC Wizard, but mostly so that my girlfriend can play a game of Bubble Breaker :-)
9) If you had the choice of having one feature implemented in the next release of Windows Mobile what would it be?
I really like the diversity of the hardware Windows Mobile is available on. There is a device to suit every person’s preference.
However, I think the Windows Mobile platform misses out on features that are required to make stunning user interfaces. Take for example the Win32 or GDI+ APIs. The versions that can be used on devices are only limited subsets of those available on desktop machines. The hardware and operating system are fast and powerful enough to allow applications to be enhanced by fancy graphics and animated effects, but the available APIs make it less than straight forward.
The look and feel of a Pocket PC 2003 devices just looks like a mini version of Windows 98. If devices such as the Apple iPhone or HTC devices with TouchFlo user interface demonstrate anything it is that mobile devices do not need to carry desktop specific user interfaces and metaphors.
This leads me to the conclusion that Microsoft would do great on rethinking the requirements of a mobile user-interface. It wouldn’t surprise me if a technology such as Silverlight will be the start of a move in this direction.
Until then developers like myself will try to make the best of it by cooking our own user interface APIs and frameworks.
10) If you had one thing to say to potential developers what would it be?
Keep faith and don’t forget to interact with the community. Developing advanced Windows Mobile applications can be very tedious but very satisfying. The Windows Mobile community has some very nice forums and websites where loads of information can be found.
Windows Mobile development sometimes requires advanced know how and alternative techniques (I like to call it voodoo :-)).