June 09, 2020 | 4min read
Does Google’s Flutter Have a Future?
As developers and business owners we want our mobile applications to work well, look great, be cheap and available on all platforms. The newest solution to this problem is Flutter, a cross-platform framework developed by Google that lets you create applications for multiple platforms with one codebase.
Flutter’s future is looking bright and here are a few reasons and examples why.
Why is it important, one might ask? Well, the more popular a technology is, the easier it is to solve problems one might encounter. Mostly because it’s a rather rare occurrence to have a truly unique problem and it happens mainly to those unfortunate fellows called early adopters.
You came in late to the party? That’s great! Now you can focus on what’s important to you instead of hurdles!
Flutter 1.0 was released in December 2018. Its APIs are rarely changed in a breaking way and even so they are always well documented. It’s not an experiment, it’s a trustworthy piece of technology.
Official Flutter site provides learning resources for people coming over from other platforms or those who are new to a declarative UI style. Flutter team creates Widget of the Week series, short video presentations on Flutter’s UI-building blocks. Its documentation is high quality and full of examples. It has an official style guide.
And since Flutter is so popular, it has a lot of unofficial learning resources and a big community with local meetups.
Flutter was created by Google, using Dart, a language also created by Google. The technological giant is pumping a lot of resources into its development, which makes it highly unlikely to be abandoned.
And hey! Do you know what else is under Google’s control? That’s right, Android! Perhaps in the future Dart and Flutter could become first-class citizens on Android and access native APIs without bridging?
Flutter is also rumored to be the choice for creating apps for Fuchsia, the mythical successor of Android. Why not get a headstart in that race?
Native platforms have great tools and IDEs that were evolving and maturing over the years. While Flutter is relatively new, it’s tools are not far behind.
Flutter comes with first-class IDE support through plugins for Android Studio/IntelliJ and Visual Studio Code. Debugging and profiler work well and the developer tools come in handy.
Flutter supports only one language, Dart, and though it might seem like a limitation, I think it’s a strength. Since Google controls both Flutter and Dart, they influence each other and evolve together. Dart might not yet be as nice or powerful as Kotlin, but it’s getting there. And since Dart has two modes of compilation (just-in-time and ahead-of-time), it allows for hot reload while developing and running smoothly and fast on production. It’s also important that Dart is statically typed, which enables powerful analysis and lets tools do the heavy lifting for you.
Even creating plugins for exposing native APIs in Flutter is easy - speaking from experience!
The idea here is to make the developer think about the app, not the platform.
Flutter aims to be the go-to solution for any platform you might want to have a graphic interface on. Flutter already supports iOS and Android, web is nearing production-ready quality and macOS, Linux and Windows are on the way, even if somewhat far from the goal for now.
Recently AWS Lambda introduced support for Dart, so the same programmers responsible for the mobile app could also create a simple backend.
It’s fresh, it’s new, it’s hot! And the reason why that’s good is that people are eager to try it out. The philosophy behind its widgets is not that far off from React Native and while Dart has its quirks, its Java-like syntax makes it easy to understand for any developer. While there might not be a lot of experienced people, it has a rather gentle learning curve. And since people are eager to try it out, they might agree to work for a lower salary, so you might get more senior developers with your budget.
As you can see, Flutter definitely has a bright future ahead of it. Does that mean you should start rewriting your apps right now? Well, not exactly, because as always, there are many things to consider, eg. if your team is already invested in React Native it wouldn’t make a lot of sense (though it would make their life easier) or your apps are wholly native. Nevertheless, you should give it a try and run an experiment with Google’s Flutter—what better way is there for formulating an opinion than getting hands-on experience?