Flex
Yesterday Steve and I pushed through some updates to our SWFAddress module to support the new version 2.1 of the SWFAddress library and also changed it to use the new SWFObject 2.0 library. SWFAddress 2.1 brings a new and improved SEO script which works very well with Drupal. We've also fulfilled our one feature request and added support for percentage height and width for the Flash embed instead of just pixel dimensions.
With these updates we have green-lighted a stable release of our module, calling it version 1.1. We are currently working on an awesome new project in stealth mode that will be using what we're going to call version 2.x of the SWFAddress module which will support not only search engine optimized full Flash site support but also full AJAX site support too! We are super excited about this and can't wait to tell you all about it!
So if you're looking for a way to do super powerful content managed Flash, Flex, or AJAX sites, watch this space for some exciting news to come and start checking out the SWFAddress module for Drupal!
Today was Steve's and my presentation on how to build content-managed Flash sites using Drupal. I'd just like to say thanks to everyone who came out and for the great questions. We've posted our slides as a PDF up on the session page at the DrupalCon Boston site and you can download them here as well.
Both Brian and I are at DrupalCon 2008 in Boston this week. We will be giving our presentation about content-managed Flash and Flex sites with Drupal tomorrow night at 4:45 PM, but we’re both going to focus far more on the Drupal side of things and touch briefly on the ActionScript and Flash, so that even Flash and Flex neophytes will understand the entire backend, setup, and use cases.
If you would like to learn more about how to use the Flash / Flex stack, however, you have two options to get training from Developer Community Champions that we should mention.
It's official, Steve's and my presentation titled "Druplash and Druplex: Content-Managed Flash and Flex sites powered by Drupal" has been accepted at DrupalCon Boston 2008. We'll be presenting on strategies to create easy-to-maintain Flash and Flex sites which degrade nicely for iPhone and mobile users and maximum search engine friendliness using the Drupal content management framework.
The presentation will contain an overview of historical problems with 100% Flash websites, how with a variety of popular free toolsets most of these problems can now be overcome, different ways to get dynamic data into Flash and Flex, how the Web Services layer of Drupal makes it really easy to get data into Flash and Flex, and show some demo sites we've been producing.
Steve and I are both really excited to be heading off to our first DrupalCon and to even be presenting there!
There are a lot of really great tutorials out on Drupal.org and Adobe's sites which describe methods for using Flex with Drupal through Services and AMFPHP. (For a list of some tutorials, I'll post references at the bottom of the post) Remoting in Flex is super easy with the <mx:RemoteObject> but the one thing I noticed with all of the tutorials is that they all describe just one way of using RemoteObjects and Methods to get data from Drupal.
Imagine, if you will, that you have built a super awesome Drupal site heavily using the Views module. Now you want to tap into all of that data to create a Flex application, whether it's a new Druplex front-end for your entire site or maybe just a simple management tool.
Tonight, Steven Merrill and I committed and released our first beta version of SWFAddress.module for Drupal 5.x. We demo'd an early alpha version at DrupalCampWI a few weeks ago and Steve has been hard at work shoring it up for release.
Steve and I came up with the concept for Druplash and Druplex (what we call Drupal powered Flash and Flex sites) about a year ago and have just been toying with them ever since. We recently got ourselves in gear when Steve needed to build a new portfolio (link coming soon) for his future career as an opera singer.
Using the great SWFObject and SWFAddress javascript libraries and the Services and AMFPHP Modules for Drupal, we figured out how to build full Flash and Flex experience sites which degrade nicely to full HTML underneath for SEO.
AMFPHP is a great way to get data from Drupal via the AMFPHP module (or other PHP web apps) into Flash with a minimum of processing overhead.
As of two days ago, Adobe has announced that they will open-source their BlazeDS (formerly Adobe LiveCycle Data Services ES) server, as well as the complete specification for AMF (PDF link).
I'm impressed with the number of things that Adobe is open-sourcing as of late. This strategy is winning them the minds of multimedia developers, and it may end up with their domination of the web and desktop spaces as Flex and AIR roll onwards. I, for one, welcome our new Adobe overlords.
Yaniv Golan has an interesting post on his blog about the Flex demo he saw at FOWA. His arguement is that he doesn't get how Flex can be useful when it locks people down to a single "platform" (though as he admits, Flash is pretty ubiqutous). He counters with saying that with ASP.NET one could create applications that run the same as Flex apps that publish to XHTML, CSS, and Javascript.
He doesn't mention that in that scenario we're really just swapping a proprietary front-end for a proprietary back-end. ASP.NET servers need IIS (read: Windows). Flex can run on any server and in any browser provided the end-user has Flash (9).
His main point, however, is interesting. What is the benefit of Flex vs. its main look-alike, the open source OpenLaszlo? This is something I've debated with myself and others over and the only major benefits I can see either way are going to come down to end-user target platform and development nicities.
Flex has Flex Builder 2 with a drag-and-drop GUI that can handle just about all of the basic GUI construction and theming that any designer/developer team could need. OpenLaszlo (right now, anyway) doesn't have this that I'm aware of. OpenLaszlo publishes to Flash 7 and now with their Legals release, to DHTML (XHTML, CSS, and Javascript) and they have announced support for Sun Microsystem's Orbit platform, which will let them publish to J2ME (Mobile content anyone?). Flex will publish to Flash 9 and Apollo.
Both are aimed at making web applications. Web applications function completely different than the standard website and in most cases need to defy the web's "page" structure. So if web applications are going to break the functionality of the web browser paradigm anyway, does it matter anymore if they are deployed in Flash or DHTML (AJAX, XHTML+Javascript, what have you)? My gut says no, but in dealing with clients who often demand pixel perfect consistency, it might be easier to deploy in Flash...an environment that has always looked the same cross-browser and cross-platform.
Google has recently unveiled their new Google Apps Premier Edition for offices and there has been a lot of buzz around it. Will web applications replace desktop applications? Is the "fat client" useless?
It's an interesting idea, and as a web application developer, it could mean huge things for me. I don't think, however, that we're going to see web applications really take over and completely replace hard-drive installed desktop applications. I think there are some applications which could exist just fine run completely as web apps, but I think there are a lot of applications which have the potential or will become hybrids which exist accessibly both "virtually" over the web and also on your desktop.
Convergence is the what I'd like to see. A seemless transition between the desktop office computer and my cellular web PDA or my microlaptop. While efforts like Google's take the pipedream of an integrated virtual office and make it a reality; their apps, outside of Gmail, really aren't available anywhere but on a conventional computer.
This is where I think platforms like Flex/Apollo and OpenLaszlo/Orbit are going to shine. Minor differences aside, Flex/Apollo and OpenLaszlo/Orbit are essentially the same and I wouldn't be surprised if eventually their formats become interchangable. Flex/Apollo will allow us to push to the desktop quickly and also straight to the web as well. There's the same sort of convergence that Google Apps is providing. OpenLaszlo has partnered with Sun's Orbit to push to J2ME, which most cellphones (especially the beefier PDAs and smartphones) can handle, not to mention that if you're careful, some Laszlo projects are running in FlashLite 2, as well.
With such platform independence, these systems are going to open up myriad possibilities for convergence applications.
So while I think Google Apps Premier Edition (or even just Google Apps) looks great and might stand a chance at challenging long-time desktop alternatives like Microsoft Office; I think that ultimately, Google hasn't gone far enough to make these processes truly convergent.
I've played around some with Flex since the Flex Builder 2 beta came out for Mac a few months back and I am very excited. I've also created some Flash applications (meant to be run on the desktop not in the browser) which connected to a MySQL database via some PHP scripts. What I'm curious about is this:
Flex needs everything to be in some form of XML in order to run (as far as I know, anyway) which means that I'd need to either write scripts or use the XML-RPC PEAR libraries to get my database data into an appropriate format.
This is essentially the same process for Flash, though there are other options such as serializing the data and sending it in this way.
How do you get your data into Flash/Flex and do you think using Flex for projects which aren't tying into already established web services is a bad approach?
