Cross-Platform Native App Development — Life Before and After Flutter

CK Hicks

Development

Creating an app for iOS/Android was once a daunting task. Often the skill, time, or cost were prohibitive factors that held people back from building something great and getting it deployed to the App Store(s).

Many toolsets have attempted to solve these problems, including (but not limited to) React Native, Ionic, Xamarin, Cordova, Appcelerator, and NativeScript. Each framework took a slightly different approach, each had its strengths and weaknesses, and ultimately each rose and fell in popularity.

app development comic
XKCD

But, it’s 2019, this is no longer rocket science. We need a new player in this game. Today we’re going to take a look at Flutter: Google’s cross-platform framework for creating native apps. We’ll address some of the common questions and take a slightly opinionated stance on the future of similar tools.

What are Flutter & Dart? Where are they useful?

Dart is an open-source, scalable programming language, with robust libraries and runtimes for building web, server, and mobile apps. Flutter is an open-source application development SDK used to develop applications for mobile platforms, as well as being the primary method of creating applications for Google Fuchsia.

The current landscape of cross-platform tools heavily favors JavaScript as their starting language, with the promise of write-once-deploy-everywhere sitting juuuust out of reach. This makes time-to-start using similar tools like Flutter/Dart relatively low compared with native languages — time is money.

Why did the Flutter framework suddenly gain popularity?

It was inevitable that a new framework would enter the arena and shake things up, but Flutter isn’t actually “new” anymore. It was in alpha testing back in 2017 and originally unveiled at the Dart Conference under the name “Sky” back in 2015. But a low profile from Google until its 1.0 release at the end of 2018 has caused a sharp increase in interest around the framework, specifically on YouTube over the past 90 days.

flutter interest infographic
Google Search Trends

What popular apps were built with Flutter?

Here are just a few high-profile apps that have been created with Flutter. With more popping up all the time, there’s a lot of room for anyone to write code in Dart and deploy their idea to the App Store(s)!

Google AdWords | It's All Widgets!
The Google AdWords app helps you keep your ad campaigns running smoothly - no matter where your business takes you.itsallwidgets.com

SpaceX GO! | It's All Widgets!
Simple yet powerful, open-source SpaceX launch tracker.itsallwidgets.com

Toon Blocks | It's All Widgets!
Easier than painting. More creative than coloring.itsallwidgets.com

Fluttergram | It's All Widgets!
A working Instagram clone using Firebase & Firestoreitsallwidgets.com

Will Flutter replace React Native?

This is an extremely popular question right now, as evidenced by the number of blogs and videos speaking to the topic. We gave our opinions on this sticky situation at Cremalab with a quick review of Flutter, its ecosystem, and how it stacks up against React Native in its first release version.

Is Flutter likely to replace Java for Android app development?

It’s hard to say right now, but my gut says that there will always be a need for 100% native apps. Device APIs are tricky and often not fully utilized inside a cross-platform framework, which can place a limitation on available features.

Does Google’s Flutter represent the future of app development? What is the future of flutter?

Will Flutter become the defacto standard for mobile development? Probably not. There will always be new tools on the horizon. Does Flutter pose a compelling answer for those wanting to build beautiful apps in 2019? Absolutely!

At this time, Flutter is very appealing to developers who wish to create cross-platform applications, allowing for one Dart codebase that transpiles into widgets in native mobile development languages.

Asking yourself: “Should I learn Flutter?” is an important question. React Native was initially released in 2015 and has taken the mobile development scene by storm. Flutter appears to be poised to do the same, especially with the initiatives for embedding on the desktop and (eventually) onto the web via Hummingbird.

Where can I learn more about Flutter?

Head over to the documentation on Flutter.io and check out the guides for migrating from other development frameworks. There’s no replacement for jumping in and playing with the tools and toys that these platforms provide — what could you build with such a robust starting point?