|Like this, but more Android-y|
How Would it Work?The low level rendering engine in WhirlyGlobe-Maply is C++. I didn't plan it that way, I just like C++ for tossing data around and it meshes nicely with OpenGL. All the higher level interaction code is Objective-C as you'd hope.
On Android, they provide the NDK, an interface for writing native C/C++ and running it on Android devices. It looks pretty good and the OpenGL ES support looks solid. The Java Native Interface is an exercise in pain, but it seems dependable.
The plan would be to port the low level rendering engine after a little restructuring on the iOS side. Then we'd rewrite the Component level for Android, basically all the UI and object manipulation.
Android users would only see the nice, friendly thread-safe higher level interface and we'd hide all the crazy stuff only I understand. Just like on iOS.
About the MoneyI'm a consultant and I give WhirlyGlobe-Maply away for free, so I'm not going to do this for the heck of it. It needs to be paid for.
A local mapping company, Gaia GPS, is interested. They only need Maply, logically enough, so we'd just port the pieces to support that. Full WhirlyGlobe-Maply support would have to follow based on other clients.
Their support, assuming the numbers work, would get the core toolkit ported, but it wouldn't be enough for a full Android release. I need other clients to step up.
The first try fell through, as deals do. Now I'm shopping it around. If you've got a lot of money burning a whole in your pocket, let me know.