|
Want an application which runs on Series 60, UIQ and Microsoft Pocket PC, but only one source code? Impossible? Not according to Peroon.
While the availability of several competing operating systems for mobile and wireless devices is undoubtedly beneficial as the competition created ensures the best value for the end user, it is something of a dilemma for the developer. Getting the maximum audience for an application means maintaining multiple sets of code to target specific operating system's, even multiple sets for specific devices. The mobile developer's nirvana is a single set of source code to target all the major platforms. Java clearly addresses a large portion of this problem but relies on a virtual machine which means that performance will always lag behind that of native applications. Java is also restrictive on the platform features it can access. There are other solutions, such as AppForge Crossfire which employs a similar technique using Visual Basic as the source language.
For C++ developer's however there has been no choice but to create multiple versions of their application, at least until now.
In 2000 Dan Amir and Anatoly Kardash identified what they thought may be a solution to this problem. After considering both the technical and financial practicalities of the problem Dan and Anatoly formed Peroon.
"At that time we identified four key platforms, Psion, a rapidly emerging Microsoft, Palm and Linux," says Anatoly, Peroon's CTO. "Even then Palm was almost obsolete, a single thread, single process operating system not truly capable of providing the resources for modern applications. Linux was clearly going to find a use in mobile devices but the market was not clear. So we were left with Symbian and Microsoft and these were the platforms we started with." Having decided on the platforms they would initially implement their technology for, the next decision was what to use as the base source code, or which operating system to port to. The natural commercial candidate in 2000 was Microsoft but this was potentially the most problematic place to start. "Starting with a Microsoft base and porting it to Symbian was technologically too difficult," says Anatoly. "The Microsoft operating system has a messy API which is not well organized and the Pocket PC version was not really designed of constrained devices, certainly not devices as constrained as those on which Symbian OS could run." As a result the Symbian code became the source and all other operating systems would be the target. "Once we had made that decision it took us only a few months to create our initial product which ported Symbian code to Microsoft, and we were on our way," says Anatoly.
Peroon now has two tools E2W and S2S. E2W is the current implementation of the Symbian to Microsoft porting tool while S2S is a Symbian porting tool which takes Series 60 code and ports it to UIQ. Peroon is also evaluating the addition of a tool to port from Palm and have "several more products under development" according to Dan, who is now Peroon's Managing Director.
The code technology on which all Peroon's products are based is called DIMA. In the E2W implementation DIMA essentially translates Symbian APIs to the Microsoft equivalent. "Our technology is not a virtual machine which runs on Pocket PC to simulate the behavior of Symbian," says Anatoly. "It is a layer built into the application and this layer maps the functionality of the Symbian API to the Windows C APIs. We call it a direct mapping technology." Anatoly gave the simple example of a Symbian OS RFile::Open() being mapped to Microsoft CreateFile(). "While most cases are straightforward we had to do a lot of work to find ways to implement Symbian OS features such as active objects and the client server framework, and UI, of course," says Anatoly. The other important features of the technology Peroon claims is that it almost never causes performance issues in the ported code. "I don't believe there is a single case where performance has degraded due to porting," says Anatoly. The technology does add to the source code size but this is very dependant on the application being ported, with as little as 50Kb being added, although with more complex applications the addition of 350Kb plus is possible. The other important feature is that because the mapping is at the API each application retains the native look and feel. "If a programmer implements a list control in Symbian it will look like the Symbian list control and in Windows like the Windows list control," says Anatoly. "For the user the application will behave and in everyway seem like a native Pocket PC application, the users will not know it was originally developed on Symbian."
Also because the technology maps APIs when the application is compiled it means the developer can create a single application package for release, there are no additional components to install on the target device, just a small DLL to include in the install.
The S2S product operates in a similar way, although in this case many of the APIs are identical, and the active object and client server framework are common. So in the S2S product much of the effort is dedicated to mapping the S60 UI to UIQ's. "Series 60 has a command button array (CBA) toolbar at the bottom of its screen and a tab group like function for switching views. UIQ has the same functions except the menu is at the top of the screen and icons at the bottom to switch between views," says Anatoly. "In S2S when the developer has defined a CBA we map it to menu bars of UIQ, when they use a tab group in Series 60 we map it to icons for UIQ. So if the developer uses standard APIs in creating a Series 60 application S2S will create a UIQ application with the correct UIQ look and feel."
Anatoly is the first to admit that Peroon's technology does not eliminate all the work in porting an application. "If the developer has used absolute screen co-ordinates then moving from the 176 x 208 pixel Series 60 screen to the 204 x 320 pixel UIQ screen yields inappropriate results," says Anatoly. "So in these cases the developer may need to employ #ifdef to create Series 60 or UIQ specific code to make the application compatible with both interfaces, but the important goal is that only one piece of source code is required and most of it can be used unchanged." S2S is similar to E2W and requires some additional headers and libraries for UIQ.
Currently Peroon only makes E2W and S2S available through its porting service, essentially a customer delivers Series 60 source code and Peroon returns a Windows or UIQ port of the application. One of Peroon's customers is Intuwave. Its CEO Ariel Gorfung is clearly impressed with what Peroon's technology can do. Intuwave is working in an emerging market and needs to experiment with and validate its technology on various platforms. "While we are building technology for Symbian OS there are cases where potential customers have insisted that we show them that the technology works on Microsoft devices. Without Peroon's E2W technology this would be a major exercise, one to which we would have allocated significant resources. But with E2W we were able, in a very short time, to take our Symbian code, get it running on Microsoft and prove the technology to our customers." Ariel sees Peroon as tackling a very significant problem. He has also recommended Peroon to a number of ISV's who were struggling with the wave of new Symbian devices coming to market but, Ariel believes, they have found Peroon's technology allows them to address this problem by porting applications quickly and efficiently.
This however is likely to change; Dan suggested that later this year that some of Peroon's technologies would be available as products.
While S2S and E2W are not yet available to third party developers Peroon has made a number of small utilities available to the Symbian community. "Peroon is very much dedicated to Symbian, we like the company and its management. We think the technology is great and wanted to contribute something to help the Symbian community grow and we believe these utilities solve a couple of common issues for Symbian developers."
As Peroon are currently using the S2S and E2W technologies for porting client applications it is difficult to judge how efficient and effective they are. However they hold promise and certainly could revolutionize much of the work of wireless and mobile software developers if they can truly deliver a single source solution for addressing multiple Symbian OS platforms as well as competing platforms such as Windows Mobile, Palm and Linux. The capabilities of S2S and E2W should be of singular interest to Symbian or Symbian's licensees. Back at 3GSM in 2003 Nokia and Sony Ericsson announced that they would be co-operating to ensure that developers could easily port between Series 60 and UIQ, Peroon's technology could be just what they need to effectively deliver on that promise. |