Little follow up on an earlier post Why Adobe AIR ? Let me tell you why
So I was browsing some archives (from around 2011)
and I stumped upon 2 interesting things
Browser vs. application
http://www.adobe.com/products/air/comparison/ (web archive)
The browser has become the preferred way to deliver many applications because it enables easy deployment across operating systems and simplified application maintenance. Plus, the modern programming languages used in the browser enable rapid application design and development.
The Adobe® AIR® runtime complements the browser by providing the same application development and deployment benefits while adding device integration, local data access, and enhanced branding opportunities. An emerging design pattern for rich Internet applications (RIAs) is to deliver a browser-based version of an RIA in the browser for all users and an RIA on the device (such as desktop or smartphone) for more active users.
Those are basically the main features why you would go with Adobe AIR vs a browser app.
Some of them or all of them can be a pivot point of why you would either way.
But let refresh them a little:
If before building a small
.airpackage was nice and provided an easy install
today we are more into building installers with captive runtime,
eg. we want the AIR runtime fully embedded (and not seen as a 3rd party runtime)
also today the “marketplace” also known as app stores have expanded,
here the principal ones:
- App Store (iOS)
- Google Play (Android)
- Amazon Appstore (Android)
- App Store (macOS) (not all AIR features supported)
- App Store (tvOS) (beta channel)
- Google Play (Android TV)
- Microsoft Store (Windows) (use Desktop App Converter, or MSIX Packaging Tool)
- Steam (Windows, macOS, Linux) (use Steamworks API ANE)
- Snapcraft Store (Linux) (package an AIR 2.6 into a snapcraft)
If you already publish an installer with captive runtime,
you can just publish another one with an updated version but …
with AIR we have another alternative, you can update almost as if it was a web app
eg. having a main SWF (launcher) that launch an
app.swfyou can just update the
app.swf(it depends of the app, what you update etc, but in most case you can publish quick updates this way on Desktop)
Multiple platform support
officially only Windows and macOS are supported for AIR desktop
but you can still publish an “old” AIR 2.6 for Linux, yeah it will take extra efforts but possible
on mobile still iOS and Android, more CPU architecture: ARM, Intel; and more bits with 64-bit support, with another addition the TV apps with tvOS or Android TV (it is a niche but still you can target those with AIR)
And now, let me add yet another option: CLI or command-line apps
yeah OK it will not work for all kind of apps, let’s say you’re publishing a “weather app”, you could easily also add a weather app for the command-line for let’s say Linux users, will certainly not be the most downloaded but it can bring some love from those users who will not feel ignored anymore
AS3 can be enough for most things, and yeah you can use some JS too in an HTML window etc. but if you’re publishing a captive runtime you can also take advantage of native process, and add quickly some functionalities reusing the command-line, for ex: find out the name of the logged in user, just sayin’ adding a bit of Batch and Bash is often underestimated.
Now since AIR 3.0 you can pull the big guns and go with an ANE and add almost anything (well except under Linux which support only AIR 2.6).
The other thing not well known is you can reuse JS into your AS3 code, anything that can compile to ES3 you will be able to compile it with the compiler option
-ESand use it alongside your AS3 code.
Let’s just say that these list of features from 2011 is still valid today, even if you want to be extremely conservative and publish only on Windows and macOS desktop, most of what you need is probably already there in the AIR API.
And yeah AIR is not perfect, there are flaw too and the biggest one are the installers part, it will take you some time to get organised to build those but it is a required step that all applications has to go through, personally I advise to use a captive runtime and spend the time building those installers in an automated way.
Adobe AIR features
http://www.adobe.com/products/air/features/ (web archive)
on the archived page if you click the tab “all features” you will get a loooooot of features, and remember this is from 2011, it is only AIR 2.6, since then many more features were added
iOS 4 support for iPad, iPhone, and iPod touch ENHANCED (in AIR 2.6)
Take advantage of new features in iOS 4 like multitasking, retina display for higher screen resolutions up to 960x640, and front and back camera support. Capture audio with the microphone and build applications with an integrated development process when packaging to the IPA format.
Compatibility with Android 3 NEW (in AIR 2.6)
Conveniently debug applications on an Android™ device through a USB connection with no Wi-Fi setup required. Android USB drivers for Microsoft® Windows® are now included with the Adobe® AIR® software development kit (SDK).
Geo location support (where applicable) NEW
Build GPS applications or applications that utilize a device location to deliver customized content based on location.
Accelerometer support (where applicable) NEW
Receive acceleration values in X, Y, and Z axes from native device accelerometer sensors to ActionScript®. Developers can even specify the rate of accelerometer updates to conserve battery life.
Camera and video support* NEW
Capture pictures and video onto your device’s media gallery (camera roll). Applications can utilize the camera roll to display images or upload to a server (for example, you can take a picture or video and instantly upload and view it on Facebook).
*Front and rear camera support for iOS 4.
StageWebView ENHANCED (available for iOS in AIR 2.6)
Display web links inside an application to quickly access web content without having to leave your application. No need to switch to your web browser (for example, use your Facebook application to access all your information instead of having to open a web browser).
Screen orientation support (where applicable) NEW
Control screen orientation and control games by shaking or rotating.
Custom URI NEW
Start up an application within the browser or native Android application.
Screen dimming (where applicable) NEW
Disable auto-lock and screen dimming on the phone to prevent applications from going to sleep (useful, for example, in a video streaming application that doesn’t require frequent user input).
Virtual keyboard NEW
Select text in a text field and see a menu for text operations like cut, copy, paste, and input method.
Performance improvements ENHANCED
Run faster applications and use system resources more efficiently with a smaller runtime, reduced CPU usage (30% reduction in some applications) for idle applications, and reduced memory usage without requiring application recompilation (Android OS with H.264 video decoding at 30fps and GPU-based animation and games at up to 50fps).
Native process API NEW
Create native installers that allow you to launch and communicate with native processes using standard input and output. Using the native process API, communicate with native libraries built using Java™ and .NET and native applications such as grep for file searching. You can also create operating system–specific installers (native installers). Applications that use the native process API must be deployed using a native installer.
Native document handlers to open documents NEW
Open documents in popular file formats like PDF, PSD, DOC, PPT, and MP3 using the native application associated with that file. For example, opening an MP3 file will launch iTunes on systems where iTunes is the default application for MP3 files.
Local microphone API NEW (available for iOS in AIR 2.6)
Record audio locally on your device without the need for a server.
UDP networking support NEW
Take advantage of runtime support for the User Datagram Protocol (UDP) to build time-sensitive, real-time networking applications such as multiplayer games.
WebKit with HTML5/CSS3 support NEW
Benefit from new capabilities such as CSS transforms, animations, and canvas support.
Sophisticated printer interaction ENHANCED
Control how content is printed from an Adobe AIR application, including choice of printer, paper size, and number of copies. New APIs allow developers to retrieve additional printing information, such as printable area, whether the printer will print in color, and whether the print job is currently active. Also print without displaying the print dialog box.
Global error handler NEW
When an unexpected error occurs within an application, capture the error or error event in a single location and present useful information to the user, such as instructions on how to report the issue or restart the application.
Security improvements ENHANCED
Set the execution bit on a file. Take advantage of encrypted TLS sockets and access to the MAC address.
Support for screen readers NEW
Enable applications built using Adobe Flash® software or Flex to be enabled for screen-reading software, including JAWS (Windows only).
Cross-platform vector printing NEW
Enjoy printing support across Mac, Windows, and Linux® platforms.
Custom filter and effects with Pixel Bender
Create and share high-performance, real-time effects using Adobe Pixel Bender®, the same technology behind many filters and effects in Adobe After Effects® software.
Browser code reuse
Local embedded database
Manage structured data within a local database using synchronous and asynchronous APIs.
Traditional desktop application behavior
Enable traditional desktop application behavior for AIR applications running on Windows, Mac OS X, and Linux. During installation, an AIR application is connected to all the operating system hooks for native applications, including the task manager, program files, and Start menu or Dock.
Applications deployed on Adobe AIR can create native menus for each operating system.
Enhanced HTML security
The WebKit engine has been updated to provide additional security for HTML applications on the desktop. These enhancements reduce the potential exposure of applications to common web vulnerabilities such as cross-site scripting and code injection.
Drag-and-drop data sharing
Applications deployed on Adobe AIR can use drag and drop to share data with the local operating system or other applications.
Multimedia content protection
Enjoy robust protection for multimedia content including video and audio. Content protection supports usage models including per-user licensing and ad-supported content.
Network content sandbox
Adobe AIR provides a sandbox for all network content, similar to the browser sandbox, that restricts network content from accessing the full capabilities of the runtime.
Adobe Flash Professional CS5 integration
With the Adobe AIR extension for Adobe Flash Professional CS5, build rich media applications and deploy them on the desktop as easily as they are deployed to the browser. The extension provides application debugging and packaging.
Adobe Flash Builder 4 integration
Take advantage of built-in support for Adobe AIR in Adobe Flash Builder™ 4 software. Using the Eclipse™ based IDE, build, debug, profile, and deploy Flex projects on the desktop or to the browser.
Ability to run at startup
With the ability to run at startup or user login, applications such as IM clients can run automatically in the background from startup.
3D effects and Drawing API
Create more engaging interfaces using built-in support for 3D effects. Enhancements to the Drawing API add the z-dimension, real perspective, textured meshes in 3D space, and a retained graphics model, while improving rendering performance and developer productivity.
Protected by industry-standard AES encryption, the zero-configuration, encrypted local database provides a more secure place to store sensitive information.
Reduced application latency
All application files are installed locally, eliminating the need to make server roundtrips and increasing application response time.
Adobe Dreamweaver CS5 integration
With the Adobe AIR extension for Adobe Dreamweaver® CS5, build HTML-based applications and content and deploy them on the desktop as easily as they are deployed to the browser. The extension provides application testing and packaging.
User interface control
After installation of an application on Adobe AIR, the entire user interface is controlled by the application. AIR applications can be nonrectangular, transparent, or semitransparent, or they can include a fully dynamic layout.
Native window chrome
To provide a more traditional look and feel, AIR applications can choose to use native windows of the local operating system. This also allows the operating system to provide controls for minimizing, maximizing, and closing the window.
Rich media and video
Adobe AIR provides the same audio and video codecs as those supported by Adobe Flash Player 10.1 software, including VP6, Sorenson, and H.264.
Seamless installation process
Flash Player allows Adobe AIR and AIR applications to be installed directly from a customizable badge on a website. The badge detects whether the AIR runtime is already present on the user’s computer. If necessary, the runtime is included in the installation process.
USB debugging for Android NEW (in AIR 2.6)
Conveniently debug your applications on an Android device through a USB connection with no Wi-Fi setup required. Android USB drivers for Windows are now included with the AIR SDK.
Hardware graphics acceleration NEW (in AIR 2.6)
Maximize graphics rendering performance for Android and iOS by taking advantage of the device’s graphics hardware acceleration.
Native custom mouse cursors NEW
Simplify the development of animated mouse cursors by moving the task to the operating system. Enable an enhanced user experience and improve performance.
Automatic soft keyboard support NEW (in AIR 2.6)
Simplify the development of multiscreen applications when soft keyboards automatically appear when required. Desktop applications originally designed for physical keyboards are more easily optimized for mobile devices when you don’t have to modify the content or application to display the soft keyboard.
Multitouch and gestures NEW
Build entirely new types of applications using multitouch (Windows 7, Android, BlackBerry Tablet OS, and iOS) and gestures (Windows, Mac OS, Android, BlackBerry Tablet OS, and iOS).
Remote control support (TV devices) NEW
Access remote control input methods that are common for television-style devices with consistent views for buttons such as pause, play, stop, rewind, fast forward, and more.
2D hardware acceleration (TV devices) NEW
Leverage 2D graphics acceleration using the underlying hardware acceleration systems that exist on TV platforms. Achieve high-performance interfaces by focusing on 2D and bitmaps that are accelerated directly by the TV hardware.
StageVideo (TV devices) NEW
Render Blu-ray quality H.264 video all on powerful hardware video decoders on TV hardware, allowing you to free up system resources to provide expressive interactivity on top of video.
Mass storage device detection NEW
Detect when mass storage devices such as cameras and USB flash memory drives are available to synchronize files such as photos, videos, MP3 files, or other files.
Enhanced drag-and-drop support NEW
Copy files to the local machine by dragging them out of the AIR application and onto the desktop. This enables new user interaction possibilities for applications such as content management systems or online stores.
Socket servers and peer-to-peer applications NEW
Build peer-to-peer applications or local servers that make it easier to communicate with other local applications or remote applications over the network.
TLS/SSL sockets NEW
Connect to a server that requires TLSv1 or SSLv3 for socket communications.
Large maximum window size ENHANCED
Enjoy support for large screen displays that can display windows up to 4095x4095 pixels.
IME API and IME text input ENHANCED
Benefit from better text input handling with IME software. The new API enhancements are designed to use with the new Flash Text Engine.
Content protection (DRM) NEW (desktop only)
Enjoy support for a wide range of business models, including video on demand, rental, and electronic sell-through, for streaming media as well as downloaded content. (Output protection for Windows only; requires the Adobe Flash Access® 2 SDK.)
New Linux DEB and RPM installers NEW
Take advantage of these alternatives to current BIN installers that support new Linux runtimes. Such capability is required for native process applications.
IME (Input Method Editor) API NEW
Easily build input support for complex characters and symbols (such as Chinese and Japanese characters) using your standard keyboard or input devices.
IPv6 network support NEW
Take advantage of support for the next-generation Secure Internet Protocol.
Flash Player 10.2 virtual machine
Adobe AIR includes the high-performance, open source Tamarin virtual machine for processing ActionScript 3.0 bytecode.
Applications deployed on Adobe AIR can exchange messages in real time with web applications running in the browser.
File extension registration
Applications deployed on Adobe AIR can be associated with a file extension so that when a file of that type is opened, the application is invoked.
Digitally signed applications
All applications deployed on Adobe AIR must be digitally signed using industry-standard certificates. Security decisions are made based on information in these digital signatures.
Get complete control over text layout to flow text and sophisticated typographic elements (like ligatures) across multiple columns, around inline images, bidirectionally, vertically, or chained together in multiple text flows. Create multilingual rich Internet applications using device fonts that can now be anti-aliased, rotated, and styled, or build your own unique text components.
Ajax framework support
Use most major frameworks to build AIR applications. Supported frameworks include jQuery, Dojo, Ext JS, and Spry.
Browser and operating system independence
The WebKit engine, Flash engine, and local embedded database are managed independent of the operating system and any web browser.
Free Adobe AIR SDK
Get the tools to package, test, and debug applications deployed on Adobe AIR in the free Adobe AIR SDK.
Custom window chrome
Applications deployed on Adobe AIR can feature customized window chrome, or no window chrome at all, enabling innovative, branded designs.
Integrated HTML and Flash
Applications deployed on Adobe AIR can be launched from web pages. If a user chooses to launch an AIR application from a website, the AIR application will run on the desktop.
Adobe AIR provides APIs that make application updates easy for developers and users.
Adobe AIR enables applications to detect when they are connected to a network. When offline, data input can be stored locally and then synchronized with the server upon reconnection.
PDF file rendering support
Adobe AIR uses Adobe Reader® software to enable viewing of PDF content within AIR applications.
Complex windowing support
Applications deployed on Adobe AIR can detect and change the z-order, height, width, and visibility of windows, enabling complex applications that use multiple windows to present information.
Dynamically generate audio and create new types of audio applications such as music mixers and sequencers, real-time audio for games, or even audio visualizers with enhanced sound APIs.
WebKit HTML engine
Local file system access
Applications deployed on Adobe AIR can read and write local files on the user’s computer. Standard operating system security restrictions apply.
Universal application installer
With applications deployed on Adobe AIR, the same installer file can be used across operating systems. This simplifies deployment and installation for both the business and its users.
Cross–operating system runtime
Adobe AIR runs on Mac OS X, Windows, and Linux.
Trustworthy installation process
The installation process for all Adobe AIR applications verifies that the application is signed and provides information about its source and capabilities.
Applications deployed on Adobe AIR can read and write to the system clipboard, enabling communication within and between applications.
Encrypted local store
Adobe AIR provides an encrypted local store using the Advanced Encryption Standard so that applications can store sensitive information such as passwords or keys.
Runtime configuration management
Manage runtime configuration to disable runtime updates, prevent installation of untrusted applications, and prevent application updates.
By default, Adobe AIR is configured to look for automatic updates to the runtime on a regular basis. If an update of the runtime is required, the update is downloaded and installed (after user authorization).
That’s a lot … that’s more than 80 feature points (85 exactly)
from there you add the list you can find here on Flash Player and Adobe AIR feature list, that list all the features from AIR 3.0 to AIR 32.0
and well … you can add as much
so yeah Adobe AIR can easily list 200 unique features (more or less)
Just sayin’, Adobe AIR pack a bunch, it keep simple things easy and allows more advanced things if you need to, the sad state of things few complaining people focus way too much on what they don’t have yet and ignore the enormous features they already have, they are there but they just don’t use it.
And stupidly enough they use that excuse to predict AIR death.