Agia

Rapid Symbian Application Development Environment

Agility

Agia was jumping through hoops in a poster session of the 3rd Agile Software Development Seminar on 29 September 2005.

Ack

Thank you to everyone who stopped by to see Agia in action in CeBIT 2005!

"Thanks again for the great tutorial at the CeBIT, it was definitely one of my highlights at this year's CeBIT!" - FG, Berlin

Motivation

Development of native C++ Symbian applications often feels unnecessarily difficult. Especially the development of graphical user interfaces is laborious, error-prone and requires specific expertise. In order to alleviate the problem, Agia offers a solution that consists of two parts:

Features

Agia tool has an easy-to-use graphical user interface builder. A GUI of each Agia application consists of at least one view group containing at least one view. In terms of GUI construction, a view group contains common functionality for its views while each view represents a different state of application. Application can contain multiple view groups that create a view group hierarchy. A view group can contain arbitrary number of views and a view can be shared between different view groups. Combined with Agiaís overridable delegation mechanism the views and view groups provide the developer with an intuitive and flexible way of constructing structural GUI that reflects the different states of the application.

Agia raises the abstraction level of application event handling by introducing actions, events and event handlers, all of which are visible in Agia tool.

Generated C++ code is separated from user code, thus making it possible to regenerate code whenever needed. In other words, Agia supports incremental development and facilitates rapid prototyping.

The flexible plugin architecture of Agia tool makes it easy for developer to incorporate new widgets to tool and code generation mechanism. In addition, the developer must wrap his/her user interface controls as widgets that Agia framework understands. This process is very straightforward and helpful wrapper classes are provided.

The graphical user interface for Agia tool is implemented using Standard Widget Toolkit. In addition to enhancing the tool visuals (as shown in screenshots below) the choice opens interesting paths for the future development. For example, Agia could be plugged into Eclipse.

Developing with Agia

Agia development process for Nokia Series 60 application consist of the following steps:

At any time user can refine the GUI with Agia and regenerate the corresponding files.

Since Agia tool integrates Symbian SDK tool chain, it is possible to build (and even deploy to target device) a mock-up application that looks like a finished product, but may lack parts of the application logic. This feature is extremely useful for demonstration and rapid prototyping purposes. It is even possible to create GUI demonstration application without writing a single line of code!

With Agia, what you mean is what you get!





VTT 15 Nov 2005