From @Eugene Potapenko
Imagine there's no more need to wait for it to be compiled.
Imagine that your app saves its status, doesn't restart after compilation, but the code you're writing is updated right in the app that is working. Imagine that you have the code in your favorite editor — and here it is in an application. Imagine saving the skin of your app's interface in Photoshop, and in a flicker of a second seeing it on the screen in a working app. Imagine installing and running your creation on an iPad in development mode, and having it updated right on the device, in real-time. Ever thought of making as many copies of the working app as you want to place them on different computers and devices so that the whole team would test simultaneously? Pictured this? Isn't it cool? Isn't this what you've been dreaming about for ages? Drum roll please...Here it goes! It's now for real! Here comes COLT!
COLT. Code Orchestra Livecoding Tool. It's a small piece of software that tracks changes of your app's recources (code, images, sound etc.) and, when files are being altered, starts a separate incremental compilation — it creates a small file with only those changes you've just made (unlike the common thing when a Flash/AIR app puts it all together from scratch). And then this is delivered to the working app.
You can edit files from an IDE or take the changes out of the version control system. You can simply share the folder with a designer, give the network address of yout app, and the designer will immediately see the changes as he alters the files in the folder. You can track corrections to the code through event subscription and create new libraries, approaches and revolutionary tools for game and app development. You'll surely come up with new ideas of how to improve your work!
Flash/AIR development has never been so fast and productive! Feel the new pleasure from Flash and mobile development with COLT.*Columns about features**Timesaver*
Super fast incremental compilation - (~200 ms)
No loss during application recovery after compilation — it works just like before. Connection with the server remains active, a loaded level of a game doesn't go anywhere, and the interface a developer is working on doesn't remove the text entered beforehand. Apps that are already on devices don't need to be reinstalled after compilation. The app is installed automatically just as a livecoding session starts.
No need of additional frameworks for optimizing the speed of application assembly. Your code will be cleaner and the app architecture is much simpler. Less time is wasted on additional optimization during development. *Mobile Development*
COLT supports software development for iOS and Android. In order to put an application together you only need to set up assembly of a mobile app and click the “Run” button. *No restrictions*
COLT is a separate tool. No particular IDE
is required. You just save a code in your editor and then it's delivered into a working app.
A time-proven standard Adobe MXMLC compiler is used. We just spiced it up with additional functionality for livecoding. Your projects will work in it just like before.
Support of all win/mac/linux platforms*Teamwork*
An app in a live session mode is network-available. COLT starts a web server able to deliver updates even if the app has been launched on another computer somewhere in the office. Several computers and devices at a time! As many people as you wish can be involved in testing, and all together you can correct mistakes as soon as they occur. No need to duplicate those - they will be seen right on the device. As soon as the developer alters the implementation, it immediately gets updated on all computers and devices. *Designers and programmers working together*
Delivering images to a working device lets you make cooperation of the designer and programmer more efficient than ever. As soon as a new file is saved to replace the old one, it is sent to all active devices. The designer immediately sees what their work moves and looks like in a working app. *Simultaneous testing on various platforms*
While developing, you can use a special stand with different versions of smartphones, tablets and computer OS'. This approach speeds up multiplatform apps development.*FAQ*
Is it necessary to use your Code Orchestra editor to make projects with livecoding?
Nope, there are no limitations for using IDE. It's possible to code your project in any word processor. You just need to specify compilation settings and sources locations (copy the settings from your IDE). Compilation and alterations delivery to the Flash/Air application starts as you save the as/mxml file.
How is livecoding in CO2 related to COLT?
Initially we made livecoding for Flash an exclusive feature of Code Orchestra IDE 2.0 (CO2) editor. Later we decided to bring the functionality of livecoding out of there and make it available for any IDE. Livecoding implementation in COLT is different from CO2 IDE. We had to modify COLT's compiler, while in the editor common code generation was used. Implementation through a compiler let us somewhat speed up the incremental phase.
What OS' does COLT work with?
Windows, MAC, Linux.
How are alterations delivered into the app?
A specific transformation of classes occurs when the application is being assembled. The method bodies and code are placed in separate classes stored in live methods registry. Method bodies are not called within the classes, instead the call of all methods is redirected to these classes as a whole. Therefore it's possible to load another implementation of methods and replace their code in the registry. If a method body is altered, or a new method is added, a specific package of alterations is created as a SWF file placed into the “Livecoding” folder next to the main SWF. This kind of files contains a class with a method, and also those new classes that haven't been included into the initial Flash app. After a package like this has been assembled (the file has been saved on disk), alteration parameters are delivered through a socket, the app loads the SWF through URLLoader and then downloads the classes. An old class of methods in the registry is replaced with a fresh one. All subscribers receive a message that the implementation of the class has been updated.
How do I forbid livecoding in particular classes and methods?
In some cases (maybe we've missed something and you got an error after assembling through COLT) it's necessary to forbid transformation of methods and classes. We provide several ways to do it. First of all, you can exclude entire packages in COLT's settings. Like determining a “com.mypackage.*” mask for the package and then leaving it out. Secondly, you can use the [LiveCodeDisable] metadata and mark the classes or separate methods you'd like to block from livecoding. What is more, there's an option (in livecoding settings) of “only livecoding classes with [Live] metadata” and turning livecoding on just in particular classes.
Is Falcon supported?
COLT uses proven MXMLC
that is applied to all Flash projects in production. We're to add Falcon support in version 2.0 when ASC 2.0 becomes stable and gets released. In order to use the new capabilities of ASC2 you'll have to assemble specific SWCs compiled with ASC2, and add them to dependencies of COLT's compiler. New features — like, for example, domain memory, - will be available in livecoding mode.
This tool available for testing
public skype chat:
Windows — https://dl.dropboxusercontent.com/u/381 ... LT-win.exe
Mac — https://dl.dropboxusercontent.com/u/38105801/COLT.dmghttps://github.com/code-orchestra/livecoding_exampleshttps://github.com/code-orchestra/livec ... mples/wiki
please report bugs to http://realaxy.myjetbrains.com/youtrack/issues/CFB
feel free to ask questions here, when someone from the team will be around to answer them