Back in the day, I was a big fan of ARP and developed my own framework based on ARP and Cairngorm at a company I worked for, which was pretty cool. But I’ve gotten a bit rusty lately. Working at Brightcove for a couple years on pre-existing apps and code kind of stagnated me a bit. So recent large apps I’ve built have gotten a bit messy. For a project I’m working on now, I definitely needed a lot more order, so started looking into this stuff again.
I’m lucky enough to work with some smart fellas – Todd Anderson, who’s done a lot of Flex and Cairngorm stuff (he’s always throwing commands into my projects), and Joe Berkovitz, who his own framework up on Adobe Developer Center.
I also got to do a bit of work with Cairngorm in Flex a few weeks ago. Unfortunately, my current project is AS3 only (well, that’s not unfortunate in itself, but it means I can’t just use Cairngorm straight up in it). But I did start replicating some aspects of it for use in the project – the Event Dispatcher, Commands and Front Controller. It definitely helps in keeping the main class simpler and less tightly coupled with the various parts of the app. The one thing that’s hard to implement, though, is the fact that Cairngorm makes heavy use of DataBinding between views and models. Since DataBinding is Flex only, I’m making my model extend EventDispatcher to be observable. But now I have two different event models in the app, which is kind of smelly.
I guess next up I’ll take a look at MVCS (or I could just walk over to Joe and ask him about it) and Pure MVC.
take a look at Lowra from Francis Bourre
http://code.google.com/p/lowra/
See you in FOTB
bests
Keith,
I’m currently in progress developing my own framework for AS3, called Independence. I’ve yet to make it public, but I’m definitely putting it up soon, because it’s entirely aimed at the strict AS3 community. Flex, while extremely useful, has left strict AS3 coding in the dust and we need an open source solution to making application development simpler and faster, and especially one that has no dependencies on outside projects or “compiler magic.”
I myself am investigating data bindings and whether or not they’re possible to implement in strict AS3. Do you know if it’s possible to bind variables outside of Flex? I’ve been trying to research this and I haven’t come up with much. I’ve even cracked open the Flex BindingUtils and ChangeWatcher classes to see what they’re doing to get true data binding.
I’ll be releasing Independence as a beta soon in a repository for the community. I’m currently working on my “net” package to make remote connections and calls much easier. Are you interested?
– TK
“Flex, while extremely useful, has left strict AS3 coding in the dust and we need an open source solution to making application development simpler and faster, and especially one that has no dependencies on outside projects or compiler magic.”
AMEN!!!!
been saying that forever. 🙂
I’ve been working on my own framework for the last year. This is used and heavily tested on big projects (Canon, Pioneer, Sony Ericsson). At this moment I’m finishing an experience website for Volkswagen which include an updated version of the framework. As soon as this website is online I will release the framework as an opensource project.
I will keep you posted.
so true, SO true 🙂
Check out this guy. He is doing some very interesting work at http://www.spicefactory.org
It would be interested to check out your framework. Please keep me in the loop.
I would definitely recommend lowRA too. I’ve been using it for a few years now, for all of my projects ( used to use pixlib, the as2 version ). It’s an incredibly powerful framework, backed up with a really friendly community of coders.
I’ve got a bindable model implementation as part of my Bumpslide Library. It allows you to bind to properties in a specific ModelLocator-like class that extends my BindableModel. Then, in your view (or mediator) you can write code like:
model.bind( ‘sectionId’, this); // calls setter of same name
model.bind( ‘sectionId’, myViewStack, ‘selectedId’); // binds to property/setter in view
model.bind( ‘sectionId’, this, onSectionChanged ); // custom callback function
No flex dependencies and released under the MIT License.
see http://bumpslide.googlecode.com/
I started working with pure MVC, but to creating an application that load external swf within the main swf was problematic, ( due to the external swf not being subscribe to the framework mediators at initialization etc… ) The multi core pure MVC is suppose to fix that as every swf would/can have there own pure MVC core, and the communication happens through a “pipe” system. Apparently its great when you learn and know all about it, but I feel that there could be a more simple solution than having “duplicates” of main core and pipes. I love the simplicity of the underlying system of the pure MVC with the Notification, and the Mediators though. But the pipes and multicore i don’t know, i wich there was a more minimalistic approach…
Haven’t tried it myself but heard good things about this one:
http://www.gaiaflashframework.com/
Keith
Look forward to your take on PureMVC. More and more I see the value of implementing a common framework in collaborative programming environments. And there are versions of PureMVC that support, PHP, Ruby, Perl, Java, C#, Python, Coldfusion, and Actionscript 2 and 3.
I’d second Gaia. Just working on a site with it now and it seems pretty good so far.
The model-view-controller framework flashMVC is a system I constructed to quickly and efficiently build small to large scale applications and with the second requirement of easily re-factoring currently built classes into flashMVC without any major modifications. Check it out and leave feedback!
http://www.jadbox.com/flashmvc/
Keith, I think PureMVC is an incredible framework. It has completely turned my coding process around, providing so much stability and flexibility with my projects. I just think the extensibility provided by its MVC approach also lends itself well to the updates and changes so often needed on big projects. Definitely my first choice at this stage and it helps a lot that it is ported all over the show. You can really streamline your workflow from one language to another.
MVC is a Design Pattern not a framework
Actually to be more accurate, MVC isn’t a design pattern at all, but rather a ‘meta’ or compound pattern composed of 3 different design patterns, Strategy, Observer and Composite.
Hey Keith, here are a couple of good frameworks:
– lowRa ( using it for some times and even if the advanced features aren’t not fully finish ( like loading plugins at runtime using IOC ) this framework is damn good.
– Vegas and its “plugins”
– Indigo
All 3 are on google code. The last 2 are Flash/Flex/Air compatible.
++
Hey Keith !
For people interested by LowRA, I’d like to say that we’ll publish a RC version of the framework at the end of this month (for FOTB event).
If you was familiar with Cairngorm or Arp, you won’t have any difficulties to adopt the basics. If you want to go further, you’ll appreciate injection of containers, new event model, logging, runtime plugins, channel communication beetween objects, beacons systems for robust framerate (with kairos extension), audio and video handling, tweening, and so on…
Hey 🙂
By using LowRA and developing many project with it ( and have test Cairngorm ), what i can say , it’s that you can develop a lot of different application with it , doing full flash site , little part of coding in flash designer code , link some work with remoting , do your own need too. In all case i had take the decision to not use it in a project because it’s a “too small one”, i have lose time. So now i use it every time and take time to improve it.
I search all time new framework , new idear for flash developing , and many time i have see that people have done good framework for there need. But i don’t use the framework just look at it, because all these need are in LowRA. I don’t speak about 3D , particle etc , but architect and easy coding way process …
Have fun !
Liked PixLib before and tried to use LowRA a few times but it just is not there yet unfortunately. If someone completes it then would be my pick to use all the time though.
LowRa && Pixlib are awesome! Francis rocks!! 🙂