Cross-platform app development frameworks are nothing new, but Google's Flutter has raised some questions.
A developer that needs to create both Google Android and Apple iOS applications might take a native development approach and create two different apps using two different technologies. But that plan requires double the effort. Cross-platform frameworks enable developers to write code that can run on both Android and iOS.
Google released Flutter's preview in June as an addition to a variety of existing cross-platform options, including React Native and Microsoft's Xamarin. But unlike other cross-platform frameworks, Flutter is developed by the same company that created the native Android development stack. Although Flutter was a big topic at Google I/O 2018, the company has been relatively quiet about its long-term plans.
Why is Google being so silent about its plans for Flutter? Why would it create a development platform that could threaten its own operating system? Here, we'll delve into some theories.
Is Flutter a last chance for Dart's survival?
Flutter applications are written in the Dart programming language. On various forums about Flutter, software developers have come up with the theory that a team inside Google developed Flutter to save Dart because the language is dying.
Software developers constantly engage in flame wars in a desperate attempt to prove that their favorite language is the best. So the idea that a company would invest considerable effort to save a programming language doesn't sound crazy.
However, it's important to understand that Google's Flutter is a stand-alone project with dedicated developers, project managers and budget. Google designated a couple of community members as Google Developers Experts for Flutter, which indicates that Flutter even has PR.
Developers are often emotionally attached to programming languages, but managers and executives that approve budgets and business strategies usually aren't. Therefore, it's unreasonable to assume that Google invested in Flutter to save Dart.
Is Google concerned about third-party frameworks?
Some software developers argue that cross-platform development frameworks pose a threat to Google's control over Android, and that Flutter is Google's response to a competitive market of third-party platforms.
If Google is concerned about third-party, cross-platform frameworks beyond its control, it would be a sound defensive strategy to roll out its own tool. Also, Google's Android team doesn't acknowledge Flutter's existence, which might strengthen this theory even further.
But that theory also gives cross-platform development too much credit. None of them pose real short-term or medium-term threats to native platforms. Airbnb, for example, recently phased out React Native and went back to full native, which will likely increase the natural skepticism toward cross-platform development.
Is Google's Flutter the vanguard for Fuchsia?
Official information about Fuchsia, Google's new operating system (OS), is also scarce. Fuchsia has been in development for several years, but it's unclear what Google intends to do with it. Speculation ranges from a stand-alone OS for autonomous cars to a replacement for Android in case Oracle wins an injunction in the Oracle America Inc. vs. Google Inc. lawsuit.
Although there is little information about Fuchsia's roadmap, we do know that Flutter will be its native development framework.
There are three conditions for the successful introduction of a new OS:
- there must be hardware that supports the OS;
- the OS must have a minimal set of applications; and
- there must be developers who can develop new applications for the OS.
Since Google's Flutter is Fuchsia's native framework, any developer that masters it can be considered a Fuchsia developer.
The last theory about Flutter is that it's a vanguard for Fuchsia. In this role, the intent behind Flutter would be to establish a developer's community for the new OS.
None of these theories imply that Flutter will become a better alternative to native Android or iOS development. I recommend avoiding using Flutter to develop Android and iOS apps, although this recommendation might change if the official Android development guidelines acknowledge Flutter's existence and treat it as a first-class choice for native Android development.