As we're 1 or 2 days away from submitting TouchDraw for Mac to Apple, I thought it would be an interesting exercise to generate some statistics on the code reuse for TouchDraw. Like iCircuit, TouchDraw for iPad is developed using MonoTouch, and TouchDraw for Mac is developed using MonoMac.
I used the same script that Frank created to calculate the stats, and I'll mention the same description/disclaimer that he did: All the compiled code for each project is put into two buckets: unique code and shared code. Unique code is code used only for that project while shared code is code that was used in more than 1 project.
First, some pretty pictures:
Second, the raw output from the script is as follows:
app t u s u% s% iOS 139809 55685 84124 39.83 % 60.17 % Mac 115221 29198 86023 25.34 % 74.66 %
t is Total lines of code
u is Unique (platform specific) lines of code
s in Shared lines of code.
Lines of code include comments and white space.
Note: Like with iCircuit, we have a consistent coding style, so this simple metric is good enough for me to understand the relationship of our shared code to platform specific code.
As you can see, more platform specific code was required for the iPad version than for the Mac version. There are many reasons for this; however our belief is that by the time we finish TouchDraw for iPad 2.0 and TouchDraw for Android (which is of course being built with Mono for Android) that the code reuse in the iPad version will increase to 65% to 70%.
Final Note: If you look really closely, you'll see that the "shared" lines of code above do not match up. That is because when we calculate the statistics we are also measuring the development version of TouchDraw for Android. Once we get closer to the actual release of that, I'll share those numbers here as well.