What went wrong dude ?
A hell lot of things :).
I thought stupidly that december would be perfect to do such thing, and in fact not.
Between the xmax parties, the general hollidays mood of relaxing, familly, etc. well.. I didn't do much and I miserably failed my own challenge to myself.
But that's not so bad, first you can learn from failures and second I'm not so keen in rushing things up.
No, that's no excuses and it's not the procrastrination that kicked back, here some analysis.
Flex, Flash and AS3 are not perfect
Not blaming the technology here, but there are obviously things missing from my point of view.
You can develop pretty fast a GUI in Flex but only if you comply to the MXML rule, meaning you stick to the MXML and the components and it's because of that whole already-in-place architecture that you can go fast, I understand why it's done like that but I don't like it and worst for what I want to do it does not fit.
From that, either my specs were too much from the start or there is a missing link in the flash production chain.
Honestly it's a little bit of both, having an application that have its GUI being able to run from anywhere you have a swf (v9) can be more complicated that it seems but still it should be possible to do it without relying to some hacks.
Main problems are Flex and Flash CS3 frameworks are incompatible, if you want to have a main source repository compiling in both you have to develop your own GUI logic, hence the code smell I got when I started to develop a little too much system.drawing classes, sorry Adobe but my goal here is just to develop a console, not a whole GUI framework.
But it's also my fault, I should have spotted this problem earlier and find another way around, right now I'm thinking of building a swf from Flex (and so sticking to only the Flex framework and components) and then load that swf as a child application either in another Flex application or a Flash swf (not ideal but should do it).
The other thing that's not doing it for me is to have a MXML as a main file, I just hate to insert actionscript code in xml nodes, and off course if you want to build a Flex application that's the only way to do it, if you use a pure AS3 file as your main file you break all the 2-frames loader of a Flex app and the SystemManager instanciation, CSS style settings etc. construction, in short the only way you have to use Flex components is to use a MXML file and that's it.
To solve that (yep it's not fully solved to my taste) I need to investigate a hell lot more some way to patch this main MXML Application (more on that later).
I'm not perfect either
The little specs from last time was made in a rush, and it basically bite me back.
I would not mind if I had planed this project just as a pet project, if the first version is shit, well I'll just do another one, and another one, and refactor till I obtain something I like and that do everything I want.
But no, I planed to build a professional application (even if it's a simple one) and I have to do it right (or try to) from the beginning.
Ok, having a Flip Effect ala OS X would be cool, but it's far from the main goal of the console application which is to provide an interactive logging window, I just spent too much time on that.
And just because of that the project drifted, that's pretty bad.
Here what I should have done (and will do as soon as I'll be back home):
prototype the application screens, work directly on the main API and use unit tests (the inverse of playing with GFX API and not testing them, it was fun though :p), use both screens and API to froze the v1 features set and start to produce already.
Note to myself:
If you plan to do serious coding never do it at your familly place, you will avoid people yelling at you because it's 3am and you're still up and you will not miss your big desk and the screen spaces, etc.


2 comments
Enjoyed reading this - have many similar thoughts myself but never think to share them. The real life inside a developer's brain!
You actually don't have to use an MXML file as your main file for a Flex project. Just create a main actionscript class which extends mx.core.Application, and you're good to go. Not many devs know this, but MXML, though useful, is optional.