Symbian Blog: Articles by Hamish Willee

Read all about it!

coresearchfw architecture description

coresearchfw context diagram

We’ve some great news for developers looking for general architecture documentation about Symbian packages or how-to guides for working with the kernel and hardware services package.

Online architecture documentation for Symbian^3

You may not have spotted it previously, but a chunk of Symbian^3 Architecture documentation was made available on the Symbian developer website in March this year. We didn’t announce it widely because early releases had limited content and some issues with its presentation. Thanks to hard work from Petri and the team at Nokia, there has been steady improvement, and the most recent release includes architectural documentation for an additional 22 packages.

The documentation consists of overviews and context diagrams for a number of packages and individual components. This material is created using tools that scrape the code line to generate automated content and then combine it with extra documentation contributed by the package owners.

At the moment the documentation is uploaded to the site as static HTML, but longer term we plan to provide it in the developer wiki and cross link it directly to the reference documentation. There is still some way to go before that can happen, but in the meantime we’d appreciate your bug reports and feedback as comments to this wiki page.

Kernel and hardware services package documentation

Thanks to the kernelhwsrv package owner and team at Nokia, we’re now able to provide a number of guides to working with the kernelhwsrv package.  The documents are stored in the Mercurial repository and can be downloaded in a zip file with the Symbian^3 code for the package. Written by members of the Symbian base team (past and present) some of the documents are legacy “how to” guides for working with the package, while others are more recent, including guides to SMP migration for drivers and user-side code. Read more »

Get RSS feeds on your wiki pages

RSS

Got RSS?

You can now display RSS feeds within your wiki pages.

You can use feeds from any source, including your blogs, twitter feeds, or even from the wiki itself ! This is very handy if you want to share newsfeeds and updates from other sites and resources. For example, we’ve used this approach to provide progress updates about the new Python book here, using the #symbianpython twitter hashtag RSS feed.

We’ve created some instructions and simple examples in the help page. Thanks to the Symbian web team for making this happen!

Success with Simplicity

I was fortunate enough to attend Forum Nokia’s “Success with Simplicity” workshop in Sydney, Australia yesterday (Tuesday 11th May). Held in Nokia’s offices, the workshop was a full day of presentations and demos about Web Runtime (WRT), the Qt programming framework and, inevitably, the benefits of Ovi, for Symbian developers.

Q&A at the end of the workshop

About 50 people came, several from other places in Australia – this is about the best attendance I’ve seen in for an Australian mobile developer event (this was an invitation only event so more may have applied). Most of the attendees were experienced mobile developers on Symbian and other platforms, coming to get a comparative overview of Qt and WRT.

The presentations themselves covered introductory material – an overview of the capabilities of Qt and WRT and information on where to go get started. The material was well delivered by the Forum Nokia speakers (Nicholas Foo, Valerie Thai, and Eileen Khoo), who answered most questions on the fly, and who remained calm in the face of occasionally misbehaving equipment and demos.

At the end there was a lively Q&A session where we went through a number of questions that had been collected on a whiteboard during the day. There was a good discussion that ranged from monetizing WRT widgets and the risks for users of malicious WRT code, to even more involvement around the topic of whether Ovi and DRM provided sufficient protection against piracy of native applications. Read more »

Lest we forget

Those who cannot remember the past are
condemned to repeat it.
  Notable Quotations from George Santayana

Forget me not!

If you used to use the Symbian Developer Network forums and FAQs, you’ll be pleased to know that we’ve just made them available on developer.symbian.org. Both the forums and knowledgebase/FAQ are provided as searchable compiled HTML Help archives. They make a wealth of material, gathered across over 10 years of Symbian C++ development, available for offline reading and searching. The knowledgebase is also available in PDF format.

If you’re targeting the huge installed based of existing S60 and UIQ devices, there’s bound to be useful information in the archives that answer your questions! Much of the material is also relevant to C++ developers targeting current versions of the Symbian platform, but we’ve not inspected the material and readers should be aware that some information may now be dated for Symbian^1 and beyond.

