<Download Gugga Flash Framework>

Wednesday, September 20, 2006

Why a new Flash Framework?

Flash as a technology besides its obvious benefits and capabilities posses greater then other technologies challenges related to work flow , separation of code and design , development environment, process, maintenance, extensibility and reusability of concepts and code.
Most of the developers working with flash and creating web sites do not use OO programming and design patterns.90% of them are single developers not teams and they consider this an overhead. The methodology and approach used in other technologies are not applied in Flash only in Flex and other frameworks that are build around creating applications not web sites in Flash.
Let's look at the available options for building OO, extensible , maintainable flash based web sites. There are a number of frameworks most of which focus on applications(Flex, Cairngorn, ARP). At the same time most of the web sites build using Flash are multi page web sites. Someone can argue that application frameworks can be used to build sites but in fact the requirements are so different that this is yet to be proved that is has an economic value to it.
Let's add to this mixture one more critical element, the creative one.Each web site strived to be very unique in terms of look, feel and interactions.

So a flash developer/team is under gun to create a unique look and feel, very highly interactive, performing, web site under tight deadline. Add to that you want to be able to reuse your code, concepts, architecture. Implement the site in a way that a year from now you can still read and extend your code and the requirements just hit the sealing. If this is not enough, you as a developer do not have the proper development environment, debugging and testing tools and frameworks.Or is it so ...Off course we will not address all these issues in one article but we will start taking care of those one by one.

We are not going to list all problems related to developing web sites with Flash but to quote Jesse Warden from one of his posts there are 4 key problem with Flash Development:
# Deadline - all projects are under tight dealdline which imposes requirements for how quickly can you pull a project
# Creative - you cannot pose any creative restrictions upfront to the designers and IA
# Bandwidth - you must employee as little as possible resources
# Maintainability - you have to be able to extend every web site you have ever build no matter how much time it went by and make it quick

Let's add to that list a bit more spice and what we want to be able to do with Flash from a Software Development Perspective:
# write in OO manner in Flash
# use Design Patterns in Flash
# create maintainable, extensible data aware multi tier web sites in Flash

I believe we owe you one more definition and an explanation, why do we think we have a framework and the best explanation we found is in one of the famous Design Paterns Books:
"A framework is a set of cooperating classes that make up a reusable design for a specific class of software... You customize a framework to a particular application by creating application-specific subclasses of abstract classes from the framework.

The framework dictates the architecture of your application. It will define the overall structure, its partitioning into classes and objects, the key responsibilities thereof, how the classes and objects collaborate, and the thread of control. A framework predefines these design parameters so that you, the application designer/implementer, can concentrate on the specifics of your application. The framework captures the design decisions that are common to its application domain. Frameworks thus emphasize design reuse over code reuse, though a framework will usually include concrete subclasses you can put to work immediately...

Not only can you build applications faster as a result, but the applications have similar structures. They are easier to maintain, and they seem more consistent to their users. On the other hand, you lose some creative freedom, since many design decisions have been made for you...

Frameworks are becoming increasingly common and important. They are the way that object-oriented systems achieve the most reuse. Larger object-oriented applications will end up consisting of layers of frameworks that cooperate with each other. Most of the design and code in the application will come from or be influenced by the frameworks it uses."

We could not put it better not only in terms of what we are expecting of a framework but what we actually are offering and we can only encourage you to explore Gugga Flash Framework. I'm sure it has room to be extended and improved but we believe there is a very good foundation proved to work in a large number of real work projects.

7 Comments:

Jason Taylor said...

Wow, great work so far, please keep the info coming!

5:14 PM  
Anonymous said...

Can I use MTASC to compile it?

7:31 AM  
sotirov said...

Yes you can. In fact we use Eclipse, FDT and MTASC for our development.
Drop us a note if you would be interested in an article on how to do that.

12:29 AM  
g10 said...

nice framework!

but have some question:
why is mx.events.EventDispatcher altered, but still with the same name and same package… this gives errors !
better would be to put it in the gugga package (or com.gugga) so to not interfere with the core library

5:11 AM  
sotirov said...

The answer to this question is here :
href="http://groups.google.com/group/guggaff/browse_thread/thread/808bb3404e5770e2/13fa5fcc7cc61474#13fa5fcc7cc61474

6:27 AM  
Anonymous said...

Just catching up with the framework at this point. Would be interesting to hear details on the Page Pattern and how a 'website' oriented framework aligns priorities differently than an app oriented framework.

3:49 AM  
sotirov said...

Then I encourage you to join the Google group and post your questions there

4:29 AM  

Post a Comment

Links to this post:

Create a Link

<< Home