Soma AS3 MVC framework automated

| 3 min read

After months working on my own framework and successfully using in small to large projects, I'm happy to give you access to SomaUI and Soma.

As a quick description, Soma is a MVC (Model-View-Controller) framework and SomaUI is a tool to generate the base of a Flash site in AS3, based on Soma (available for windows, mac and linux).

First of all, I'd like to thanks Juan. He has shown very early his interest in Soma and has helped me to get started on the java part: SomaUI, it really was a great help. I'd like to thanks Luis from Less Rain, he has given me invaluable advice on the flash part: Soma, and I'm sure it will continue. We had great nice and long conversations. I'd also like to thanks CVSDude for the help and support.


An important thing to understand is, I'm not entering in the "framework fight" of the best one and the best OOP practice. Soma is not at all a competitor to PureMVC, which is not even restricted to a language, or any other framework. Soma is a result of a personal need, no more no less, and I built it my way. I wanted it quick, easy, invisible and as much as I could, well-written. I wish to share it hoping it will help some of you.

I like to call Soma an invisible framework, as you can fully use the MVC way even used in its internal building, or completely avoid it and build your site your way. The framework is built to centralize events and managers that are handling common actions in a flash site, like loading, content manager, page manager, deep-linking, transitions, and so on. The framework will handle most of those redundant and annoying development and give a body (or a skeleton) to work with.

Soma is very XML-based and use a reference to a XML site definition almost all the time. The structure, content, assets and assets behaviors are stored in this XML site definition. You can use Soma for any "page-based" site. Soma is only managers and "empty layers" meaning you can use it with any kind of design.

Soma can be used in a lot of different ways, so I won't go further for now. I'll write other detailed tutorials about Soma and its XML.


SomaUI is a software available for Windows, Mac and Linux. Its main purpose is to generate the base of an AS3 site, ready to be used for further development, for Flash Player 9 or 10 and for Flash or Flex SDK developer.

To use SomaUI, you'll need at least a Flex SDK version 3.1 (even if you are a Flash developer), you can download it here. You'll also need at least a java runtime environment version 5 (JRE 1.5). The JRE is usually already available on your computer but if it is not the case, you can download or update it here.

SomaUI makes you able to create a project, choose specific settings such as name, package, flash player version, and so on. You will write the xml definition of your site or load a template and finally, export it (source files, files needed to deploy it on a server and Flash files if you set the option "Flash Developer").

To avoid annoyance with security sandbox, I suggest you export your site in a local server, you can use Wamp or Xampp for WIndows, Mamp for Mac and I suppose Apache is already installed in most of the Linux distribution.

You'll be able to generate a good base to work with in seconds if you use a template... A getting-started is available in html or pdf.

Important: SomaUI is a beta software, SomaUI does not scan or scaffold your project. For testing purpose, if you export again your project in the same folder, any file will be overwritten without warning. The scan/scaffold is a feature that will come in a further release.

Get the source

You can find the last versions on the SomaUI page in the downloads section. A soma demo site with more functionalities is available on the SVN if you want to see further before I write tutorials.