A little while ago I created a native Android application (using Java) called RunTap. I'm by no means a Java developer, in fact that is the only native Android application I have ever built. What I plan on doing over the coming weeks is to attempt to convert RunTap into a cross platform application using Sencha Touch and PhoneGap Build. With the recent updates to the PhoneGap Build service and Sencha Touch itself, I'm reasonably confident I'll be able to produce an application of similar or even better quality than the original Android application.
RunTap is built for runners, and allows them to control their music and record times more easily whilst running. It's for people like me who run with their phone in their hand (I've never been a fan of arm bands). There is an in depth summary of features on the Google Play page, but the reason I think this will be an interesting challenge is because of the following features:
- Sensitive touch controlled timer accurate to one hundredth of a millisecond
- Music playback from the users library
- Touch gestures for skipping or going back a song
- Touch controlled laps
- Accelerometer to track steps
Many of these features I have never implemented in a Sencha Touch application before, so this will be an interesting challenge for me and it will also provide some interesting commentary on the native vs. HTML5 mobile application debate (if comparing my sub-par Java skills to what native Android apps are capable of is fair).
Over the coming weeks or months, I will continue this blog post series as I continue to develop the application. I'll likely document the implementation of each of the RunTap features as a separate blog post, as well as any other interesting tidbits or problems I run into along the way. At the end of the series I will write a post that compares the native application and Sencha Touch application side by side.
I won't be able to release the full source code as I'm partnering with a new Adelaide based startup company called Doinq to offer ad based rewards through the application and would like to keep the the source code closed since I still intend for this to be a profit making venture. I will however post all relevant code snippets, enough to get the idea of how the main concepts work and how to implement them yourself.
If you have any suggestions as to how I should go about doing this or specific things you would like to see mentioned in the series, please feel free to let me know in the comments.