The Software World
First off, I want to apologize if the title came across in a way that was off-putting. I've consistently admired Google's products, particularly their innovations in the mobile development space.
When it comes to well-known cross-platform mobile development frameworks such as Xamarin, React Native, and Flutter, I find myself gravitating towards Flutter. This inclination is influenced not only by Google’s backing but also by Flutter's increasing prominence, which is reflected in the rising number of questions asked on Stack Overflow.
Nevertheless, there has been an unforeseen change recently: Google has laid off members from the Flutter and Dart teams (source). This took me by surprise and led me to speculate on the potential reasons behind this decision.
It doesn't look like a wide-scale restructuring since it has only impacted certain areas. This indicates a strategic focus on key investments and a gradual divestment approach. Google spokesperson Alex García-Kummert commented on this by saying, "As we’ve said, we’re responsibly investing in our company’s biggest priorities and the significant opportunities ahead" (source).
After looking into it more closely, I found out that this isn't a one-time occurrence. Google had already let go of some members of the Fuchsia team last year (source), the team responsible for this Flutter-native operating system. This makes me think that these steps are part of a deliberate strategy.
Given the latest developments and the new trends we're seeing, I'm growing more unsure about where Flutter is headed. Let me start by explaining why Flutter came into existence in the first place..
In 2010, Oracle initiated legal action against Google concerning the employment of Java, specifically within Android (source). This courtroom conflict extended over several years. Even with the persistent lawsuit, Android flourished in the early 2010s and stays pivotal for Google in connecting with mobile users and broadening its tech presence. A loss in the Oracle vs. Google lawsuit could significantly impact Google's position in the mobile arena.
Consequently, Google had to devise strategies to lessen its reliance on Java. A major step in this direction was the 2017 introduction of Kotlin as a first-class citizen. This choice guaranteed the ongoing development of Android, irrespective of the Oracle vs. Google lawsuit's resolution, thereby protecting Google's standing in the mobile industry.
At that moment, the choice to promote Kotlin to a first-class status appeared hasty to me, particularly given the signs that it wasn't fully prepared in Android Studio 3.0. I thoroughly discussed these issues in the article I penned back then (the article).
At that moment, it felt to me like the choice to promote Kotlin as a first-class language was made too hastily. This was especially apparent given the signs of its unpreparedness in Android Studio 3.0. I discussed these issues thoroughly in the article I wrote back then (the article).
Depending exclusively on Kotlin can be risky since it's a language created by JetBrains, not Google. To reduce this risk, Google aimed to create an alternative based on a language it wholly controlled.
Back in 2015, Google unveiled its vision for mobile development without the use of Java, opting instead for the Dart programming language and a framework initially called Sky (source), which eventually became known as Flutter. Flutter made its official debut in 2017 (source), around the same time Kotlin was recognized as a first-class language for Android development. This deliberate strategy from Google offered an alternative route, aiming to enhance flexibility and control within the Android development landscape.
In my view, both Kotlin and Flutter have seen remarkable success from 2017 up to the present. This leads me to think that they will continue to be influential well into the future.
Nevertheless, current trends and occurrences imply that Google might soon favor one option over the other, possibly eliminating the less preferred choice. The examples highlighted below illustrate this shift.
Since Kotlin was named a first-class citizen for Android development, Google and JetBrains have consistently improved it, leading to Kotlin's rise as a leading language in Android development.
Since Android Studio was introduced in 2013, grounded entirely on IntelliJ, the two companies have collaborated harmoniously. This decade-long partnership has been advantageous for both sides. IntelliJ has successfully expanded Kotlin's use beyond just Android development, while Google has increasingly integrated Kotlin into its Android development efforts.
According to statistics, Kotlin is evidently ahead of Dart, holding the 19th position while Dart is in 26th (Tiobe Index). In the 2023 StackOverflow Survey, Kotlin was favored by 9% of respondents, whereas Dart was preferred by 6%.
According to statistics, Kotlin outperforms Dart, holding the 19th position while Dart is at the 26th (Tiobe Index). In the StackOverflow 2023 Survey, 9% of developers showed a preference for Kotlin compared to 6% for Dart.
Jetpack Compose and Kotlin Gradle
Kotlin’s prominence in Android development was underscored by Google with the launch of Jetpack Compose in 2019 (source). This framework, which is entirely rooted in Kotlin, strengthened Kotlin’s association with native Android development even more.
Additionally, the Gradle build environment has shifted from utilizing Groovy to Kotlin. Consequently, Kotlin now dominates the Android development ecosystem, solidifying its position as a primary language for Android development.
Kotlin Multiplatform (KMP)
Regarding JetBrains, they have extended the use of Kotlin beyond just Android development. They are now also focusing on iOS and web development with Kotlin Multiplatform development.
This approach distinguishes Kotlin from other mobile development frameworks such as React Native, Xamarin, and Flutter by acting more like a platform rather than just a framework. Kotlin Multiplatform, unlike these frameworks, doesn't enforce a specific architecture for the entire app. Instead, it can be integrated into existing native iOS and Android projects.
To streamline the integration of the Multiplatform framework within the Android ecosystem, Google staff have played a vital role in its advancement (source). This teamwork has helped the framework align more closely with the Android operating system, making development on this platform more straightforward.
This flexibility allows for smooth shifts between strictly native and multiplatform development, giving developers the power to modify their projects based on evolving needs.
Not too long ago, I took a deep dive into it and observed its distinctive methodology, which differentiates it from other cross-platform development frameworks. I foresee great potential in Kotlin Multiplatform, even though it's still in its early stages, as this article describes.
Not too long ago, I explored it myself and observed that it has a distinctive method, distinguishing it from other frameworks used for cross-platform development. I foresee great possibilities for Kotlin Multiplatform, especially during its early stages, as described in this article.
As previously noted, Kotlin Multiplatform stands out from other mobile development frameworks because it is a platform rather than a framework.
Therefore, it's not truly an apples-to-apples comparison, as Kotlin Multiplatform, especially in its early stages, still heavily relies on native development, particularly when it comes to UI elements specific to iOS and Android.
Jetpack Compose + Kotlin Multiplatform
In recent years, JetBrain has shifted Jetpack Compose to Kotlin Multiplatform, renaming it to Compose Multiplatform.
This advancement has allowed the native UI aspects of both iOS and Android to be developed simultaneously. It facilitates growth from the platform side upward and lessens the necessity of separate work for each platform.
This progress has positioned it as a strong competitor to Flutter. Although it isn't developed by Google, it receives substantial backing from the company.
There's an ongoing conversation on Reddit that showcases the potential of KMP in this field: https://www.reddit.com/r/FlutterDev/comments/1afeo2r/has_anyone_used_compose_multiplatform/.
Flutter started as a strategic initiative for Google, targeting multiple goals, including bolstering its stake in the rapidly growing mobile development market and reducing the potential risks stemming from the Java-related legal dispute with Oracle.
However, Kotlin's impressive success, along with the exciting prospects of Kotlin Multiplatform and Google's close partnership with IntelliJ, have transformed the mobile development environment significantly, consequently reducing Flutter's initial value proposition for Google.
Flutter is still a Google’s success
Despite this, Flutter has seen significant success, demonstrated by its use by major companies like Alibaba, ByteDance, and Google, which has integrated it into apps like Google Pay and Google Earth. Additionally, there's a vibrant Flutter community constantly promoting its adoption.
Despite the Fuchsia team experiencing some cuts, the project is still ongoing for now.
My bet on Google’s next move
My guess is that Google will probably keep supporting Flutter for quite some time. It continues to be one of the leading cross-platform mobile development frameworks out there, possibly even the best. So, I don't think Google will suddenly stop supporting it as happened with Xamarin, which ended support on May 1, 2024 (source).
A gradual downsizing of the Flutter and Dart teams seems more likely, causing development to slow, as Google keeps an eye on its strong position in the mobile market, its collaboration with JetBrains, the community’s involvement, and the evolution of its technology.
Personally, although I'm not a big fan of mobile frameworks (as discussed in my article here), I sincerely hope Google doesn't completely drop Flutter like they've done with numerous other projects (source1, source2). The community heavily depends on it. Ideally, I'd like to see Google allow community support before making any final decisions.
Best wishes to my fellow Flutter developers!