Skip to main content

May 2024

· 4 min read
Michael

BugSnag, Android Splash Screens, Firebase, Facebook, Adverts

Over the past few months, we have been diligently updating our extensions. We are currently undertaking major rewrites of some of our oldest extensions, which were initially developed over a decade ago. By rebuilding these extensions from the ground up, we aim to integrate the latest functionalities and advancements into AIR.

It has been truly exciting to witness Harman's development of the AIR SDK. We've been actively supporting their efforts by providing insights, identifying and debugging issues, and offering feedback to enhance the development process. The collaboration with Harman has been incredibly productive, and it's fantastic to see such responsiveness and dedication from their team. Their willingness to address our concerns and implement suggestions has significantly contributed to the progress and refinement of the AIR SDK.

We hope all AIR developers are excited by the continuing development of the platform!

As always, if you have any development needs for AIR, Unity, Flutter or Haxe, please feel free to contact us at airnativeextensions@distriqt.com.


BugSnag

We have recently released a new extension for developers wanting to integrate bugsnag in their applications.

BugSnag is a developer-first observability platform that helps you monitor app performance and fix issues faster. It provides real user data, error insights, diagnostics, and integrations to improve app quality and user experience.

The extension provides error monitoring to monitor app health and streamline your debugging workflow, and automatically converts AIR Errors to native error reports. We developed this extension when reports of the other extension supporting BugSnag was having issues, so we focussed on creating an extension that delivers useful error reports for AIR mobile developers.

try
{
throw new Error( "An error occurred", 1023 )
}
catch (e:Error)
{
BugSnag.instance.notifyError( e );
}

You can access the new extension here.


AIR Splash Screen Example

With some of the AIR updates from Harman we can now supply native Android splash screens via resoruces.

This process is fairly simple:

  • Add a custom resources directory (eg res) to your app and set <resdir>res</resdir> in your manifest (see custom resources for more info).
  • Set your target sdk to at least 31 in the manifest additions in your app descriptor:
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="34" />
  • Add a values-v31 directory and create a styles.xml in that folder with the following content:
<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="Theme.NoShadow" parent="Theme.App.Splash">
</style>

<style name="Theme.App.Splash" parent="android:style/Theme.NoTitleBar">
<!-- Set your splash properties here -->
<item name="android:windowSplashScreenBackground">#ff0000</item>
<item name="android:windowSplashScreenAnimatedIcon">
@drawable/splash_screen_animateable_icon
</item>
<item name="android:windowSplashScreenAnimationDuration">600</item>
<item name="android:windowSplashScreenIconBackgroundColor">#004d28</item>
</style>

</resources>
  • Here I have used an animatable icon (drawable/splash_screen_animateable_icon.xml) which could be anything but I've got this in it just showing the app logo:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@mipmap/icon" android:duration="600" />
</animation-list>

You can find a project demonstrating a custom splash screen in this repository: https://github.com/marchbold/air-splashscreen-example


Firebase

Firebase has been updated to the latest release.

Firebase is interconnected with a lot of Google services so these updates are a significant amount of work for us. As part of this update you will find new Google Play Services, AndroidX and square (okio/okhttp) libs.

If you are using apm then a simple update and regeneration of the app descriptor should be all you'll need to do:

apm update
apm generate app-descriptor

If you are still managing your dependencies and app descriptor manually, we suggest start from scratch and rebuilding your Android manifest as there are a lot of changes in this build and some new extension dependencies.


Facebook

Our Facebook extension has been updated to support v17 of the Facebook SDK. This will mean you can continue to support Facebook with the latest minimum SDK requirements for accessing Facebook services.


Adverts

The latest release of the Adverts extension brings the latest AdMob SDK, v23.1.0 on Android and v11.3.0 on iOS. This update includes support for privacy manifests, changes the minimum iOS version to 13 and no longer automatically collects metrics (now need to link Firebase analytics).

We have also updated all the supported mediation networks to their latest releases:

  • AppLovin: android v12.5.0, ios v12.5.0
  • Facebook: android v6.17.0, ios v6.15.0
  • ironSource: android v8.0.0, ios v8.1.0
  • Pangle: android v5.9.0.6, ios v5.9.0.7
  • UnityAds: android v4.11.3, ios v4.11.3

Please note that AdColony and TapJoy have been deprecated

If there are additional mediation networks you would like supported please let us know via the repository!


As always, if you have any native development needs for AIR, Unity, Flutter or Haxe, please feel free to contact us at airnativeextensions@distriqt.com.