This article continues my tradition of yearly reviews of the Android ecosystem. This year, I added “cross-platfom” to the title because, as you’ll see shortly, we’ll discuss these technologies extensively. So, let’s reflect on 2024 and make some predictions for 2025.
Last Year’s Predictions Review
As usual, I’ll start by reviewing my predictions from one year ago.
In 2023, Google Play introduced a closed testing phase requiring at least 20 testers as a prerequisite for publishing new apps by individuals. Reflecting on this policy change, I wrote:
The stated reason for this change is to increase the quality of new applications on Google Play. However, I tend to think that the real reason is that Google just wants to reduce the overall number of new apps. All those apps that Android devs and aspiring indies upload to Google Play and then abandon cost Google money to host and manage, so introducing a higher barrier for entry will immediately reduce their overhead.
I wonder whether this change will mark the end of the era of Android enthusiasts.
I feel that Google succeeded in its objective to pour a bucket of cold water on Android development enthusiasts. In fact, it seems they overshot, as the number of required testers was reduced to 12 last year. I see this reduction as an encouraging sign, because it shows that Google acknowledges the importance of indie developers to the ecosystem.
I predicted that Compose Multiplatform would be in the spotlight in 2024:
One of the technologies I’m going to watch in 2024 is Compose Multiplatform. As far as I understand, it’s pretty much JetBrains’ solo initiative which aims to build a UI framework along the lines of Jetpack Compose, but for multiplatform use. This tech is in its infancy, so, just for the record, I wouldn’t dare to actually use it in a production setting.
This prediction turned out to be accurate, and I have much more to say about Compose Multiplatform this year.
Then I followed up with some thoughts on Kotlin Multiplatform:
There are numerous reasons to be skeptical about KMP, but the main one for me is the lack of strategic business alignment with either Apple or Google. When Google had been fighting a legal battle against Oracle over Android, it made sense for them to invest into a backup plan, so they collaborated on KMP. But once Google prevailed in that lawsuit, I just can’t see a reason for them to share the development ecosystem with JetBrains, especially given they already have their own multiplatform framework – Flutter. Apple is even less interested in KMP than Google. This leaves JetBrains to do all the heavy lifting by themselves, facing potential road blocks from Google and Apple.
That said, JetBrains is an amazing company with strong leadership and very technical DNA. Furthermore, Kotlin Multiplatform is not just a side project for them, but a strategic initiative, so they’re heavily invested into it. With the addition of Compose Multiplatform into the toolbox, maybe KMP will finally break out in 2024.
Did KMP break out in 2024? I’ll share my thoughts later in this post.
Flutter received a neutral rating:
All in all, looks like Flutter gained a considerable market share, but isn’t going to replace either native Android development or even React Native any time soon.
This prediction turned out to be accurate.
Unsurprisingly, last year’s edition included AI discussion:
What I’m looking forward to in 2024 is the rise of on-device AI. There are already free models that can be run locally, so I guess the question now is performance and power optimizations to allow their widespread adoption for specific use cases.
Progress in this area has been underwhelming. At the very least, I expected AI-enabled APIs to allow Android apps to be controlled by user voice commands. Such features could significantly enhance accessibility and unlock “hands-free” experiences. Unfortunately, this hasn’t materialized yet.
I also shared a personal dream:
On the tooling side of AI, I hope we’ll get a tool to convert Figma mockups into UI code automatically. Every time I build UIs, it feels like copying a book by hand before the invention of a print.
Still waiting for a magical AI-enabled UI generator. Some startups are working on this, so I wish them luck.
HarmonyOS NEXT
Last year, Huawei, the Chinese behemoth OEM, launched a new version of their HarmonyOS operating system called HarmonyOS NEXT. Unlike previous versions, NEXT doesn’t include any AOSP code and isn’t compatible with existing Android apps. Therefore, while it retains the HarmonyOS title, NEXT is a completely new operating system.
Launching a new OS might sound like a suicide mission, but HarmonyOS NEXT is a calculated bet. Beyond business considerations, major geopolitical interests are at play here. China aims to develop its software and hardware capabilities, and Huawei’s move is likely backed by the Chinese government.
This development is worth watching. While HarmonyOS NEXT may not affect Android immediately, it has the potential to become the world’s third mainstream mobile platforms in the long run.
Kotlin Multiplatform
In 2024, Kotlin Multiplatform gained traction. Google Trends data shows that interest in KMP nearly tripled during the year:
Plotting Compose Multiplatform on the same chart shows that, indeed, the lack of a cross-platform UI framework was the missing piece for KMP:
Moreover, it seems that KMP received increased support from Google this year. This surprises me, as I still don’t see a clear business incentive for Google. Nonetheless, the newly found support is evident.
Is Kotlin Multiplatform the future of Android development? It increasingly appears so, though it’s still a niche technology (especially Compose Multiplatform), so I wouldn’t fully commit to it yet.
React Native
Last year I noted the surprising fact that Flutter doesn’t seem to be cannibalizing React Native’s market share. What I didn’t predict is the surprising renaissance of React Native.
At least two major React Native milestones were achieved in 2024:
- Rearchitecture of the React Native framework, which removed the notorious “bridge”, has been completed.
- Shopify finalized the rewrite of their main application in React Native, resulting in better performance, fewer crashes, and 86% code reuse between Android and iOS.
This “behind the scenes” story of React Native at Shopify is very interesting, as it shows how carefully these folks approached the pivot to cross-platform development.
As surprising as this might sound, looks like React Native is back in the race of cross-platform frameworks. In fact, React Native might actually be the current favorite in that race.
Flutter
The biggest Flutter story in 2024 was the Sonos fiasco: a publicly-traded, respected company, released a buggy rewrite of their application to all customers. Worse yet, they couldn’t re-release the old application to mitigate the damage, so the company and its customers got stuck in this unpleasant situation.
Frankly, I don’t think that Flutter played a major role in this story. All the available information points to a surprising level of incompetence among the company’s leadership, so they’d get in trouble regardless of which framework they’d use. However, since Sonos had been very vocal about their use of Flutter, this business disaster got associated with the framework.
There were also layoffs at Google that affected the Flutter team. Even though other teams had been affected as well, a Flutter doomsday narrative emerged on the spot.
My biggest issue with Flutter remains the fact that I don’t see a compelling business case for it for Google. After Oracle lost their lawsuit against Google, I thought that Flutter might serve as a strategic hedge against React Native. However, since Flutter doesn’t seem to hurt React Native that much, this is very weak motivation.
I think that 2024 wasn’t a good year for Flutter, and I don’t see a reason to expect a breakthrough in 2025 either.
Native Android Development
Where does native Android development stand? Donn Felker summed it up well:
If a company needs iOS and Android applications, it doesn’t make sense to roll out fully native apps in 2025, unless there are special constraints. In this sense, native Android development loses its ground.
Said that, I think that ignoring native development and going all-in on one of the cross-platform frameworks is not a good career move. Sure, cross-platform seems to be approaching the critical tipping point, but native will remain the mainstream for a long time. Most of the jobs, especially the best-paying ones, will be in native development in 2025. Furthermore, even if you’re hired as a cross-platform developer, you still want to be able to drop down to the platform level when issues arise (in at least one platform).
I still see native Android development as my main area of expertise and focus in 2025.
Mobile Web
I don’t think that mobile web will ever become a mainstream option because app stores are multi-billion businesses for Apple and Google, so they’ll do everything possible to maintain their dominance. Furthermore, given the current state of cross-platform frameworks and access to the global talent pool, rolling out simple mobile application(s) has never been easier and cheaper.
AI
I’m still enthusiastic about on-device AI and its applications for accessibility and user experience. I also remain bullish about AI development tools, especially UI code generators.
Conclusion
2025 might turn out to be the tipping point for cross-platform frameworks in mobile development. While these technologies remain niche, momentum is building.
Therefore, I’ve decided to master a cross-platform framework myself. Surprisingly, the hardest part of this plan is choosing which framework to focus on. This meme I created sums up my dillema, with React Native as a third option.
You might wonder why, as an Android developer, I don’t immediately choose Kotlin Multiplatform. After all, it’s the closest to my existing skillset, and I greatly admire JetBrains, the company behind this technology. However, KMP (along with CMP) remains the least popular and least mature option among the available frameworks, as is reflected in this Google Trends chart:
So, deciding which cross-platform framework to adopt is tough. I’ll keep you updated on my direction, once I make up my mind, and further progress.
That’s it for this year’s predictions. Thank you for reading! Feel free to leave your comments and questions below.