We create more and more mobile-friendly applications, many of which also work on Android. But having to cover the distributor role there as well, how do we actually go about releasing our apps there?
Targeting Android with our applications is interesting both for reaching a like-minded community on its FOSS variants such as LinageOS as well as for the vast user base of its proprietary variants, and is in line with KDE's goal of improving our application delivery. However, it is also up to us to wear the distributor hat and take care of packaging and delivery to the respective app stores there.
While we have the infrastructure to build nightly debug packages targeting Android for about 25 apps, and distribute those via a dedicated F-Droid repository, only very few applications have proper releases for Android. All of those use custom solutions to build their release packages, unlike on other platforms we have no common infrastructure for this.
In this talk we are going to look at ongoing efforts to expand the existing setup of Craft and Binary Factory to also cover Android release packages. Craft and Binary Factory are already used to build Windows, macOS and AppImage packages, covering Android as well promises less dependency, package and infrastructure maintenance work.
Building release packages isn't as easy as changing a few build flags though. Particularly for mobile apps it is useful to optimize the package size by ensuring we only include what is absolutely necessary, both for code and data. At the same time it's crucial the package is complete, especially regarding translation catalogs. We'll therefore look at ways to inspect, analyze and optimize the release packages.
Finally, a package itself isn't enough for an app store presence, we also need the associated metadata describing the application, e.g. with texts, tags/categories or screenshots. Most of this usually exists in form of AppStream metadata already, and we'll see how that can be used for Android app stores as well.