Adobe AIR continues to win developers over with it’s ease of leveraging standard web technologies to build cool desktop apps. But it’s not without it’s drawbacks, especially in terms of memory consumption and debugging. Thankfully, Adobe listened and included better CPU and memory profiling in the latest version of the SDK, Adobe AIR 2.

One of the biggest challenges our team continued to hear from JavaScript developers using Adobe AIR 1.5 was that it was too difficult to track down CPU and memory issues within their HTML-based AIR applications. To help JavaScript developers detect and resolve these issues, we have introduced new runtime support for CPU and memory profiling of HTML-based AIR applications in the Adobe AIR 2 beta.

Aptana jumped all over this and updated their AIR plugin to leverage the debugging capabilities. Apatana CEO Paul Colton created a video demonstrating how it works:

Despite the excellent SVG support in WebKit, Adobe has decided completely disable it in AIR. For vector-based graphics, Adobe would, of course, prefer everyone to use their closed and proprietary steaming heap of an excuse for an RIA platform: Flash.

I am shocked that SVG support is disabled, I had just started investigating using Air this week for a simple application.

You saved me a lot of time as I won’t be touching it now. I had assumed since it uses webkit that of course SVG could be used. I get the feeling that adobe are shooting themselves in the foot with this one.

@McDaid
You should probably consider using Titanium (http://www.appcelerator.com/products/titanium-desktop/) for your application. Titanium uses a recent Webkit and SVG is (of course) supported! You can deploy to Mac/Win/Linux and with Titanium Mobile even to the iPhone and Android.

I know this sounds like advertising, but I’m just an ex-AIR user who thinks Titanium is just better than Adobe AIR with its artificial limitations.

@RichPollack and @McDaid – We are considering adding support for SVG in AIR in a future release. Since AIR 1 was released, we have actually only had a handful of requests for SVG support. For canvas, however, we have received much more feedback from the development community around improving performance, enabling JavaScript profiling, CSS3 support and ways of integrating with the native operating system. If we hear from developers that SVG is critical to their apps, by all means we will consider adding it. The primary reason why we have decided not to enable SVG has to do with the fact that it will make the AIR runtime larger. We hear quite a bit of feedback from developers that they want us to make the size of the runtime smaller.

If we hear from developers that SVG support is mission critical, we will absolutely look into enabling it for a future release. Prior to AIR 2, there was very little feedback, but I admit that the number of requests for this capability have increased more recently so we will reevaluate adding this.

It would be valuable to understand the types of applications you are building that require SVG support. If others reading this would like to see SVG support in AIR, by all means, please let us by know by leaving a comment.

@McDaid – AIR uses a version of WebKit that is close to Safari 4.0.3 — a very recent build. We’re working hard to keep WebKit up to date in AIR. The AIR 2 beta includes the SquirrelFish Extreme JavaScript engine resulting in 50% faster performance using SunSpider tests,
enhanced CSS3 support (2D transformations, transitions, animations, gradients, zoom and WebKit CSS selectors, etc.), support for styling scrollbars via CSS and JavaScript profiling support. In addition, it is now possible to build a JavaScript application the communicates with native processes. For example, you can create a native application using AIR that launches iTunes, communicates with it using AppleScript via a shell script and sends data back to your AIR application. This was not easy to do in AIR 1. We are very much focused on allowing JavaScript developers to build entirely new types of applications.

If anyone has feedback around WebKit in support in AIR, please drop our team a note here: http://www.adobe.com/go/wish/ — we greatly appreciate your thoughts and enhancement requests.

I think SVG support is becoming more important since HTML5 is supposed to let you use it without all the setup of namespaces and XHTML stuff. That is why I spent some time fixing up Firebug for SVG (and MathML) in the latest firebug 1.5 betas.

“The primary reason why we have decided not to enable SVG has to do with the fact that it will make the AIR runtime larger.”

Excuse me, but the Beta 2 Runtime is just a 13.3 MB download (for Mac). And it’s a ONE-TIME download! Once AIR is installed there is no need to download it again (only Updates). For me and many many other people it does not matter that much if I have to download 13.3 MB or 20 MB. Crippling Webkit in AIR just to save some bytes in the age of broadband internet is just a very bad reason.

AIR 2 should just include a full-version of Webkit.

P.S.
Interestingly the Windows version of AIR 2 Beta is just 7.6 MB in size, so the Mac version is almost twice as big. And as it seems AIR 1.5. is even a 21 MB download for Mac and a 15 MB download for Windows, so AIR 2 is already much smaller.

@Nosredna @igitur @McDaid – Thank you for sharing your feedback around why SVG support is important for enabling libraries like Raphael.js. This is very helpful and I appreciate you taking the time.

@McDaid – Believe it or not but we receive far more feedback from developers that they wight the runtime to be very lean in size than support for SVG. All that said, I really appreciate the feedback from those on this thread that say this might be too extreme of a trade off. We’re listening. :)

@HelderMagalhaes – We hope to win you back to AIR and I think it is pretty clear what we need to do in order to make that happen. :)

Adoberob, please add me to the list of people expressing a strong desire for SVG support in AIR. I too assumed that because it included a recent webkit that SVG was in there already. My web application supports exporting content in a variety of widget formats, and I hope to add AIR in the near future.