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.

Soma

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

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.

Have a try and give me your feedback, the Soma forums are available here.

Vote in HexoSearch
4 Responses to “Soma AS3 MVC framework automated”
  1. Thomas says:

    Can you give site URL you build with SOMA ?

  2. Romuald says:

    They are not live yet. The three biggest are on the way, one of them is a hudge multi-language site. I’ll post the URLs when they will be live if the clients allow me to.

  3. Gil says:

    You are not the first person to release their own MVC implementation for AS3. I’m always curious about people like you. Why do you chose to build your own MVC framework as opposed to just using PureMVC? IOW, what do you not like about PMVC that spurred this? Or are you just one of those people who likes to build everything from scratch just because you can?

  4. Romuald says:

    That’s a good question, pureMVC is a very powerful framework but Soma has absolutely nothing to do with it.

    1. Soma has only one target: Actionscript and Flash website, pureMVC is not (only) actionscript or Flash. The “model” MVC is everywhere and probably each framework has its own strength, otherwise people like me wouldn’t need to build their own tool. As you said, I’m not the first one.
    2. Soma automate tasks, pureMVC does not, pureMVC is a “pure” framework without any specific purpose.
    3. Soma is generated, pureMVC is not

    I built Soma to work for me, to handle common development I need in every site I build, such as deep-linking, loading, page manager, content, assets, loader, menu, structure, styles, templates, transitions, etc… Those are all internally built in Soma, centralized and ready to use.

    PureMVC is not doing that at all, it is far too specific. Using pureMVC I would have to rebuilt all these things all over again, or if well built one time, copy and re-use in another. Well, this is what Soma is, I just choose not to use pureMVC.

    What I could do is build Soma upon PureMVC to serve my purpose, instead I built it upon Cairngorm as I prefer a Flash framework that is using Flash events (that’s not the only reason but it is one). PureMVC does not use events, that’s why it is portable. Soma is sharing more things with Cairngorm. Soma could have been built on any other MVC (or not MVC) framework. Example of an internal page command:

    new PageEvent(PageEvent.SHOW_PAGE, “myPage”).dispatch();

    This is a Cairngorm syntax and Cairngorm user will be very fine with Soma and probably happy to find something similar for Flash.

    I don’t blame you for the question, you don’t have much to see yet. I’m building a site demo to show what Soma is doing. It will all make sense and you will understand that Soma is an MVC framework but not only an MVC framework and does a lot more things.

    As I said, I’m not entering in a “MVC framework fight”, I’m not interested in building the “purest” and “more portable” MVC framework; There are better one then Soma for that. Soma has its own purpose and then you can’t really compare it to another.

    Well I could give dozens more reasons but it is probably better to use the forum for that.

Leave a Reply