← Overview

Clean & simple

Clean and simple: one extension, one file.

  • ✓ Always up to date: tested on the newest iOS, Android and macOS.
  • ✓ Running in real apps: every extension ships in our own published apps.
  • ✓ Real code: the examples use the same calls as those apps.

NO APM NEEDED. Download and enjoy. It can’t get any simpler. Just update the Adobe AIR SDK. If you need help, we are here.

Why our native extensions for Adobe AIR come without a package manager, without a core library and without helper ANEs, and what that changed in our own apps.

45 → 13 ANEs−6.5 MB on Android−5.9 MB on iOSAbout 2× faster start

The problem with dependency chains

Many AIR extensions that are installed with a package manager (APM) do not come alone. They bring a chain of helper ANEs: a shared core library, Android support libraries, Google Play services, Firebase, network and image libraries. Often these helpers are only there because another extension needs them.

Every one of these ANEs is packaged into your app and loaded when it starts, including helpers your app only needs for a small part of what they contain. The app gets bigger, starts slower and does more work in the background.

What we measured in our own apps

Our apps stream live video and two-way voice, often from older phones and tablets. In 2026 we replaced every third-party extension in them with our own self-contained extensions and compared the results on real devices:

Extensions in the Android app45, of them 35 third-party, most of them helper ANEs → 13, all our own
Application descriptorAndroid: 197 → 133 lines (manifest additions 117 → 85), iOS: 161 → 126 lines. Fewer manifest entries to maintain and fewer things to break
App size−6.5 MB on Android (−10 %), −5.9 MB on iOS (−14 %)
Start of the appabout twice as fast
Background workno analytics or helper libraries running beside the stream: more CPU and bandwidth left for video and voice, which matters most on older devices

Conflicts and update pressure

When several extensions share the same helper ANEs, their versions have to match. A new version of one extension often requires new versions of the shared helpers, and then of every other extension that uses them.

The result: updates you did not need, version conflicts at build time, and every combination has to be tested again on every platform. That is work that does not make your app any better.

distriqt with APM compared to Klug

Until 2026 our own apps used extensions from distriqt (airnativeextensions.com), installed with APM. Today they use only our own extensions. This is what changed for us:

distriqt with APMKlug
Installationwith APM, the AIR package managercopy one ANE file, add its extension ID. No APM
Helper ANEsa Core ANE plus dependency ANEs; in our Android app: AndroidX, Google Play services, Firebase, Kotlin, Guava, gRPC, OkHttp, Picasso and morenone. Each extension is self-contained
DownloadsAPM downloads every extension together with its whole chain of dependency ANEs; different versions of the same helper lead to build conflictsone download per feature, nothing else
Load on the deviceevery helper ANE is packaged into the app and loaded at start, even parts the app never usesonly the code the feature needs: smaller app, faster start
Dependencywhen Apple or Google change their requirements, you wait until the extension, its helpers and APM are all updatedwe update with every new iOS, Android and macOS and test in our own apps first
Extensions in our Android app45, of them 35 third-party13
Updatesshared helper ANEs have to match across all extensionsevery extension updates on its own
Price per extensionyearly subscription, single extensions up to $70 per year, all extensions $200 per yearfrom €9 per year, support from €39
Cataloguemuch larger, many more extensions14 extensions, all running in our own published apps

Our experience: in our apps we repeatedly had to wait for updates of extensions and their helper ANEs before we could meet new Android and iOS requirements in time. With our own extensions we no longer wait.

Prices as published on airnativeextensions.com and on our pricing page in November 2026. distriqt is a trademark of its owner; we are not affiliated with distriqt.

Our approach: self-contained

Wrapping platform libraries in a thin shell and hanging a set of helper ANEs on it is the quicker way to ship many extensions. Building every extension complete and self-contained takes far more work: each one has to bring exactly what it needs, be tested on its own on every platform and still work next to all the others. We chose that work, so that you don't carry the consequences in your app.

  • One file per feature. Each extension is a single ANE. No core library, no helper ANEs, no package manager.
  • Only what the feature needs. Where a platform library is required, such as Google Play Billing or Firebase Cloud Messaging for push on Android, the build adds exactly that library automatically. Nothing else.
  • Independent updates. Updating one extension never forces you to update another.
  • New devices first. iPhone Duo, Galaxy Z Fold and Galaxy Z Flip are already supported, including folding and rotating at runtime.
  • Light while streaming. The camera light works during a live stream: with KlugMedia, and with KlugTorch on iOS.
  • No silent discontinuation. If we ever discontinue an extension, you hear it from us at least 12 months in advance, and your paid licence keeps working until the end of its term. See the licence terms.
  • Proven in production. Every extension runs in our own apps on iOS, Android and macOS and is tested on current and older devices.

Add the extension ID to your application descriptor, copy the file into your project, done. See all extensions · Pricing

Contact

Moving away from dependency chains?

We replaced them in our own apps step by step. If you want to do the same in your AIR app, we'd like to hear from you.

[email protected]