Rapid Symbian Application Development Environment
Agia was jumping through hoops in a
poster session of the 3rd Agile Software
Development Seminar on 29 September 2005.
"Thanks again for the great tutorial at the CeBIT, it was definitely one of my highlights at this year's CeBIT!" - FG, Berlin
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:
- Graphical development tool and code generator that runs on a
workstation. The tool can be used as part of the developerís tool
chain (editors, compilers and integrated environments).
- Application framework that resides as a dynamic library in the target device (or in emulator file system). Each created Agia application is a specialisation of the framework. In addition, the framework offers an intuitive and consistent interface to its 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:
- Application GUI is created with Agia tool. User can focus on the
application logic without needing to bother with mundane GUI
- Agia generates GUI C++ code and the Symbian project files.
- User writes application logic and GUI functionality (event handlers). Since Agia outputs "standard" Symbian SDK project files, the user can develop in the environment of her choice. Besides the Symbian API, the developer can utilise the services provided by Agia framework.
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!