Thursday, September 17, 2009

Start my Flex Blog

It's been a few months that I have dived into the Adobe Flex coding. Really, when people said "Flex" is a framework itself and why do you need to put another framework on top of that to do the job?

It really makes me thinking.

Recently, I had a chance to prepare a presentation talking about software engineering fundamental, it really helped me to see this issue from the "fundamental" perspective.

Roughly, we can say software are built from Language, then APIs then Framework, then (Software) Platform. Software design patterns are then among those.

So, what is Flex? In my view, it's based on ActionScript language and API and built. It's a framework and it's a platform to provide developers a chance to implement the Flash GUI interface without learning about the time line and movie/motion stuffs in the Adobe Flash.

Like I have been using Java and Spring Framework to development. In addition, I still need to build a patterns for our teammates to follow so another "framework" is needed for us to be able to find the others' implementation and understand how to fix the issues quicker.

As far as I can see, Flex (framework) doesn't encourage that by default. It gives you a lot of flexibility to do your magic (like C++ or Java API?), including the Flex (Flash) Builder to build the view components. Then it makes you put all your business logic related to that view (MXML) into one huge file. In a way, it's prone to fail in a big project with very complex business logic behind the view(s).

In my mind, using other frameworks/patterns to assist the Flex (Flash) coding is a must. And it is no doubt that a lot of people (mostly from Java background like me) are doing or searching just the "right one" to use. I am sure this atmosphere of "free frameworks soups" will come to a more consolidated era latter on. Nevertheless, it's so amazing to be in the middle of "changes" as of today (09/19/2009).

So there are Cairngorm, PureMVC, Mate, Swiz, Spring ActionScripts, Parsley and more. Which one will eventually win? Is there anything also vastly important other than just "MVC" in the RIA design realm?

As of now, the "other things" in my mind are "Module/RSL?", "State/View management" and good IOC...

Learning Flex and working on Flex is fun and advantageous. I have a lot more to learn and share.

So stay tune...