Debugging tools are essential for software development in any computer language and runtime environment. Adobe Flash platform-based rich Internet application (RIA) development, either in Flex or AIR, is no exception. While the Flex/AIR is maturing, more debugging tools are emerging. Arthropod is one of them. Arthropod is a debugger tool for Flash or AIR application development. InfoQ spoke with Carl Calderon, lifelong Flash developer and Arthropod creator, to learn more.
When asked why he created Arthropod, Calderon quipped, “"Limitations breed creativity.” Then he explained:
When the first beta of the Adobe integrated runtime (AIR) was released, I made a simple hello-world application. The first thing that I noticed was the limitation of the trace-method. The more I dug, the more confused I became. There were a lot of developers that had the same problem. I later found a debugger that you run in your browser to get the traces, but it was too complicated for my small logs. I wanted something that was as similar to the output-panel in Flash as possible. After a few days, I had made my own using basic technology, I knew from previous projects and a few hours of sandbox-limitation study. When I realized I was using it a lot, I started to further develop the idea. Ultimately, this is the path that made it was it is today.
With respect to his experience using current debugging tools, Calderon comments:
There are a bunch of them. Now, with the new Flash CS4 IDE you get the trace-actions in the output-panel from your AIR applications when you test them, but not when they run live. The same is true for normal Flash movies. Once they go live, you loose the logging capabilities. The other debugging tools I've found are quite complex for most users, and some don't handle the sandbox limitations very well. I haven't faced any problem that Arthropod couldn't help me with yet.
Asked why a Flash/AIR developer should use Arthropod, Calderon responds:
The unique thing about Arthropod is that it's so easy to use. Download the application and run it. Use the static methods in the class and you’re ready to go.
Most people start with the normal traces, publish their work and face problems once it's online, owing to API's, domain restrictions, and so forth. Moreover, you can't see what's happening in the back. When using Arthropod, you can see the error right away.
The power of Arthropod is not only in its simplicity, but also in the range of different log-types. You can easily see an Array-buffer change in real time, take a snapshot of the stage or objects and color code your messages to ease the overview.
When asked about the design of the Arthropod tool, Calderon shares:
The design of the application is not beautiful, but it works. I didn't want to show the users unused areas, such as the bitmap-panel and the array-panel if they didn't use them. So, I just hid them behind the main window until they are needed.
As for frameworks, I haven't used any other than my own. The core engine of the application is completely separate from the user interface (UI), and it’s built as a framework of its own. Arthropod is built with the Flash IDE and FlashDevelop.
The design pattern I've used is one of my own too. It's similar to the MVC, but adjusted for ActionScript 3. I call it an event-based-pattern, because the different components can work completely alone and only communicate with events.
Calderon is currently working on the 2.0 version. It will have an improved UI and new features, but it’s still easy to use. According to Calderon, the plan is to make Arthropod the first-choice debugger for Flash.
But, why the name ‘Arthropod?” Calderon explains:
I'm always reading about different stuff on Wikipedia, and I thought it was a perfect place to find a name. Since it's a debugger, I started browsing for bugs. After a few hours of reading about spiders and not trying to find a name, I came across Arthropod, or Phylum Arthropoda, which I think is Greek for jointed feet. I thought "Ah, perfect,"and I've been using it ever since.