Until the release of Symbian OS 7 software development was highly reliant on
Microsoft tools across the entire development lifecycle from OS to third party
applications. Alternative tools are now becoming available and in this first of
a two part article we take a look at the offerings from Metrowerks.
When Psion redeveloped their SIBO operating system and created EPOC, the
core of the current Symbian OS, in 1997, they chose Microsoft Visual C++ as
their primary development tool (although ARM tools are now also used for
some hardware work). At the time this choice was made because of Visual
C++’s powerful debugger but over time it has become something of a
hindrance to Symbian, for two reasons.
The first reason is fairly obvious. Microsoft is a direct competitor to Symbian
with the Pocket PC Phone Edition and Smartphone 2002 versions of the
Windows operating system. So using Microsoft tools in the device creation
process opens the opportunity for Microsoft to interact with Symbian
Licensees more than Symbian would like.
The second reason is not apparent unless you have undertaken development
for Symbian in Java or C++. The process of developing an application using
the Microsoft tools, or a Java IDE, required the developer to switch between
the IDE, emulator and the command prompt to write, test, debug and
package the application. While it is not a difficult process to learn it was time
consuming and, as with any command line process, tended to be tedious
particularly when debugging on the device.
It was almost certainly with these issues in mind that Symbian approached
Metrowerks to discuss building an alternative tool to support OS, device and
third party development.
The first products resulting from this work appeared this year. CodeWarrior
Development Tools for Symbian OS Professional Edition, Version 1 provides
for C++ and PersonalJava development on OS version 7. It is currently
available bundled with the Beta UIQ SDK for the SonyEricsson P800 through
Ericsson Mobility World. This tool is prices at $995 and requires basic
support to be purchased at $500 per year from Ericsson. While the tool can be
purchased without an SDK, as there are no stand-alone version 7 SDKs
available at the moment it is not a practical purchase.
Two other tools are available CodeWarrior Wireless Studio, Nokia 9200
Communicator Series Edition, V1 (which includes the 9200 series SDK) and
CodeWarrior Development Tools for Symbian OS with PersonalJava
Technology, V1 (which does not include the SDK), both of which are targeted
at development for the 9210/9290. Both tools are available for $99.
None of the Symbian tools includes the Java RAD features. With the Wireless
Studio products this is because of its price. While the absence of the RAD tool
from the Professional Edition reflects that tools long term focus on native C++
development.
Each version integrates the development with all the tools to code, compile,
test and debug the applications being driven from CodeWarrior. However
some command line work is still needed to define program icons and build
installation files with only the resource compiler and AIF (application
information file) tool in the current versions. Symbian are developing plug-
ins to address these holes and CodeWarrior Professional V2 is expected to
include support for building resource files, creating icon bitmaps, editing AIF
files, and creating installation packages (SIS files). Support for the menu
builder and help files may come in a later release.
In addition to the integration of the main Symbian development tools
CodeWarrior offers the developer several other advantages over competitive
IDEs. It has the capability to allow development for a range of languages,
target operating systems or embedded processor families within the one tool.
This meaning there is no need to learn a different UI when embracing new
technologies. This consistency is also preserved across the range of operating
systems that CodeWarrior runs on, including Windows, Macintosh, Solaris or
Unix (although a limitation of the Symbian Emulators is that it only runs on
Windows). CodeWarrior is also extensible with the ability to plug in
additional tools for specific development tasks, which in addition to the
Symbian tools already mentioned, includes integration with Source Code
management tools such as Rational ClearCase or Microsoft Visual SourceSafe.
CodeWarrior organizes work in terms of projects that are created from
predefined stationery. This stationery includes all the information required to
define the tools and procedures to compile, link, debug and run the software
being developed. The Symbian tool includes basic stationary for Java and
C++ development. In addition when a specific SDK is selected from those
installed SDK specific target parameters are set up. This gets a developer new
to Symbian up and running faster because they don’t have to spend time
configuring their tools.
For C++ projects which were started in Visual C++ there is also an import
feature that brings in existing C++ makmake files. The importer
automatically configures the internal source path and library dependencies
within the project, eliminating the need to configuration the project manually.
The CodeWarrior IDE is very powerful. The editor includes functionality
such as key word highlighting, the ability to check for balanced punctuation
and powerful search and replace. A visual compare feature allows both code
and directories to be checked for changes. It has tools to identify and strip
dead code as well as optimize code.
For Java developers, who are likely to be undertaking cross platform
development, the full version of CodeWarrior Wireless Studio, Metrowerk’s
flagship wireless J2ME toolsuite is the tool of choice. It supports development
in PersonalJava, J2ME and J2SE and so covers both Symbian’s current
PersonalJava implementations as well as future J2ME developments.
Wireless Studio gives the developer access host of Java goodies. These
include a RAD (Rapid Application Development) tool that allows screens to
be defined visually and underlying code easily accessed with the component
editor. There is also an obfuscater, a tool that replaced meaningful variable
names with shorter meaningless names in the final code (providing some
protection from reverse engineering) that, importantly for Wireless
developers, can also result in more compact code. Wireless Studio can be
used for development on the Nokia 9200 series communicators now and will
fully support the SonyEricsson P800 when the final SDK arrives.
As you would expect the Metrowerks Symbian tools are under active
development. The next version of the Symbian tool, parts of which were
previewed at the Developer Expo in April, is due out late August 2002. The
two significant advances for the next release are the inclusion of Metro TRK
(Target Reference Kernel), pronounced Metroterk, that will allow on-device
debugging to be performed inside the CodeWarrior graphical debugger. This
will be a significant improvement in the debugging functionality which
currently can only be performed via GDB, a command-line tool. Debugging
will be possible across both Serial and TCP/IP links. The other main area is in
descriptor support which D’Arcy Salsman Metrowerks Product Manager for
Wireless Software Development Tools noted as “the single biggest complaint
I have heard from developers working with Symbian". In collaboration with
Symbian Metrowerks has addressed this complaint in the next version with
what D'Arcy describes as "pretty generous feature set".
The future roadmap for Symbian support within CodeWarrior sees three
main variants of the tools:
Pre-Platform tools, which include a “stop-mode” debug tool that allows
bugs in the operating system kernel to be traced
Platform tools which are low-level board-aware tools with the TRK
debugger, for those who want to get the OS running on a hardware board,
build device drivers to talk to input and output devices and basically build
a hardware device.
Post Platform or ISV tools with application level debugging.
The Platform tools are expected to be available before the end of the year
possibly coinciding with the release of Symbian OS V8, code-named
Jetstream. In fact the next version of the OS will have been built entirely with
the CodeWarrior toolset.
The recent announcement to integrate the Beatnik audio engine into the
CodeWarrior for Symbian tools, possible in version 2, also hints at another
area where the Symbian tools are likely to be developed.
One interesting area for Symbian tools is the Nokia Series 60. With the
exception of the Java tool for the Nokia 9200 series, the Metrowerks tools have
been built to move forward with the OS from version 7. However Series 60 is
built on Version 6 and there do not appear to be any significant moves by
Nokia to transition to V7 in the short term. This creates an issue for Nokia
(and Symbian) as V6 uses the Microsoft toolchain and the prolonged life of V6
in Series 60 also prolongs the exposure of Series 60 licensees to Microsoft. I
understand that this will be addressed by a new range of Metrowerks tools,
for both platform and ISV development of the Series 60, due later in the year.
I’ve also heard via the grapevine that Nokia are using the CodeWarrior tools
for Version 7 but it is unclear whether this is for a replacement of the current
9200 series, which several sources have reported as being actively underway,
or other new devices. It could be both considering Nokia has previously
stated that by 2004 half their G3 phones will be based on the Symbian OS.
Next week we take a hands on look at the CodeWarrior Symbian tool by
building a simple Java application. In the meanwhile you can get more
information on the Symbian CodeWarrior tools on Metrowerks web site at
www.metrowerks.com.
About the "WDN Symbian Guy" Richard Bloor:
Richard Bloor has 16 years experience in the IT industry. His earlier
work was largely in design and development of commercial and
manufacturing systems but more recently has focused on
development and test management of government systems.
Richard Bloor is the Mobile Applications champion at System
Architecture consultancy Equinox of Wellington, New Zealand.