The first two companies that I worked at out of college were both multimedia game companies where the importance and cost savings of cross platform code were highly stressed. Both of the companies' core business was around "Edutainment" titles for Windows and Macintosh, and I learned a lot about hardware abstraction and many of the ways that C++ allows you to write cross-platform code. (I'll go more into that in a later article.)
There are many, many articles littered around the web about the hows and whys of writing cross-platform code, so I won't go into those here.
Well, both of the companies that I worked for ended up being dot-com-bubble-burst casualties, and my wife was pregnant, so I was forced to join Corporate America. Anyway, I landed a job working for GE Security where they hired me to be their lead PDA developer. This introduced me first to the Palm OS, next WindowsCE, and eventually to Symbian development. Over that time, I became somewhat familiar with the different development communities, and I discovered that the idea of cross-platform code is generally a foreign concept to handheld developers. (The sole exception to that seems to be in game development.)
This brings me to the crux of my post for today which is that I firmly believe that cross-platform is possible in handheld development. From my experience, you need to be willing to invest in a framework abstraction of your core code, but once you have done that, you can quickly get a return on that investment by being able to write application code that can simply be recompiled to a different OS. Of course there is a rigor that needs to be followed by not introducing non-portable code into the application code, but with practice and a solid code base, it is pretty easy to do. To illustrate what/how this might look, I have built a simple Mandelbrot viewer using my framework and compiled it for the Palm OS and for the MS Smartphone platform. You can take a look at the application code here if you want to see how much code we're talking about. Oh, and the binaries are (PalmOS) here and (Smartphone) here. What do you think? Am I nuts? Is this old hat to you? Let me know.
-Jon
|