The next WP7 application we present is called Marathon and it keeps track of your movement with the help of a GPS-receiver. It’s the perfect companion for sporting activates such as running, skiing or even skydiving. We introduce you to Johan Dahlbäck who will tell us how otherwise his app can be used.
Q1. Johan - please introduce yourself briefly and tell us more about the application you created - what are the key functionalities, major differences from other similar applications on the market, why do you think people would want to install this app on their WP7?
A. I'm 24 years old and live in Stockholm, Sweden. I've been working as an IT-consultant for the past 2.5 years, mainly with SharePoint development. On my spare time I'm working on my application "Marathon", which is a tool that uses the location service on the device to record the users movement. It's mainly made for runners, but works well for most outdoor sports where you measure distance (someone actually used Marathon during a skydive, so I guess it's up to your imagination :)). One neat feature a lot of people appreciate is the voice announcement, which can be set to trigger at time or distance intervals. I'm using it together with my previous recordings to compete against myself and give me the motivation I need to reach my goals. Running is quite popular now days, and I believe most people will find an application such as Marathon useful for their training.
You don't have to be serious runner to use it, it can still be fun to keep track of your results.
Q2. What was the motivation behind creating this application? How did you get the idea?
A. I started running a few years ago. At that time I didn't live close to any trial, so I had no idea how well I performed. It was about the same time smartphones started to show up with GPS-receivers, so I got the idea of creating Marathon to solve this problem. I bought a Windows Mobile device and started coding, unfortunately my motivation wasn't that great during the winter and it took almost a year before the application was ready for its first release.
Q3. What were the challenges you faced when moving from Silverlight in/out of the browser to the phone environment?
A. I had very little experience with Silverlight prior to Windows Phone. So I can't say I did such a transition. But I guess one of the biggest differences is how you interact with the device. Phones have small screens, so it doesn't fit much information on one page. You'll also have to worry about performance to keep a smooth user experience and not drain the battery. The phone apps can be interrupted at any time, so you have to make sure you can restore the current state.
Q4. Which measures does Marathon track? Which measure was the hardest to implement?
A. Marathon mainly tracks the distance you've moved (both vertically and horizontally), so it can provide you with information about your speed, altitude change, calories burned, distance and time. It also keeps all your positions so it can plot it on a map (this feature didn't make it to the first release, but it's available if you upload your result online). The hardest part was to make sure the charts didn't consume to much resources. They are based on the charts in the Silverlight Toolkit, which were not originally developed for Windows Phone. They still work great, but it was a bit of a risk to use them since I wasn't able to do any tests on a real device until a few days before release.
Q5. Have you faced any performance challenges with Marathon? Was it difficult to optimize your app so it may run smooth on the device?
A. Since I couldn't get hold of a Windows Phone 7 device during the development I tried to stick to simple animations and standard controls as much as possible for the first version. I did get hold of a developer device for 5 days before the release, so I could do some tweaking and make sure everything was working as intended. The most difficult part was to make sure the device response quickly when it's unlocked after a recording. At that time I have to update the graphs and the map. It turns out that the way I was using the Bing Maps control locked the UI while it was downloading data. I didn't realize this until it was too late to fix for the first version, so I had to remove the map (I blame the good 3G reception where I live ;)).
Q6. From a developer point of view, what are the challenges while working with the GPS? Is it easy to use the API? What could Microsoft do better?
A. The location service in Windows Phone 7 works great, I can't imagine a way to make it easier to use. Marathon was first developed for Windows Mobile which wasn't as easy to work with. Some of the early devices had quite some problem to get the first fix, so it was hard to know if it was my fault or the devices GPS-receiver. With Windows Phone 7 it just works. It's always a bit tricky to work with GPS since the signal is far from perfect, but I could reuse my previous code by simply replacing the GPS-wrapper. So the hard work I put down for my Windows Mobile application came to good use once again.
Q7. How do you see the future of WP7, and applications for WP7?
A. The platform has a lot of potential thanks to Silverlight and XNA. Both are great technologies which let the developer focus on the features of their applications and games. Since there are strict hardware restrictions you don't have to worry about performance on different kind of devices, which also makes it a lot easier to develop. Smartphones today are all about third party applications, so the most important feature is to make sure the developer have great tools to work with.
Q8. What other ideas for next WP7 applications do you have?
A. I still have a lot of features I want to add to Marathon, so I'll probably not start with anything new for a while.
Q9. What is your opinion on the recent announcement by Microsoft on the future of Silverlight and HTML5?
A. With Silverlight on phones, soon the Xbox and in cars (Windows Embedded Automotive) it's really making up for its original codename "WPF/E" (Windows Presentation Foundation Everywhere). It's an amazing technology and so is HTML5. Now that they are starting to overlap each other more and more the choice of technology isn't always crystal clear. But they both have a future and I don't believe any of them will be killed off by the other in the near future. When it comes to phone applications I welcome HTML5 as an alternative (but not replacement) to Silverlight. More and more companies want quite simple applications to expose their products for end users in one way or another. They'll benefit a lot if they can support Windows Phone, Android and iOS without writing 3 applications from scratch.
Thanks, Johan. Keep running ahead with Silverlight!