Another year has passed, so it’s time to write my traditional annual review of Native Android development ecosystem.
Last Year’s Predictions Review
Like every year, I’ll start this post by checking if my predictions from last year were accurate.
Let’s start with Jetpack Compose. That’s what I wrote:
Don’t get me wrong, though. I’m sure that, eventually, the majority of Android developers will be using Compose. Just like we use Kotlin today. However, the timing of adoption is still a very important decision with major potential consequences. So, developers resisting the hype can spare their projects a lot of unneeded overhead, which is especially important in the current financial climate.[…]
My predictions for Jetpack Compose are fairly straightforward: it’ll keep maturing and gaining traction going forward. I hope Google will implement proper hot reload for Compose this year (which they call Live Edit), so we could get at least some real benefits from this questionable addition to our toolbox.
These predictions, which, to be frank, were kind of obvious, played out as expected.
Then I discussed the regulatory crackdown on Google’s effective monopoly on billing systems and app stores in Android:
Google allowed alternative in-app billing systems to be used by apps distributed through Google Play. Currently, this option is available in just several countries and EU, and comes with many strings attached. Nevertheless, in my opinion, it’s a major step forward in terms of opening up competition around Google Play.
The reason for this change is pretty clear: antitrust agencies all around the world are looking into Google’s monopoly over Android and impose regulatory and legal restrictions on Google’s mobile business.
In December 2023, Epic won a lawsuit against Google arguing that Play Store is a monopoly and that Google employ anti-competitive tactics. Obviously, Google will appeal this decision, so this saga is far from over yet, but this does look like another step forward on the path to opening up of the Android platform for competition.
I was surprised to find out that last year I discussed large screens:
All in all, I expect the current wave of “big screen” enthusiasm to fade away pretty quickly, without leaving much impact on the ecosystem.
Well, given I forgot about “big screens” at all, looks like the enthusiasm faded away even quicker than I anticipated.
Another surprising discovery is that I was extremely bullish on the ability for users to change the in-app language from the settings:
All in all, given the fact that implementing per-app language choice became much simpler with the new APIs, I expect more apps to implement this feature than we saw in the past.
Not sure how prevalent this feature became and how many users use it. Maybe I was just a bit too enthusiastic about it because I had had the “pleasure” to implement this feature manually in the past.
Lastly, last year I discussed Flutter and its surprising growth. I’ll reflect on this topic again later in this article.
Now let’s see what happened this year and make some predictions for the future.
20 Testers Requirement for New Apps on Google Play
Starting November 2023, new personal apps on Google Play will have to go through a 14-day closed testing phase with at least 20 testers, as a precondition for production rollout. This is a major change in the policy, mostly affecting indie developers. If you think about it for a moment, this policy introduces a very high barrier for entry for many individuals, especially if their app idea is very niche.
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 new 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 think it’s fair to say that 2023 was the year of Jetpack Compose in Android, just like 2022. Most of community’s resources and attention was directed towards adoption and migration to this new UI framework.
Last year I had said that Compose still looked immature to me, so I was hesitant to adopt it. Well, I did use Compose in my latest freelance project and it did turn out to be a bit immature. I won’t go into more details here, but, instead, will soon write a dedicated post summarizing my first practical impression of Jetpack Compose.
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.
Kotlin Multiplatform is fascinating technology developed by JetBrains, which, so far, hasn’t delivered on its promise and hype. Sure, there are enthusiasts out there who use this tech, and even some big companies that invest into it heavily. However, as of today, KMP isn’t widely adopted.
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.
Last year, I was surprised by Flutter’s growth. It proved my initial skepticism wrong and managed to gain a considerable market share. However, looking at various metrics today, it looks like Flutter’s growth began to plateau.
For example, take a look at this chart from StackOverflow Trends:
You can clearly see that the share of Flutter questions didn’t grow during 2023, while the share of Android questions increased for the first time in a decade. Also, just like last year, the share of React Native questions didn’t decrease, which suggests that it’s probably too early to discard this framework.
Now, that’s just one data point and it can have multiple explanations. TIOBE index of popular programming languages loosely supports the proposition that Dart isn’t as hot as last year, while IEEE Spectrum and PYPL rankings still reflect good momentum for Dart.
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. There are also major differences in Flutter’s adoption rates between geographies. For example, in my country, Israel, it’s not very popular and job postings for Flutter devs are relatively scarce, while in other countries it’s the hottest mobile tech to know.
If we take a step back from mobile development, 2023 was the age of AI. This technology, which would be considered a sci-fi level of progress just two years ago, became commonplace and even ubiquitous.
There is already no shortage of apps that integrate with third-party AI services like ChatGPT over the internet. 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.
This definitely feels like the next frontier of mobile development to me.
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.
Alright, that was my reflection on the past year and some predictions and wishes for the next one. I keep doing Android consulting, so I hope to convey more personal experiences, learnings and horror stories to my readers and students in 2024.
Happy New Year everybody and, above all, let’s hope for a peaceful, prosperous and boring year.