A couple of weeks back I released my first iPhone App. The App itself isn’t particularly innovative and certainly isn’t novel. So why did I do it?
The App itself is a simple Pomodoro timer. Use it to help keep track of your work (and interruptions) by dividing your day up into 25 minute blocks. And to confirm how basic this App is, a simple kitchen timer would have done the job. If screenshots aren’t enough, the App itself is available for free on iTunes (YAPT – Yet Another Pomodoro Timer).
Before I answer the question, ‘Why?’, I’d like to first look at what I learned by doing this:
- The App development and release cycle
- A new language Objective C
- The basics of UIKit
- That the human ear is amazingly susceptible to jitter in rhythm
- How to handle the App lifecycle
- That there is always one more bug
One of the main reasons I decided to put this together was curiosity, but there were a number of other factors that helped me see it through to completion.
- I wanted to make something tangible (this is a digital world) that I could put my name to and not have my name lost on the cover of a design document, a test report or a project plan.
- Being a manager is what keeps the bills paid (no pun intended), but staying close to technology is what keeps me interested. I like to keep my hands dirty and needed a project outside of the office to keep me keen.
- I wanted to ship something, myself. At work I very rarely get to see anything through to completion before I’m pulled off to look at the next challenge. I wanted to reassure myself I could still finish something.
- And last but my no means least, I wanted a challenge.
I believe that in this first version of the App I have achieved all those and more. I have a couple of features in the pipeline that should allow me to cover a couple more key areas in mobile development (networking and analytics) and give me a better understanding of the challenges our development teams face.
Because there are many ways to build an App I thought I’d share my approach (and credits for all the help and pointers I used) over on GitHub. Criticisms and suggestions on the structure of the code or the usability of the App are of course welcome.