For a while ago I asked on twitter and on my blog what the Windows Mobile application of your dreams are (earlier post asking about what kind of application I should develop). I did this to find inspiration on what kind of application I should develop when I’m now starting a new pet project. It’s always interesting listening to what kind of applications other people would like to have on their mobile devices.
I got several good suggestions but in the end I decided to take the first Windows Mobile application I made and develop it from scratch again. This was an application using the GPS on your device to track your movement and calculate current speed, average speed, distance covered, timer +++ The application were meant to be used when running to help you track progress and see all detailed information you often wonder about when you are done exercising.
I want to share my work with you on this project so as I start working on it I will write posts with code examples on how I do it. When this project is done, I will distribute it for free to you to enjoy:)
Why have a pet project?
A pet project is an excellent opportunity to be able to explore all kind of technology and development techniques you are curious about testing, but are not able to do so in your real-time job. With a pet project you can play around doing those things you always wanted to do. You have no deadlines, no budgets, no demanding customers, you are free to do whatever you want to!
As Robert C. Martin (Uncle Bob) stated three days ago in his keynote speech, titled “Are you a professional?”, at Norwegian Developers Conference (NDC09): You should continuously be learning and practicing your profession.
Each week you should spend 40 hours working for your employee, then spend another 20 hours learning, practicing and studying.
In this pet project there are two things I really want to explore:
- I will run this project as a completely TDD (Test Driven Development) project
- I will do funky stuff with the UI (smooth animations ect.)
While working on this project I will most likely also find new areas that I want to explore and play around with.
Pet project name
Every pet projects needs a cool project name. I will call this project RSWM an acronym for Run Smart With Me. All posts about this project will be tagged with RSWM making it easy to find all relevant posts concerning this project.
Functionality for RSWM
I have a rough idea on what functionality I will implement in the RSWM application:
- Covered distance
- Speed (km/h and mph)
- Number of steps (calculated based on the covered distance and the users height)
- GPS screen (all details about the GPS data)
- meters above sea level
- number of satellites in uses
- number of satellites in sight
- History log (each sessions will be stored with all it’s details)
- Sort by (date, distance, speed)
- Delete session
- Add comment to session
- Progress screen (Showing graphs about your progress)
- Average speed
- Distance pr session
This will be the main functionality, I might remove or add functionality during the project. If you have any thoughts/ideas for this application please leave a comment. I also know that similar applications already have been developed, but the application content is not the most important in this project. How I choose to develop this project is what matters. And by the way; this app will be far more smooth than what’s already out there;)