This release pretty much completes the migration of the content previously published on SDN. We had already transferred and updated almost every relevant article to the new wiki, where you’ll also find the Symbian Press books and booklets.

If you think we missed anything, let us know on the new forums.

Life’s pretty straight without Twisties

I hope you all liked the new wiki extensions we gave you for Christmas - image maps, calendars and beautiful print-to PDF.

This week we added two more:

  • ToggleDisplay (a.k.a “Twisties”): hide/display text behind a (configurable) toggle link
  • TreeAndMenu: Create menus and trees using a simple nested bullet syntax – the content can even be created dynamically using the DPL extension

Enjoy – there is plenty more to come!

Very very Qt

There was some big news from Qt labs this week.  I hope you didn’t miss it amongst all all the other excitement around MWC. For those with a lay interest in Symbian development, Qt is a way for developers to create easier to use applications as well as have them work across different types of phone or “phone platforms”. It means another step towards better experiences.

Firstly, the latest release of Qt, 4.6.2, includes a (beta) smart installer for Symbian.  Qt applications on Symbian-based devices will now automatically fetch the correct version of Qt (and its dependencies) if they are not already on the phone. This means that Qt applications will be as small and deployable as native Symbian C++ applications.  It’s the next best thing to having Qt built in to the phone’s ROM.

There are lots of other good things for Symbian developers in the release too, including many bug fixes and incremental enhancements.

Other big news is the release of new UI extensions for mobile on the Qt Gitorious repository. This is the first real opportunity for you to look at the code behind the new UI coming in Symbian^4 (originally introduced in the Orbit and Direct UI proposals).

Lastly, a few more APIs from the Qt Mobility project have reached beta and preview levels – check out the Qt Labs blog for more details.

Merry Christmas: Presents for the Wiki!

We’ve recently updated the wiki with more great tools:

  • Export to PDF on the wiki toolbar creates a print-ready PDF of the page content
  • Calendar allows anyone to create calendars and events. We’re using this to track Symbian Community Events.
  • Images maps allow you to specify multiple clickable regions in an image, each which take the user to a different URL. This is useful in any circumstance where you want to “drill down” to other information from an image – for example to the states of a state diagram, information about individuals in a photograph, or locations in a map.

Next year we’ll be concentrating on improving WYSIWYG editing, and lots more!

Breaking news … feeds

Tracking changes on the developer wiki just got a whole lot easier!  Now you can get RSS or atom feeds that just include the articles in the categories that you’re interested in.

For example, to track my current obsession (Qt) I can use this feed: http://developer.symbian.org/wiki/index.php/Rss?categories=Qt&feed=rss.

If I’m interested in all C++ related topics, then I can use the pipe symbol (“|”) to add other categories I want into my feed e.g.: http://developer.symbian.org/wiki/index.php/Rss?categories=Qt|Symbian_C%2B%2B|C/C%2B%2B|&feed=rss.

Unfortunately I can’t be more restrictive – for example I can’t get a feed with only those articles that are in both Chinese AND Symbian C++ categories.

The wiki help page Help:Tracking Changes has links for some feeds I think developers are likely to find useful – such as the categories for Symbian’s main programming environments (Symbian C++, Qt, Web Runtime, Python etc …) and the main natural languages of our users (currently English, Chinese, Japanese, Korean, Spanish and Russian).  The page also has information on other ways to track changes in the wiki.

Most users won’t need to bother, but if you need to restrict your feed to a particular namespace or output format, there are instructions on how to do here.

We’re going to continue to improve the useability of the wiki over the coming months and years. If you’ve got any bright ideas, come along to our Birds of a Feather discussion “Building knowledge through wiki documentation” at SEE2009 at 3pm on Tuesday 27th October.

We speak your language!

