| By Jason Alexander | Article Rating: |
|
| March 16, 2011 11:12 PM EDT | Reads: |
1,161 |
I occasionally start small projects for friends or family. I intentionally use technology I have not used before in order to learn new things. The client gets something, I learn something new. It's nice also, because it forces me to finish the projects.
Last year, I started writing a small application using the Adobe Flex SDK, (version 4, even though it was just beta when I started). The app simply streams audio and flips slide images, a Flex/AS3 component, or a customizable automatically-generated questionnaire/quiz at defined timestamps. All of this is configured through a reasonably small XML file, all via the network.
The first problem I ran into was finding a decent development environment. Adobe's Flex Builder, (based on Eclipse, now called Flash Builder), had few nice features but also some things I couldn't live with. For what it provided on top of basic Eclipse, which was almost nothing, the price was robbery.
Problems with Flash Builder 4
- It hid some of the build details too much. Flash Builder provided almost no help in writing an appropriate build/ant file. Since I wanted to be able to build from the command-line, it was not very useful to me. Lesson: Don't expect Flash Builder to jumpstart you if you are a power user. Once you leave the dock, you'll need to paddle.
- Flash Builder had no source code formatting for ActionScript, other than automatic indentation as you enter it. I don't want to spend my time formatting all of the code. I found several options, the best of which was a plugin for Eclipse/Flex Builder. However, they were all based on older versions of Flex and ActionScript 2, which had significant changes in Flex 4 and could not be used. Lesson: I am sure they will support this, if Flash Builder 4 doesn't already support it in the current build, because without source formatting (i.e. you just refactored and indentation is no longer consistent), development is annoying.
I was pretty surprised that IntelliJ was the best option, for Flex 4, at the time. I could debug, build, format source, run tests. I had more functionality from a third party, for a fraction of the price, than from the vendor alone.
Problems with Flex 4, ActionScript 3
- Many calls in ActionScript are asynchronous and have to be designed with concurrency in mind. The problem is that it's not always completely clear which calls are async. You can safely say that IO calls, such as HTTP and File requests, are async. Many things that I expected to be synchronous, (next line of code doesn't execute until the current line is done), were async, due to one or more of their dependencies being async. Lesson: Just use events (callbacks would be better) as much as possible. I got much better at this, but even examples in Adobe's live docs, (the main cause for my headaches), were only applicable in certain cases and very misleading.
- I hit a few bugs, where certain features I was using could only be called in certain ways, not in all of the ways shown in the docs. And that was fine when I was using the beta SDK. But in the fall of 2010, when I finished up, Flex 4 was released, I expected less issues. Lesson: Stay glued to the forums. Unit Test your code.
As simple as my app was, I think it had a few aspects that forced me out of my shell and it didn't give me a server backend to depend on as much, as the client is (capable of) doing more. It's quite possible that I was a tad ambitious for a first app.
Unfortunately, I waited months to finish this post so I'll have to come back with the specific bugs/issues with the language, after reviewing my notebook.
Read the original blog entry...
Published March 16, 2011 Reads 1,161
Copyright © 2011 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Jason Alexander
Unix Administrator for seven years. Software Developer for four years. Java, Groovy, Scala and more. Fan of the Pragmatic Bookshelf and continuous improvement.
- Uncle Who Kidnapped Sofia to Syria Still a Practicing MD in Chicago
- Getting Ready for a Java Technical Job Interview with President Obama
- Adobe Falls Out of Love with Linux
- Adobe Flash Builder 4.5 is coming to town
- Norman Encourages Periodic Patch Management to Defend Against Cyber Attacks
- RIM rolls out BlackBerry WebWorks SDK 2.0 with PlayBook launch
- GISUser.com GIS Data, news, jobs, software tips, mashup news – Developing Location Based Services (LBS) Mobile Applications
- Enterprise Development on Tablets. Thoughts Aloud
- Software Pricing Trends
- ABSORB LMS gewinnt Gold für Global Training bei den Brandon Hall e-learning Awards
- Adobe SocialAnalytics Begins Global Beta Program
- Adobe SearchCenter+ Enhanced with Integration of International Organic Search Data
- Flash Shows a White Flag
- Adobe Releases an Interesting Marketing Tool
- Uncle Who Kidnapped Sofia to Syria Still a Practicing MD in Chicago
- Getting Ready for a Java Technical Job Interview with President Obama
- Adobe Falls Out of Love with Linux
- Adobe Flash Builder 4.5 is coming to town
- Norman Encourages Periodic Patch Management to Defend Against Cyber Attacks
- Adobe Flex Development - Personal Retrospect
- RIM rolls out BlackBerry WebWorks SDK 2.0 with PlayBook launch
- GISUser.com GIS Data, news, jobs, software tips, mashup news – Developing Location Based Services (LBS) Mobile Applications
- Enterprise Development on Tablets. Thoughts Aloud
- Software Pricing Trends
- Where Are RIA Technologies Headed in 2008?
- Cover Story: How to Increase the Frame Rates of Your Flash Movies
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Your First Adobe Flex Application with a ColdFusion Backend
- Adobe Flex 2: Advanced DataGrid
- How To Create a Photo Slide Show ...
- i-Technology Blog: Death-Knell For "Rich Media? Hardly!
- Adobe Flex Interface Customization - Themes, Styles, Skins
- Adobe/Macromedia - Microsoft, Look Out!
- Personal Branding Checklist
- Has the Technology Bounceback Begun?
- "Real-World Flex" by Adobe's Christophe Coenraets





























