Social Platforms Follow Patterns, Too!
Objected oriented patterns have perks. Luckily I don't need to evangelize this to most of the audience. When you can take a concept and execute it in a matter of moments it makes brainstorming and iteration so much more potent.
Getting applications up on social network sites (SNS) is on everybody's mind. How do you get an app up there and how do you make it viral enough to get your message out there? It's an important question to ask yourself. Beyond the implementation of an app are you adding anything to the site's user experience?
We were approached by MSN Games with interest in making two of their most popular games available on social network sites for users all over the web - not just their user base on games.msn.com. They hand us two games that we know are winners and we help them transition them to the social network space. This is the kind of end-to-end experience we provide all of our customers.
The social network space is a constantly evolving thing. The platforms, the user attitudes, the technologies are all in flux. That's where proven object oriented methodologies come in. We implemented a very common pattern for our social apps: the Model-View-Controller. This proven separation helped us rapidly launch the games for Facebook - even while major platform changes were taking place.
When Facebook decided to change the implementation of an FBML control we simply update our templates in the View. If they changed the Facebook REST API we could quickly adapt our Model to load the new information into our user objects. Our controllers covered a few surfaces, from the game play in Flash to web page input on the canvas or profile pages.
This quick adaption helped us build and debug the apps with minimum time lost to refactoring. Of course the platform is quickly evolving as users respond to privacy changes, new profile layouts, boxes, tabs, invites... It's almost never ending. That's why it was important for us to abstract our logic and data from our layout. We'd simply build up new features to easily integrate into Facebook's new platform.
These new features ensure that we provide our customers with all the integration and exposure that's available and gives users the best experience when playing and sharing the games. When users can truly express themselves to their friends using your application they've become social.