Xcode Actionscript Integration: The Next Step
I’ve tried the whole Eclispe setup, but I’m just too used to Xcode to really like it.
So I decided to improve the support of Actionscript/Flash Development in Xcode. In my opinion, for optimal development speed we need the following components in the Actionscript-Xcode system:
- Easy MTASC compiling with optional file pre-processing support
- Easy documentation creation
- Integration of Flash debugging into Xcode’s run log
- Full code-sense support
- Flash help file access without the Flash IDE
- Visual layout of graphics, textfields, MC’s, and vector graphics without the Flash IDE
I already have some work done in some of these areas:
I am working on a new Xcode project template that will allow integrated pre-processing & compiling of Actionscript along with easy documentation creation. This is a huge improvement over the last method, but it still isn’t perfect. I’ve done some research to see if it would be possible to make MTASC integrate seamlessly into Xcode by writing a native Xcode plugin, its definitely possible and somebody has already done alot of reverse engineering and made a plug-in for Objective-Calm.
I’ve written a BASH script that generates a list of key words from a specified class path to be used with Xcodes code sense. Although this works, its not nearly as nice has having ‘real’ code sense, but Apple has kept their API for Xcode’s source scanner class closed preventing the creation of custom source scanners.
I released XASH a little while ago allowing Flash help file access without the IDE, it still needs alot of work; but at least its usable.
Intergrated Xcode debugging is something that I’ve always thought would be incredibly awesome, but only actually realized that it could actually be accomplished within the last few months. The basic idea is you specify a custom executable and run it within Xcode. The custom executable will be a server application which will accept XMLSocket connections and redirect all input from any XMLSocket connections into stdout
. Since the server application was launched with Xcode both stdout
and stderr
are redirected into Xcode’s run log thus any input received from any XMLSocket connections will be displayed in the run log. I’m working on implementing the server application in Java and adding easy access to the ‘trace server’ (the executable allowing output to be shown in the run log) from my debug
class. When I’m all done all you’ll need to do to redirect output to the ‘trace server’ is to call debug.initSocket()
and once a socket connection is established all output send to debug.trace()
will be redirected to the ‘trace server’. The Java server will support multiple connections so it can receive trace output from multiple SWF’s. Heres a screen shot of a SWF’s trace output being redirected to Xcode’s run Log:
Visual layout of graphics, textfields, etc, etc would be really cool also. A project like this would actually be possible using SWFMILL as the underlying engine to create the SWF.
I’m working on getting everything packaged up and documented so I can release it into the wild.