Rowing in Motion for Android Progress
We are glad we can tell you that we’ve just completed the first milestone for Rowing in Motion on Android. We have ported most of our internal processing APIs, wrote an Android compatible sensor adaption layer and are now building the basic blocks for the graphical user interface. So what can the App do at the moment? It can process acceleration data and show you the stroke rate, not much more but our velocity is picking up. We expect to start the beta program at the end of may.
A new foundation
The Boat and Coach App have until now been written in pure Objective-C so we can’t reuse the code on Android. We decided to port the codebase to C# using Xamarins MonoTouch and MonoDroid framework so future versions of Rowing in Motion will be built on the same codebase for Android and iOS. Unfortunately that also means we have to re-implement the Boat App for iOS on top of writing a new App for Android, but we appreciate it will make it easier for use to bring new features to both platforms simultaneously. An added bonus is that we can also reuse our core algorithms and serialization APIs between the Apps and our Analytics online service, which is written in C# too. We also use some bits of F# (a functional programming language) for some mathematical models of the rowing stroke that we use to estimate boat movement and calculate metrics.
Builds, builds, builds
A core tenet of our quality assurance is that we use automated tests to verify the App functions as expected. We have a dedicated virtual machine cluster that continuously builds and tests our code on iOS and Android devices, runs all tests and creates packages ready for deployment to the App Store. Getting everything up and running wasn’t easy, but we’re now happy to have a fully automated setup that allows us to rapidly make changes while ensuring the code base is fully stable.
Oh, and another nice side effect is that we can coarsely estimate our progress with the port. If we go by test count, the Android port is about 20% done. (Apps is the current iOS only Boat and Coach App, RowingInMotion.Mobile is the new iOS and Android App).
We still have a lot of things to do, so register for our newsletter to keep up to date and take part in the public Android Beta Program.