
ExtJS Extensions for the Adobe AIR Platform

Not so long ago, Adobe released the next significant AIR update for version 1.5, and this topic deserves a separate discussion, but now we will discuss innovations in ExtJS ( original post on the developers blog ).
Already from the version, if I am not mistaken, 2.0, a standard set of components has a set of components for accessing and working with specific properties for the AIR platform - you can find them in the documentation in the Ext.air section . However, there are only basic functions that are focused on previous versions of the platform.
The first example of expanded support for the new platform was an MP3 music player ( source code ), which demonstrates the extension of the Ext.air.Sound componentand is designed to play long songs, such as music, podcasts, etc. As I understand it, only one file can be played at a time, that is, the singleton class will not allow you to simultaneously play sound from different sources. The component allows you to perform all the basic operations - stop, pause, volume control, offering a stylish interface designed in the traditional style of the library (of course, it can be changed).
Personally, I was very pleased with the second component - Ext.air.Notify , which implements the notification panel if the application works minimized to tray. This is a really necessary component, since for many applications this is the main mode, oddly enough - but earlier it was necessary to manually check whether the information was updated.

Now the developer can flexibly configure and manage notifications, in particular, message formatting is supported using the template system (usual for ExtJS, if you work with the library, you probably already applied it). I really liked this class and in the next project I will be actively using it, but I will definitely tell you about practical experience.
General application settings were previously available only from the configuration file or at the development stage, now we will have the Ext.air.App class , which can be controlled programmatically at any time, in particular, specify the location of windows, set options “on top of all windows” or put the application in full screen mode. Note that control is available only after starting the application and receiving the active window object.
The work with the clipboard is also available - the Ext.air.Clipboard class allows you to use this feature to exchange information with other programs or even inside applications, because if you, for example, create an admin panel for a site management system, such a function will be very popular in article editor. In the future, the developers promise to expand the functionality and introduce support for Drag & Drop.
For cases when you need video support in the application, whether it’s just playing videos or working with a video camera, you will need the extension of the standard Panel component - Ext.air.VideoPanel , which can play a video stream from a flash or webcam, up to full-screen high permissions!
The developers did not forget about the new features in 1.5, however, they promise to add their support in the next release of the library, along with the components described above. However, individually, the examples described in the article are now available for experimentation and research .
Honestly, I am very pleased that the library is positioning itself as the basis for AIR applications because, if you think about it, this is the perfect place for it. Browsers "digest" pages that use such rather heavy libraries quite poorly, although progress is already being made. Just the day before, I tested the pre-release version of our project, based entirely on ExtJS (I can only say that this is a browser-based online game) - and the best results in terms of interface performance were innot yet releasedFirefox 3.1 (with the TraceMonkey engine turned on), but in IE of different versions or even in previous releases of Firefox, although work is possible, it sometimes slows down. Perhaps this is due to the load on the network (although I reduced the requests, but still we have several timers and the server is polled every 5 seconds) or with Firebug turned on (although not, it is turned on everywhere), I don’t know, but the result is real - ExtJS shows itself in full force precisely on the most modern platforms specially adapted for executing AJAX applications that can work for hours and days without reloading the page, actively use dynamic loading and execution of JavaScript code and other features. But in AIR 1.5, one of the key features is called the update of the Webkit rendering engine and the included new engine for processing JavaScript,
That's all for now. Well, no, one of Ext's competitors, Dojo Toolkit (by competitor, in this case, I mean Dojo Core + Dijit), also aimed at the AIR platform and announced a separate subproject, Dojo Extensions for Adobe AIR , designed to help developers use their full potential platforms in applications using the Dojo Toolkit. The project is also interesting, next time we will consider it in more detail, and also try to compare AIR support in both libraries. But I dare to note that AIR support has long been in ExtJS, now only its extension has been announced, while in Dojo no similar components have been noticed until the announcement of this project.
PS .(dreamily) But if you combine the features of Dojo / Dojox and the ExtJS interface, and run it on the AIR platform, it will be a real deadly weapon ...