CGui Toolchain for Customised GUI Development

There exist many GUI development technologies. They come packed with various concepts and abstractions that are intended to help in composing GUIs easily. But these concepts and abstractions are very coarse grain. To achieve something fine grain with them, we have to have complicated workarounds, such as adding implementations done with procedural code like C++, Java or JavaScript. This makes the GUI implementations hard to maintain and understand.

CGui Tool Chain for GUI development

As a solution to this problem, we introduce the new declarative language ‘CGui’ that utilises low level non-linear constraints as the basis of specifying the GUI. CGui provides fine grained control over the GUI while making implementations significantly concise and simple. It comes with a sophisticated development environment that is capable of rendering an interactive preview of the GUI in real time along with dynamic and static analysis for the implementations. According to the evaluation results, CGui language along with its development environment was found to be more effective as well as productive when developing customised GUI elements compared to existing GUI technologies.

CGui modularity

CGui is supports developing a complex GUI as a set of reusable module hierarchy.

CGui IDE error detection and reporting

CGui IDE supports the GUI developers to identify issues very easily in early stages. The interactive live preview gives an immediate feedback to the developers as they make changes.

Key Features of CGui

CGui Development Process

CGui Work Flow

What is CGui Language?

What does CGui look like?

CGui Language

What is special about CGui IDE?

Cgui IDE

How powerful is CGui?

Following two GUI widgets were developed in HTML5, Java and CGui with 7 Html5 and 6 Java developers. First GUI is a working analog clock. Second one is a range slider.

Avg Lines of Code Count

CGui Compared to Java and Html5

Time Spent for the Development

CGui Compared to Java

CGui Compared to Html5

Observation

As we can see, CGui is capable of significantly improving the GUI development productivity in terms of lines of code and the time spent for the development.

Deliverable of the project