by Jenny Carless
Adobe recently invited developers to enter the Adobe Flex Developer Derby for a chance to showcase their skills and win great prizes. The results are in, the winners have been notified, and the prizes have been sent out. Now it's time to introduce the contestants and their winning applications. (Note: to view the applications, you must download Flash Player 9.)
But first let's discuss motivation. While some contestants created applications they personally wanted, others were just curious about Flex. One of the final six had never used Flex before, and others are long-time members of the Macromedia and Adobe developer community. One entrant just really wanted that TV....
"We were really pleased with the number – and quality – of entries," said Matt Chotin, Flex product manager. "It's been great to see the variety of cool, creative applications everyone developed."
Regardless of the motivating factors or level of experience, the winning entries represent the high level of talent and creativity within the Flex developer community.
Product configurators/Self-service guided applications
Winner: Nahuel Foronda (Blue Instant), Home Locator
Figure 1: Home Locator
Home Locator (Fig. 1) is an intuitive real-estate searching application. Users click a U.S. map to search by area; they can then filter the results by price, number of bedrooms or bathrooms, and other criteria. The application shows detailed information for each property, and the actual location is plotted on a map (thanks to integration with Yahoo! Maps), all in one screen. Nahuel Foronda developed it out of the frustration he experienced house-hunting last year.
Two of the most important parts of Adobe Flex 2 for Foronda were the Flex Framework and Flex Builder. "Flex 2 helped us speed up development by offering a robust set of components, such as the data grid and layout managers," he explained. "Flex Builder’s ColdFusion extensions were also important because we were able to use the wizards to create ActionScript classes and ColdFusion components based on our database schema."
He also appreciated some of the differences between Flex 1.5 and Flex 2. "Flash Player’s improved performance makes the application really responsive, and the lack of server compilation makes development and deployment much simpler," he commented. "In addition, ColdFusion and Flex connectivity, which allowed us to class-map ActionScript and ColdFusion objects, made our lives easier when transferring data from the server to the client and vice versa."
Flex Builder was also an important difference. "For those of us who use Eclipse every day, it was a natural transition to use Flex Builder, since we can still use all the plug-ins that we usually use for development in other languages, such as version control plug-ins and CFEclipse," Foronda said. "Flex Builder’s features, such as the debugging perspective, also helped us tremendously during development."
Components and gadgets
Winner: Kevin Kazmierczak (Citynet), SQLAdmin
Figure 2: SQLAdmin
Kevin Kazmierczak's SQLAdmin (Fig. 2) is an online version of a query analyzer for Microsoft SQL Server. Its features include a graphical execution plan, syntax highlighting, live table editing, tabbed query windows, and an object browser.
"Often when you have a hosted environment with a lot of databases sitting on a server, you can't interact directly with a database using software on your machine; you have to use the host's web interface," Kazmierczak explained. "My tool can replace that interface. It mimics a client-side program and makes working with those databases more comfortable; people can use it in a format they're more familiar with."
His main goal in developing the query analyzer was to learn Flex. "I've been a ColdFusion developer for a long time. I'd heard of Flex but never paid attention to it just because the pricing model was kind of out of our picture," he said. "But when I learned that there was a free version with Flex 2, I decided to check it out."
Kazmierczak was most impressed with the Flex Builder tool. "One of the best features is that you can draw out the UI – by dragging and dropping all the text boxes, tabs, etc.," he explained. "In other environments, you have to do the programming, compile it, and then look at the finished product later. With Flex, you can see what you're creating while you're working on it; that really simplifies the process."
"Flex takes care of the tedious processes – the steps that might be harder in other languages or programming environments," said Kazmierczak. "Because it's easier to do those things, I was able to spend a lot more time working on features — the cooler stuff."
While motivated by personal interest, Kazmierczak's experience has intrigued his company. "Flex 2 is definitely something we're going to look at using in the future," he said.
Category: Data dashboards
Winner: Rich Tretola (EverythingFlex.com), StatPods
Figure 3: StatPods
StatPods (Fig. 3) is a dashboard for the visualization of activity on a website, including data such as visits, page views, session tracking, and browser/platform properties information. It allows for multiple days or months of datasets to be loaded for comparison views.
Rich Tretola began experimenting with the Flex Charting components in Flex 1.5, and then decided to develop the full application using Flex 2 when he heard about the Derby. He's been working with Flex 2 since the alpha release.
"StatPods consists of many components," he explained. "I wrote it with Flex 2 beta 3, using a Cairngorm 2 framework and ColdFusion MX7 for data retrieval as well as PDF, FlashPaper, and Excel data exports." In building the application, I took advantage of several new Flex 2 features, including state management, print views, and effects."
Although he's an Internet applications developer by day, Tretola created StatPods on his own time for personal interest. "But my manager wants to use it now, so I'll have to negotiate that with him," he said, smiling.
Winner: Amit Gupta (Consultant), E41ST
Figure 4: E41ST
Amit Gupta had never used Flex (or any other former Macromedia product) before entering the Derby — which just shows how badly he wanted to win the 42-inch Samsung plasma TV and Microsoft Xbox 360.
"I'd never done Flash development before; I didn't even know that Flex existed," he confessed. "In my mind, Flash was more of a creative platform."
"I saw a demo on a webcast, and within five minutes the guy had dragged and dropped things and made something very cool, so I was intrigued," he recalled.
E41ST (Fig. 4) is a mashup between Amazon.com and the public library system that aims to provide an integrated interface wherein book enthusiasts can get an enriched browsing experience based on Amazon.com content, but at the same time have the ability to look up a selected book's availability in their library seamlessly. "As a book lover, I've always wanted this feature," Gupta explained.
"Without Flex 2.0, my alternative would have been a purely server-side implementation. But the Amazon web services API, for example, has a rule saying you shouldn't string more than one API call per second per IP address. So if I were to do a server-side implementation, all calls from all users would be going from my server, which would break the Amazon rule," he explained. "And Flex 2.0 let me do this. Each user's call to Amazon goes directly from his or her browser."
"I could have implemented something like this using Ajax, but it doesn't have any UI features," he added. "So either I'd have had to stick with plain old HTML as a UI — which is not as user friendly — or I'd have to use DHTML and then go back and test the application across browsers and modify accordingly."
Gupta also highlights the speed of development. "Anything else would have required me to do a lot more work," he said. "And the user's experience would have been less pleasing."
Winner: Tim McLeod and Kevin Harris (n-tara, Inc.), Lesson Builder
Figure 5: Lesson Builder
The Lesson Builder tool (Fig. 5) created by Tim McLeod and Kevin Harris enables a group of content editors to collaborate asynchronously in the creation of Flash based training modules. In particular, it allows any worker to assemble and create web-ready rich-media content and, with the click of a button, put it in a format that a production team can easily post to the web.
"The idea came from an experience we had developing rich-media online content (lessons) for a customer," explained McLeod. "Through that process, we realized that there was a better way than the one we were using."
"The general idea is to give one person (who doesn't have to be technically proficient) the control to assemble all the content — from scripts to video animation and any other parts — in one place and make it look great," he continued. "Writers, animators, and others can go in and work on their individual parts at their convenience, and then one person can pull it all together and prepare it to be sent to the web team."
"We liked having things organized and object-oriented in Flex 2. Building components in a reusable way really streamlines development," added Harris. "We typically use Flash for RIA development at n-tara, but Flex forces you to be a little more disciplined about the way you structure applications."
Speed was another plus. "We could always build the same type of application using Flash — and traditionally that's what we've done," he continued. "But Flex allows us to do it much faster."
Category: Just freakin’ cool (a.k.a. Wild card)
Winner: Darron Schall (Consultant), FC64
Figure 6: FC64
The FC64 (Fig. 6) is a re-creation of the Commodore 64 system entirely within the Flash Player, developed by Darron Schall with help from Claus Wahlers. The original hardware, from the keyboard to the display to the CPU, has been re-created in software to allow the Flash Player to be used just like an original Commodore 64.
Schall's intent in developing this application was to profile the speed advantages of ActionScript 3. "Because it's just-in-time compiled, I wanted to see how fast it really was," he explained. "In college, I've written three emulators, so with that background, I thought an emulator would be a true test of performance."
He discovered that ActionScript 3 was fast — and so was Flex 2. In fact, the speed and ease of development were the two things that stood out in Schall's mind about his experience with Flex 2.
"We used Flex 2 to create the interface — to allow users to load different Commodore program images," he noted. "It turned out to be almost trivial to create a list of programs and have the selected program load into the memory of the emulator."
The other thing Schall noted, particularly from Flex 1.5 to Flex 2, was a huge improvement in ease of development. "The Flex Builder IDE is incredible, and the code completion is dead on," he said. "It was really through that that we were able to create the project in the amount of time we did."
And let's not forget fun…. "The development environment that exists now for Flex is a lot of fun to use," he added. "I've never had this much fun programming for the Flash platform before."
Jenny Carless is a senior writer for ROI Communications and frequently writes for Adobe publications.