New Project: Flex Collaboration Library

I’ve been digging deeply into the dark crevices of Adobe Flash Collaboration Service (AFCS) for my session on creating collaborative components at MAX this week. One of my examples is a collaborative map so I relied heavily on the Yahoo Maps example that ships with the AFCS SDK. One of the things I like about the Yahoo Maps example is that it includes a class that extends ArrayCollection and includes some hooks for collaboration. It’s essentially a collaborative ArrayCollection, and I rewrote parts of it for my own example and have found it to be very useful across a lot of my projects.

I realized that it could lower the barrier to entry on AFCS if some of the Flex classes that people rely on a lot had “automatic” support for collaboration via AFCS. So I took the class I created based on the Yahoo Maps example and tried to make it as “drag-and-droppable” as can be for someone who wants to start using AFCS. It merges two concepts, the ArrayCollection concept, and the CollectionNode concept from AFCS. CollectionNodes let you store any piece of data on the server and let multiple people add/change/remove information from the collection. Events are fired so that any time someone changes a piece of data it can be updated across all of the connected clients.

What I’ve done with my SharedArrayCollection class is put all of that logic into a single class that extends ArrayCollection. Developers can use the SharedArrayCollection just like they would use an ArrayCollection but the difference is that the SharedArrayCollection is automatically enabled for multi-user collaboration with AFCS. The only major difference is that instead of listening for a collectionChange Event you listen for a CollectionNodeEvent.

I’m still hacking out the basics and after MAX I’ll try to provide an example use case so people can see exactly how it works. I’ve put everything up on GitHub under the Flex Collaboration Library project. I’m hoping to make the SharedArrayCollection more bullet proof and then create more AFCS-enabled Flex classes and components. Let me know if you find a bug or if you find this at all useful.

  • http://jcrist@pbking.com Jason Crist

    Smart. I’m just about to jump into some AFCS and I really like where you’re going with this. Looking forward to putting it through some paces.

  • julien

    Hi,

    Very good idea, I’ve also done a “shared map” with afcs (http://bit.ly/168hbG) and I think your flex collaboration library could be quite usefull, thanks

  • ryanstewart

    Thanks guys,

    Let me know how it goes Jason!

    =Ryan
    ryan@adobe.com

  • http://www,brandonellis.org Brandon Ellis

    Nice Ryan. :)
    I’m going to try it out tonight.

  • http://diamondtearz.org diamondTearz

    I had checked out AFCS. I almost got a chance to apply it in a project. I look forward to it getting more airplay/exposure so that people will come up w/ more projects that “need” it.