Introducing the OpenFlux Component Framework

OpenFlux is now officially open-sourced and available at http://openflux.googlecode.com/. If you haven’t heard of it yet, I’ve included some information below. Please try it out, join the mailing list, and let me know what you think!

What is OpenFlux?

OpenFlux is an open-source Flex component framework which allows developers to create radically new and custom Flex components. It’s based on the work seen in Ely Greenfield’s Flex Roadmap session (courtesy of João Fernandes) and is inspired by design patterns found in WPF/Silverlight, as well as example code available from Sho Kuwamoto. I certainly can’t say that it’s going to be exactly the same as what you might expect from future versions of Flex, but it’ll be a step in the right direction for your projects today. If you’re not familiar with those links, here are a few descriptions which apply just as well.

OpenFlux is an MVC Component Framework. Each component in OpenFlux is comprised of three core parts which work together to define the API (Model), graphics (View), and behavior (Controller) of a component. At first glance I’m sure this seems like it may be overkill for creating a component, and it does add a little bit of complexity. However, there is a huge advantage in that you can very quickly and easily add entirely custom graphics and/or behavior to a component without having to worry about rewriting or breaking the existing pieces.

OpenFlux is a set of Components. It includes completely new Buttons, Lists, and ScrollBars in the first release. By mixing and matching the views, controllers, interfaces, layouts, animations and utilities provided in OpenFlux you can create nearly any Button, ScrollBar, or List imaginable including Checkboxes, RadioButtons, TileLists, CircleLists, and more.

OpenFlux is an Advanced Layout and Animation API. It introduces a new layout system for lists and related components. We’re working very hard to make sure that this system is entirely extensible and shows at least as much thought as what went into the core framework. Watch out for some really interesting list examples soon.

OpenFlux is Degrafa’s Best Friend. Wondering how you’re going to make all those cool custom views for your OpenFlux components? Yup, these two were so meant for eachother that OpenFlux comes with Degrafa baked in. Consider yourself fully empowered to make people call you a bold-faced lier when you tell them it really is a Flex app. This is way beyond styling, way beyond skinning, it’s like we stole it from some future version of Flex or something.

Why OpenFlux?

The real purpose of OpenFlux is to be customized and used in your projects. Using a viewless component system means that you can create dramatically new and interesting components quickly and easily, without having to worry about breaking the other parts of the component. Ever spent days hacking away at the Accordian, TabNavigator, or List components? Me too, that’s why I built this. The answer isn’t to make everything protected, it’s to have a better component model!

14 Responses to “Introducing the OpenFlux Component Framework”

  1. Lordy says:

    MVC components Degrafa!
    Where do you find the time man!

  2. Tom says:

    Ben,

    Great job! I saw your session in Atlanta, you guys are really forging ahead.

    Are you going to be posting any samples soon that show us the power of OpenFlux, perhaps some of the demos from 360, even if ViewSource is not enabled, I think it would inspire people to delve deeper.

    - Tom

  3. Allow me to repeat myself: this stuff is badass. I can’t tell you how cool it was to see that someone had gone ahead done what I had been thinking about but was too lazy to actually do. Shiznit is tight and I really hope to find some time to play with it soon. Nice work man, nice work.

  4. Boubalou says:

    Hey Ben,

    I tried your project over Google code and couldnt get it to compile.

    Since there is inclusion of the compiled lib in the sample project, I had to compile it myself and couldnt get it to work with degrafa.

    The degrafa namespace doesnt resolve even if I include it in my libs folder within the library project created in Flex builder 3.

    Any hint you can give me on how to make it work?

    Thanks,
    Boubalou

  5. Maz says:

    Waoh… I saw Ely’s presentation and I was far from imagining it could be done on top of the current framework. Well done ben, the list layouts are amazing !

    Hope there will be a time where we will look back with nostalgy at our invalidateDisplayLists, or commitProperties

    Thanks

    {Maz}

  6. Ben says:

    Hi guys, thanks for the kind words!

    Tom, examples will definitely be posted as we continue to develop the framework. You can expect some of the ones you saw at 360 Flex to be out soon.

    Boubalou, the problem may be that I’ve been using http://www.degrafa.com/2008 as my namespace, and I think the swc namespace is compiled as http://www.degrafa.com/2007. So that was probably my fault. However, you may still want to connect to the active development branch of Degrafa because some examples may depend on the new features being developed.

  7. Boubalou says:

    Nice, thanks Ben.

    I got it to work following your advice. I was also missing the namespace URL and manifest.xml within the Flex Builder options of the library project type.

    This is some nifty stuff right there, thanks for doing this!

  8. Dirk Stevens says:

    Ben and team,

    This is awesome!

    = Dirk

  9. Ben Throop says:

    Ben … I have never been so excited about lists. Thanks for your work on this… I hope to contribute back somewhere along the way.

  10. [...] of you have heard about Ben Stucki’s latest project called OpenFlux. If not, check out the blog entry Ben wrote introducing it or listen to the latest The Flex Show episode discussing [...]

  11. John Farrar says:

    We need a FlexMeetup group to echo Charlie and Ray’s CF group.

  12. [...] OpenFlux Component Framework [...]