alpha version, October 2000
The X.Soft brand new SDK for Epoc operating environment aims to bring to Epoc at least partially the charm and the flexibility of the OpenStep (aka Cocoa, today) development environment. Currently, it is in a very preliminary version--just like this documentation.
On the other hand, although in an early alpha stage, and lacking some important services, it already allows you to build Epoc executables in a number of operating systems and in a way portable into any other one, using three different programming languages (four if you count the plain C), and in a considerably more programmer-friendly environment and with a considerably better API than the Symbian SDK offers.
The Symbian Epoc operating environment offers unique user friendliness, great operating system services and stability, and a wide base of software--nothing can be fairly compared:
Though, while the Epoc has the edge more or less from any viewpoint, there is one thing it seriously lacks: a decent, programmer-friendly development kit. Not that other mobile solutions have any, but the Epoc, being so much better in other ways, would deserve it.
No offence meant, but the current kit from Symbian is not programmer-friendly by far. Developer must learn by heart many technicialities they should not need be aware of, unless they do some serious system-level programming. The GUI is made by an awkward way ideed, using something like a special programming language (the resource files, with their own strange syntax). Besides, the standard SDK heavily depends on the windoze and on the Microsoft Developer Studio in particular: even in a short time had the Symbian guys a great opportunity to regret this particularly uh, not wise, decision deeply, changing the support for incompatible versions 5 and 6!
The XSdk aims to offer a great developer environment without these problems. Its main features are:
The XSdk comes in two flavours:
Needless to say that the XSdk projects are independent of the flavour, and are fully portable between all environments where the XSdk is available: you can make your project, say, in a Windows NT in your work, and easily take it home and continue working on it in your Linux. Then you switch jobs for a decent one, where Macs are used: you take the very same XSdk project with you to the Mac OS X, and continue developing it there.
Beside the GUI/command line one, there is just another viewpoint, from which the XSdk has two faces:
In the following paragraph the general tasks and the standard services of the XSdk are described.
The very first thing you have to do with the XSdk is to prepare a XSdk project. It is not utterly different from the standard Symbian SDK project: it is a folder, containing the source and header files, and a special file which contains the information of the project itself. There are some differences, though:
There are two ways how to prepare a XSdk project: either you can import a Symbian SDK one, or you can make a new project exploiting the rich set of templates, built in the XSdk system.
How to import a Symbian SDK project describes the steps needed to convert a standard Symbian SDK project to an XSdk one. Normally, it is as easy as calling one menu option in ProjectBuilder (or one command line tool in Linux).
Similarly, you can convert a XSdk project to a standard Symbian one. There is one kind of situation when you might want to do so: the XSdk cannot prepare the "emulator" (or WINS) executables--the reason being in the stupidity of the C++ language, which was never designed for easy interfacing: to make the portable GNU C++ to produce a code linkable with the MSVC-produced libraries proved virtually impossible.
The combination of project templates, assistants and visual tools allows you to prepare a project in no time flat--compared with the many different and, I regret to write, generally badly documented templates in the Symbian SDK, which you must find, copy and update yourself at that. The XSdk-made project will be tailored to your needs instead, and will allow easy adding of application-specific services. Have a look at the following manuals:
XSdk Assistant system shows the general services and usage of the XSdk assitant and template system; all the following particular tools make use of it.
How to make an application describes the application assistant, and all the relevant inspectors, which allow you to specify the application type, capabilities and icon, application menu and shortcuts and others application parts, using a nice set of visual tools. Inside you will find also the references to the view system and the document system, both of them based on the appropriate classes in the Symbian SDK, but ways more convenient and intuitive.
Quite soon, there will be other documents about "How to make an executable, a loadable bundle, a framework", and "How to add a subproject". Since in the alpha version the appropriate assitants and services are trivial, there is currently a little to be documented: just do so, and use the quite simple generated files. So far, though, the only relevant document is the generic project inspector description.
Once you have the project prepared--either importing it from a Symbian SDK project, or creating it through the Assistant system--you need to maintain it and build the application.
Maintaining a project describes the main steps in keeping the project up to date: adding or removing source files, changing the project attributes, preparing the public set of headers for a library or framework, etc.
How to rebuild the project describes the steps and settings needed to build the project, and where all the generated files and the released executables are placed.
Should the project happen not to work as supposed, you might need to debug it. The XSdk Debugging help page describes how to do that.
Finally, you have prepared the release, and now you need to put it into a Psion machine to test it, and/or prepare a package to be released to public.
These tasks are described in the XSdk Installation document.
The following paragraphs describe the services of the XSdk Extended API.
Of course, the C++ will never cease to be supported by the XSdk--if for no other reason so that the Symbian SDK projects are importable and buildable in the XSdk.
The Epoc standard libraries offer moderate services, but the particular API is terrible and not really object-oriented. Besides, there are many very basic services you just can't find there (like the hashed table). Thence, the XSdk offers a rich set of libraries, which try to be as much easy to use and as much object-clean as in the C++ possible. Being based on the OpenStep standard, the libraries can potentially bring to the Epoc even an engine portability (due to the grave differences between desktop and portable systems, there would be no sense in trying to ensure a user interface portability).
Naturally, as soon as the Objective C is available, the standard GNUStep luxury libraries will be used.
The libraries are available in the form of frameworks, which embed all the library-related junk (like the DLL itself, the interface LIBs, the headers, the documentation, and much more) into one easily controlled package.
Copyright © 1999-2000 X.soft, all rights reserved