So, I have a fairly large-scale flash application that I want to build.
In fact, it’s the whole reason I’ve been learning all this web application development stuff. It’s the reason I stopped freelancing as BoyBlack over a year ago, and took on a fulltime job at Hello Computer – so that I could get paid to implement all the research I’ve been doing, in a realistic fashion, one manageable project at a time. It’s also the reason why I recently negotiated to reduce my working hours to two days a week – so that I can start building the next version of my application.
But now that I’m ready to sit down and build this thing I’m faced with a couple of tough decisions:
- IDE: FDT or Flex Builder?
- PHP Framework: CodeIgniter or Zend Framework?
- Remoting: AMFPHP or WebOrb? Or just go JSON
I tried out FDT – which has some really awesome features, but which I feel is slightly over-priced for a tool that doesn’t support Flex development very well (no WYSIWYG editor, and lame MXML support). Don’t get me wrong, it’s a great piece of software for ActionScript development, but my gut tells me that for that kind of investment it’s probably wiser to go with the official Adobe IDE: Flex Builder.
At the same time, Flex Builder feels quite primitive and is mildly frustrating for someone used to the magical features, time saving templates, and bad-ass code hinting offered by FlashDevelop and FDT.
On that note, please vote for the Template issue over at the Flex Bug And Issue Management System.
The PHP Framework
I’m a bit of a fan of CodeIgniter. Installation and configuration is quick and easy, the framework is light-weight, and the documentation is great. I’ve built a couple of small websites with it, and combined it with ExtJS to produce a simple CMS for Hello Computer to help speed up development time and provide clients with a user-friendly website management tool. I’ve had no hassles with it, except..
Integrating CodeIgniter with AMF Remoting seems to be a pain. The documents and tutorials I have found on the subject show it to be possible but rather messy. I have a gut feeling that integration with the Zend Framework might be easier. Even if there isn’t an out-of-the-box solution right now, I believe that one is more likely to come from the Zend Framework community than the CodeIgniter community.
For Flash websites that aren’t very data intensive, I like to send data to Flash using JSON. PHP 5.2 supports JSON natively, so it’s really easy to spit data out in this format. Unfortunately, the system I’m currently building deals with lots of data – it’s quite “chatty”, so to speak, so the data transport layer needs to be fast and lightweight. Remoting allows for binary communication between a Flash client and a server, substantially reducing bandwidth for large datasets.
–EDIT: this is indeed the case. See Wade’s comment below.
This post is mostly just a personal marker on my project’s timeline, but if you read through it, and have any experience with the options above, I’d love to hear your thoughts. Thanks!