If you haven’t visited our developer wiki recently, you’ll be surprised at how much it’s grown since we launched it in April. We now have over 1,200 pages of tutorial guides, FAQs, white papers, wiki books and package pages. And if English is not your first language, you might be interested to know that we recently made it a lot easier for you to use our developer wiki in your native language. Read more »

Using Qt and Symbian C++ Together

G’day, I’m Hamish Willee.

Some of you may know me from the many years I’ve hung out on Symbian developer forums and at Symbian developer events, or perhaps through my papers on the Symbian Foundation wiki.

HamishWillee2_1

Recently I’ve been working with Qt Developer Frameworks and Symbian’s Technical Communications team to write some wiki articles about developing with Qt on the Symbian platform.  The articles are designed to help developers understand what’s so special about Qt on Symbian (a lot!), how to begin developing as quickly as possible and how to use Qt and Symbian C++ together.

The articles are available for a sneak peak (in draft form) on our wiki now!

Getting started

The first wiki article is a Quick Start guide to Qt development on the Symbian platform.

qt-logo

In the style of all our Quick Start guides, it first explains where to get the tools and how to set up a Qt development environment.  It then provides a brief tutorial showing how to create, build and run a basic Qt application using the Carbide.c++ wizards.  The application isn’t anything fancy – it’s primarily designed to validate that your development environment is set up correctly!

The Qt Quick Start is accurate for the Qt Tower Pre-release. We will update the first section for Qt 4.6 in due course, when the Qt 4.6 Technology Preview becomes the recommended environment for Symbian platform development.

We have had quite a lot of positive feedback on the document, but constructive criticism and suggestions for further improvement, left as comments on the wiki article, would be very welcome!

As a side note, Qt developers that want to use Qt Creator can take heart from the linked article Qt Creator with the Symbian platform, which Salvatore discusses on a previous blog: http://blog.symbian.org/2009/09/28/2378/.

Using Qt and Symbian C++ Together

While Qt provides a rich set of APIs and development tools, inevitably some developers are going to need functionality from the underlying platform that Qt doesn’t provide.  When this happens they are going to need to mix Qt and Symbian C++ APIs and programming idioms.

Using Qt and Symbian C++ Together shows how to do so in a cross-platform and exception-safe manner, illustrating some of the key points with the example of a Bluetooth device discovery dialog.

The wiki article explains how to interwork strings, multitasking/asynchronous behaviour, geometry, containers, images, data, etc.  Each section provides a concise overview of what you need to do on each platform (with links to the key references), followed by examples/discussion on how they are mixed. Both Qt and Symbian C++ developers should get a good overview of what they can use of their existing knowledge, and where to go to get more.

The article is functionally complete for Qt 4.6 – meaning that we think the mix of topics and level of information is about right. Note however that it has not yet been sub-edited or reviewed by domain experts, so it is still subject to change. I would appreciate your feedback on what further needs to be covered, errors, or any suggestions on how sections could be improved.

Product Overview

Qt for the Symbian Platform isn’t written yet.

I’ll be starting it in the next few days. If you follow the link you’ll see the stub page I’ve created and the current list of topics to be covered. If there is anything that you think is particularly important that isn’t listed, please comment – or feel free to start the article off yourselves!

Where do we go from here?

As mentioned above, I’ll be working on the Qt Product Overview in the coming weeks, updating the Quick Start in line with Qt 4.6 technology preview releases, and ideally responding to your feedback on the other papers.

The next step will be to look at what other papers need to be written.  I’ve got some ideas:

  1. Using Libraries on Symbian Platform (static and DLL)
  2. Qt Dialog best-practises on Mobile devices
  3. Qt for Symbian Platform Application Tutorial

If you’ve any other ideas, please let us know (you can comment here, or Contact the technical communications team). And if you want to catch me in person to talk about Qt, I’ll be at SEE 2009 later this month, and at the San Francisco Qt Developer Day in early November.