Developing Series 60 Applications: A Guide for Symbian OS C++ Developers: A Guide for Symbian OS C++ Developers

Series 60 1.x is based on Symbian OS 6.1 (with some Nokia modifications), whereas Series 60 2.x is based on Symbian OS 7.0s. Some features in Series 60 2.x come from enhancements to Symbian OS and others come from Series 60 Platform enhancements ”the origins of the changes are summarized below.

Symbian OS version 6.1 and 7.0s differences

Series 60 1.x and 2.x Differences

The changes in Series 60 from 1.x to 2.x are summarized here. Many of the platform and Operating System changes will have no effect on developers, but others will ”compatibility issues are discussed next .

Compatibility Issues

Series 60 Platform 2.x incorporates significant changes due to enhancements in the underlying Symbian OS; others are due to enhancements in Series 60 Platform itself. New features, such as multimode telephony and a Multi Media Framework, available in Symbian OS 7.0s, have required the introduction of new APIs and modification of some existing ones. Where possible, compatibility has been maintained between Series 60 Platform 2.x and earlier implementations , but, unfortunately , this has not been possible in all cases. A great deal of effort has been put into maintaining compatibility across the versions. Symbian OS 7.0s implements a number of enhancements to existing (6.1) features, as well as completely new functionality that has no equivalent in the earlier version (for example, IPv6 addressing). In the same way, Series 60 2.x implements new and improved features such as UI themes that have no equivalent in Series 60 1.x. It is therefore possible that a small number of applications built on Series 60 1.x will either fail to build or may exhibit unexpected behavior on Series 60 2.x.

From the developer's point of view, therefore, there are two main issues: application source code compatibility and application binary compatibility.

Note that in either case, backward compatibility may not be achievable, especially where the implemented features rely on functionality of the newer OS.

In many cases, [forward] compatibility has been maintained by implementing wrapper functions around newer functionality (deprecating the older functions), so that older source code will build/execute without modification. However, where this type of feature could not be implemented, a compatibility break will occur, this is generally manifested by a difference between the library a component was linked against, and the DLL against which the component is being run. In this situation, all client code using this DLL service must be amended; thus, source code compatibility is no guarantee of eventual binary compatibility in these areas.

When designing your application it is advisable to keep the following points in mind:

The following are known areas where binary compatibility breaks can or do occur:

Compatibility Summary

Series 60 Platform 2.x has evolved to improve platform functionality and employ the latest mobile technologies. As with any evolution, a consequence of the progression is that some APIs published in earlier releases are now obsolete.

To develop applications for cross-platform release while maximizing the potential of each requires careful consideration. Given that this (in)compatibility situation exists, the developer has two real choices:

More detailed information on the differences between version 6.1 and 7.0s of Symbian OS can be obtained from the Symbian Web site ”see http://www.symbian.com/technology/whitepapers.html.

For detailed coverage of compatibility between Series 60 Platform 2.0 and previous versions, search the Forum Nokia Web site (http://www.forum.nokia.com) for a document entitled "Series 60 Platform 2.0: Compatibility Issues."

Additionally, see the Series 60 2.x SDK documentation and search for "Deprecated List" ”a list of classes and methods that either no longer exist (very rare) or are not recommended for future use, typically because they have been replaced with better alternatives.

Категории