|The Surface Pro 4? Maybe? Dunno. Sure looks cool.|
It's not the phone. Oh my no, not the phone. It's about the Surface.
If you were working during the 90's or early 00's Microsoft's diminished circumstances are amusing. Unless you work for Microsoft, I guess. I made a living writing Windows software back then and I loved the development environment.
But watching Microsoft face plant in the mobile market has been glorious. Truly. Undeniably. Glorious.
Back to the Point
Ignoring the Windows Phone (and who doesn't?). Okay, okay, no more cheap shots.
Ignoring the Windows Phone, the Surface is kind of cool. MS has typically muddled the lineup and the naming, but it's settled down to a beefy line of devices running Windows 10.
Now that the WhirlyGlobe-Maply Android version is solid, we can start thinking about another port. How hard would Windows be?
Porting to Windows 10
First, a quick review of the Android port. WhirlyGlobe-Maply has a chewy C++ core which we ported over and then coated in a Java shell. All the rendering and data management is in C++. The networking, threading, and interface is in Java. It was painful, but the results are fast and easy to use.
On Windows, we'd follow a similar path. The C++ core goes first, then a C# interface on top. Interfacing C++ to C# is easier than the NDK on Java (it's a low bar). That just leaves the graphics API.
We use OpenGL ES on Android and iOS, but Windows uses DirectX. Google makes the ANGLE library which should do the trick. If not, we'll have to fall back to new shaders and new graphics code.
Who Wants This?
Microsoft is really good at selling Surfaces to big companies. Airlines and aircraft manufacturers are big companies. A lot of our customers are in those industries. Connect the dots.
This is by no means a sure thing. We've worked up the estimate and sent it out to a few people, but it's not cheap. Consider this notice that we're willing to do a Windows port if you've got the cash.