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 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
New intuitive constraint based declarative language for GUI specification.
** Develop the GUI by simply declaring the relationships of the GUI elements in plain text.
*** Use reactive relationship extensions to specify custom relationships between GUI elements.
** Modularisation of the GUI into smaller reusable sub components.
Integrated Development Environment with,
** Interactive real-time preview of the GUI that is under development.
** Static and dynamic analysis of the GUI specification.
Cross platform code generation and MVVM like binding support for the developed GUI.
Light weight platform specific CGui runtime libraries that consistently render the GUI accross platforms
CGui Development Process
What is CGui Language?
CGui is a language invented for the CGui tool chain in order to minimize the shortcomings of existing GUI development technologies.
It is a very simple declarative language that can be used to specify structure, layout, behavior and styles of highly customized GUIs in a modular form targeting multiple platforms.
CGui exploits the power of one way constraints to specify relationships between the properties of the GUIs.
What does CGui look like?
What is special about CGui IDE?
CGui IDE provide all necessary support to develop GUIs in CGui.
CGui IDE shows a live preview of the GUI that is under development. It reflects each and every modification you do to the GUI in real time. This enables to debug the GUIs as well as to experiment with the GUI.
CGui IDE has code generators to generate platform specific code for the developed GUI. These code generators are pluggable to expand the number of supported target platforms.
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
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
CGui Language, a powerful declarative language to develop highly customized responsive GUIs in a modular form without dealing with low level implementation details.
CGui IDE, an IDE that provides full support for GUI development in CGui language with the facility of live previewing the GUI that is being developed.
CGui Code Generators, an extensible set of code generators that can generate readable platform specific code, as a module that can communicate with the application logic using bidirectional binding, for the GUIs developed in CGui language.
CGui Runtime Libraries, a set of libraries that each one is specific to a single target platform that has the capability of supporting event handling and rendering a consistent GUI across platforms.
Constraint solving algorithm, Fast one-way constraint solving algorithm that can deal with cycles and supports inequalities.
CGui Extension Functions, a set of reactive functions that can be used to specify the behavior of a GUI.