The oFone and Cross Platform Development
Working with mobile devices is a lot of fun and very challenging. New devices and mobile platforms are springing up all time. For example, see the new ofone from Microsoft. This phone does things most developers would not have thought about when writing applications for mobile devices. (In case you didn’t catch it during this video, the ofone is not a real phone. It was used by Microsoft to humorously point out the challenges of developing for mobile devices.) Olive Tree currently supports a staggering 12 platforms! Each of these platforms requires product support, maintenance, web site changes, and development. Looking at the future, more platforms are on the way. Palm is planning on releasing a version of their operating system based on Linux. Motorola is developing more and more Linux based cell phones. The iPhone, which runs a version of Mac OS X, was just released (right now there is no way for developers to create local applications for the iPhone). ACCESS is working on their ACCESS Linux Platform for mobile devices. I am pretty sure that Nokia is working on the next version of Symbian series 60. Who knows, maybe someone is even working on the ofone
For a software company to stay current in today’s mobile landscape they have to be able to move and adapt as new devices and platforms are released.
So how does a small company like Olive Tree manage to do this? Even more importantly, why is this important to BibleReader users? I can’t give too many technology secrets away, but I can share a few things that we do to make managing multiple platforms easier. Firstly, we have a common set of database files that run on 10 of the 12 platforms we support (The common database files do not run on the iPod and the BlackBerry, due to limitations on those platforms.) This makes the task of creating databases much easier since we only need to create one database. Secondly, we have a cross platform text rendering engine. The bulk of the complexity of the BibleReader is in figuring out how to display the text on the screen. This part of the BibleReader is written in such a way that it can run on almost any platform (BlackBerry and iPod are the exceptions). For example, I am currently working on being able to select hyperlinks using the 5-way arrow keys. I got this working on Windows Mobile Pocket PC. Now with very little effort I will be able to get this feature working on Palm OS, Symbian, and Smartphone. If we did not have a cross platform engine, I would have to spend days coding this feature for each platform. Finally, we have a cross platform database layer. This means that there is only one set of code for reading and searching the databases. Having code that can run on multiple platforms makes the task of moving to new platforms and supporting new platforms easier.
We have also changed our website to help users manage the complexity of the different platforms. Not all of our products work on all platforms. As new platforms come out we initially get Bibles working on that platform. Then, if there is enough interest in that platform, we start enabling more and more products for that platform. Our new website makes it easy for user to find out exactly what will run on their smartphone or PDA.
So why does this matter to BibleReader users? You may be thinking that this really doesn’t matter to you since the BibleReader works on your current smartphone or PDA. If you never get a new device, then this doesn’t matter. However, consider what will happen when you decide to renew your 2-year contract with carrier XYZ and decide to get a new smartphone. Will you continue to use the same mobile operating system that you are using today? With the numerous mobile device platforms out there it is common to switch. Maybe you will decide to try the iPhone, a Palm Treo, or a device we don’t even know about yet (ie the oFone). Will the BibleReader run on the the new device that you buy in two years? Will you be able to continue using the Olive Tree library you have built on your new smartphone? Hopefully, the answer to this question is yes. Since we have positioned our technology to more easily transfer from platform to platform we will hopefully support all major mobile device platforms. I can’t make any promises about what platforms we will support, since we do not know what the future holds. But I can tell you this, we are well positioned to move to new platforms as they arise.
Comments(0)