What's on the horizon for AirMessage

F-Droid and Material You clear the path forwards

Posted on Jul 24th, 2022 by Cole Feuer
What's on the horizon for AirMessage, with hints of Material Design 3

As AirMessage becomes more community-focused, everyone should know what’s coming next. I’ve picked out a couple goals that I believe align best with the interests of the community, as well as position AirMessage for future opportunities.

AirMessage will be getting an F-Droid release, and AirMessage for Android 4 will bring Material You and large screen support. After that, maybe even a Windows app, and the ability to run a server off an iOS device?

AirMessage in the land of the free (and open source)

AirMessage will be getting an F-Droid release, allowing users on custom ROMs or users without Google Play Services to install and use AirMessage.

While AirMessage’s apps are all open-source on GitHub, the releases on Google Play depend on proprietary Google code to provide extra features. These features will not be available on the FOSS release of AirMessage for Android:

Today, AirMessage for Android 3.5.0 is pending release for users in Google Play’s beta channel. Some of the Android app had to be restructured to allow the same source code to compile either a proprietary build or a FOSS build, of which the proprietary version will be published to Google Play.

Once this version is made available to all non-beta users, AirMessage’s FOSS build will be submitted to the F-Droid store.

Material You, on the screen you want

AirMessage for Android 4 is set to bring a Material You UI refresh to the Android app, and make it work well across smartphones, foldables, tablets, and computers.

With AirMessage for Android, I’ve always tried to keep a design that feels Android-first. AirMessage for Android 4 won’t change that, but by shifting around a few UI elements and changing a few colors, the app can feel reminiscent to those coming from iPhone.

Here are a few very early screenshots of what this new design looks like:

A screenshot of Android's homescreen AirMessage's new redesigned conversation list AirMessage's new redesigned messaging screen

On a technical level, this is a UI layer rewrite that should help AirMessage be much easier to develop. With the help of Kotlin and Jetpack Compose, UI code becomes much more flexible and maintainable.

A glimpse into a possible future

While these changes should be pretty awesome as-is, they unlock potential future opportunities to allow AirMessage to work even better.

With a UI optimized for mouse and keyboard, AirMessage’s Android app could run under Windows 11’s and ChromeOS’ Android emulation layer.

The app could also be adapted to run with Compose for Desktop, bringing AirMessage to Windows 10 and Linux.

AirMessage Server could be ported to iOS and leverage native frameworks.

Have an old iOS device lying around? It could work as a server for AirMessage!

As AirMessage Server 4 is written in Swift, it might be possible to run on jailbroken iOS devices. Most of AirMessage Server’s internal logic can remain the same, while leveraging iOS’ private frameworks instead of AppleScript.

As iOS uses the same frameworks as modern versions of macOS, this functionality could work across both operating systems.

Please keep in mind that these are only concepts that I’m interested in exploring - there’s no guarantee that either of these will work as intended.

What do YOU think?

The plans outlined above are from the most requested popular major features, as well as how I believe AirMessage can best evolve to meet future goals.

Of course, these plans won’t be what everyone wants. Is there a smaller feature you want to see make it in? Let me know! Do you think these plans miss the mark? Let’s discuss which major features you’d like to see instead!

Want to help make these changes happen? If you’re a developer, feel free to browse AirMessage’s source code and reach out to me to discuss how you’d like to contribute.

If you can’t contribute code, I’d also greatly appreciate any donations, which help motivate me to continue working on AirMessage :)