SomaCore AS3 MVC framework on Github

| 1 min read

I've decided to put my framework SomaCore on Github.

SomaCore is a lightweight event-based MVC framework written in AS3 that provides a structure, models, views management and commands. Somacore can be used for Flash, Flex and AIR projects.

SomaCore does not use any external library and does not use dependency injection.

SomaCore is completely event-based and use a concept of wires to code in an efficient decoupled way.

Framework http://github.com/soundstep/somacore_framework
Demos http://github.com/soundstep/somacore_demos
Plugins http://github.com/soundstep/somacore_plugins
Blog Page (with demos) http://www.soundstep.com/blog/downloads/somacore/
Video tutorial http://www.soundstep.com/blog/source/somacore/tutorials/getting-started/
Documentation http://www.soundstep.com/blog/source/somacore/docs/

A very handy capability of the framework among others is the way you can monitor the flow of your application. SomaCore is using the the flash model to monitor commands and even intercept them in a way so that any actionscript developer will feel at home. Example in a wire class to listen and intercept a command:

// listen to a command
addEventListener(MyEvent.DO_SOMETHING, commandHandler);
// remove a listener
removeEventListener(MyEvent.DO_SOMETHING, commandHandler);

private function commandHandler(event:MyEvent):void {
// intercept (if the event is cancelable)
e.preventDefault();
}

Click here to see one of the demo code to get started.

Some other things to know about the framework

  • Commands are normal built-in Flash events with the bubbles property set to true.
  • Commands can be used in the views as they are not really framework code.
  • Parallel and sequence commands are built-in.
  • Wires are the glue of the frameworks elements (models, commands, views, wires) and can be used the way you wish, as proxy/mediators or managers.
  • Wires can manage one class or multiple classes.
  • Wires and commands access to all the framework elements (stage, framework instance, wires, models, views and commands).
  • Plugins can be created for the framework (such as the SomaDebugger plugin).
  • Powerful flow control using the built-in flash event model.

Here is how to get started with github: http://help.github.com/