The focus behind the Declarative Graphics Framework (Degrafa) is to bring the graphics classes up a level to provide a common ground between developer and designer within Flex, and enable the graphics classes to become first class citizens within the Flex framework.
There are many goals we want to achieve by developing Degrafa. One is eliminating the learning requirements for ActionScript in order to use the framework. There is a learning curve for a designer, or a programmer who is new to graphic development in ActionScript, which can cause a slow down in production levels.
By abstracting the graphics classes and bringing them closer to a dialect that most programmers or designers understand (MXML), regardless of background. This allows for a much easier transition.
In addition, we hope to combine high reuse and productivity (functions/algorithms/overrides) possibilities to allow both a designer and developer to interactively experiment and experience new avenues that couldn’t otherwise be easily explored, understood or discovered.
Of course for adoption to be successful the abstraction needs to be readable. Although SVG is a tight format and grammar, it does not readily lend itself to readability. Thus a more verbose mark-up is required, which is why MXML is used for a more transparent transition.
MXML provides an excellent abstraction for both designers and developers. Easy to learn, easy to read, and most programming aspects that would otherwise confuse issues during cross communication are hidden. Binding is a natural expectation of MXML, so reuse of certain framework products can easily be had. There can be less code and more productivity.
Another important goal is that of optimization. Various tactics, including reuse wherever possible, use of overrides and binding are being integrated wherever possible. There are many opportunities to create something once and make small adjustments versus recreating a very similar object for every new instance.
Even with all the attention to creating an easier, more understandable method of creating graphics in Flex, there will be a need to integrate a supporting set of visual tools to rapidly create graphics. Our hopes are to develop these tools as Degrafa evolves as a framework.
With all these features we’ve assigned as goals, it is hard for us not to imagine all the possibilities of this framework. Whether for UI development, skinning, graphically dependant applications, rapid development or light weight widgets, Degrafa could be used in a variety of ways. Hopefully, we’ll be able to make it everything we think it can be and more.