
Software engineer and app developer Ashish Bhatia cites multiple reasons why Android development is hard work, winning agreement from many developers who encounter challenges developing apps and keeping them current.
Bhatia once worked at Google on Android security, and now develops an Android app called MusicSync. The app has been available for several years and is written in Java – once the primary development language for Android – but Bhatia said the switch to Kotlin as the preferred language has made developing in Java difficult.
“Jetpack Compose, an official Google UI library for Android is entirely unusable from Java,” he said. In addition, if an app has dependencies which are migrated from Java to Kotlin, it may require workarounds for Java applications, with Kotlin coroutines and suspend functions being a source of incompatibilities.
Another issue is breaking changes for official Android libraries as they get updated. Since MusicSync is a media application, Bhatia pointed the finger at ExoPlayer, once the official open-source library for media applications, which was replaced with ExoPlayer v2 in 2024 with breaking changes, and now with Jetpack Media3 that is different again; and even Media3 has received supposedly minor version upgrades that break dependent applications.
Each major release of Android brings new breaking changes, especially in areas such as notifications, and permissions for storage and for background code execution.
Keeping up with Android UI design guidelines is difficult, said Bhatia. Material 2 was deprecated in favour of Material 3, most documentation refers to Kotlin rather than Java, and there is “no clear migration guide.” In addition, the guidelines change unpredictably, he claimed.
Relying on third-party libraries is difficult as they may be deprecated or be no longer maintained. Although third-party libraries are not Google’s responsibility, the friction and maintenance burden about which Bhatia complains impacts these libraries too, and makes it more likely that they are abandoned.
The recurring theme is that developers cannot develop an app and keep it current without constant effort, even if there is no need to change its functionality. The same applies to the development environment and tools, said Bhatia, since the tools and Android SDKs are tightly coupled and have to be upgraded together making it an all or nothing choice; and not upgrading will get an app delisted from the Play store when the minSdkVersion specified by Google becomes too old.
Bhatia’s post has attracted widespread support. “It’s an enormous burden to keep apps alive,” said one developer, who has to make updates every few months simply to keep an app in line with policy changes. Issues include new tax information forms, new privacy policy requirements, mandatory API updates, new API bugs, and breaking API changes.
“I maintain an app from 2012, I made 108 versions in Google Play Store … your learnings are similar to mine,” said another.
Developers are unhappy about another issue, that for new apps using App Bundles there is a requirement to send the root signing key to Google, meaning that in theory the app could be modified without the developer’s consent. “When you create a new app you can either choose to have Google generate and store an app signing key on your behalf or you can choose your own app signing key and upload a copy of it,” states the FAQ on App Bundles. There is some mitigation via a feature called code transparency, which is a hash file that shows whether the bundle code has been changed, so the developer can “hold an app store distributing your app to account for the code it delivers.” App Bundles are required for Android TV support. “I wish more people talked about this,” said a comment on Bhatia’s post.
The impact of this friction is to increase the dominance of commercial apps which generate enough income to support the development effort. Free open-source or hobbyist apps are more likely to be discontinued. “I’ve given up on my hobby apps. The coding side is easy; the bureaucracy of the app store makes in completely not worth it unless you’re a company,” said a developer.
The developer of a now-dropped open-source app for SSH (secure shell) file transfers said that Bhatia’s post reflected his own experience, and that it was “not just mine. Many other free, first-rate Android apps – Termux comes to mind – have been driven off the platform by Google’s onerous demands and commercial focus.” This, perhaps, coincides with Google’s commercial interests.
A possible solution is to build web applications rather than mobile applications, though this means limited access to device features and dependence on the version of the web browser in use on the device, both of which are often problematic.
Users may be grateful that Apple and Google have tightened app permissions for security and privacy, and some changes are driven by new regulations outside Google’s control; but many developers agree that the burden of maintenance is too great and that as a result, users miss out on high quality non-commercial apps that they could otherwise enjoy.