Updated on 13th May 2022 mentioning Flutter 3.0.
If you're a CIO or CTO, you've probably heard of Flutter. I'll attempt to explain what it is in plain English, and when you should consider using it.
Back in 2017, I met with Tim Sneath, the Director of Product Management for Flutter. We talked about this new technology Google was developing and its vision for the future.
Tim described Flutter as a toolkit for building visually stunning apps that would make developers more productive. It would allow them to write code once and then run it in many places. Companies could see a cost-saving without compromises. This wasn't anything new, but I could see how their unique approach might get closer to their vision than others who were doing something similar - namely Facebook and Microsoft.
The idea is not to start with the platform, but the experience you want to create. Tim talks more about this in Flutter Engage 2021.
Like many, I played with Flutter but didn't give it too much attention back then. All of us at Pocketworks felt it was too young and immature for serious commercial projects. All that changed in the summer of 2020 when I noticed Flutter had left Beta and the community was getting more mature. Large companies like BMW were using it, and Google themselves were making apps with it.
In 2020, we started developing our first Flutter app. Carbs & Cals is a cross-platform app to help people with diabetes manage their diet. It's a Flutter app built for Android and iOS.
Let's have a look at what Flutter is.
Let's imagine you want to build an app for your business that will work on iPhones, iPads or Android devices. You need some developers to create your app. Just like a house builder chooses what type of bricks they'll use to build a wall, your app developers will pick their own building blocks to make your app.
Therefore, Flutter is simply a set of building blocks that developers use to make apps.
A developer has a lot of choices when it comes to selecting these building blocks; Apple. Microsoft and Facebook all offer building blocks that developers can use to create apps. To name a few, there is Swift, SwiftUI, iOS SDK, React Native and Xamarine.
As you can see, there are lots of building blocks that practically all do the same job. Developers simply pick one and then crack on building your app. Make sense?
If you're a bit of a techie geek like me, you might appreciate a more practical view of things.
A developer using Flutter will have the Flutter development kit and the Dart language on her laptop. She might use Visual Studio Code or some other text editor to write her apps. The apps will still run in the usual iOS or Android simulator, or she can run them on her phone just like any other app.
Behind the scenes, a Flutter app is basically an iOS or Android app that, when it starts, spins up a virtual machine. This virtual machine runs the Flutter app at 60fps. It looks and feels like a real native app, but it's not. Just as a Unity game is drawing pixels on the screen to render scenery and characters, a Flutter app is drawing pixels on the screen that look like a real iOS or Android app.
Google has also enabled this "virtual machine" to run in browsers and on desktops.
This is all very well, but similar gains can be got from other frameworks out there today. Why is Flutter worth a look?
Peeyush Ranjan, VP of Engineering at Google Pay, said:
With Google Pay, we had to launch in 30 countries on Android and iOS. There were 1.7m lines of code prior to Flutter, and we had increasing technical debt. We ended up with a 35% smaller code base, and our tech debt dropped by 90%. And our developers were 20% more productive. We could merge all our duplicate code.
The executives I've spoken to love the idea of Flutter because it offers a few benefits, as discussed below.
When you create a Flutter app, the customer experience should feel really nice. Just like a real app, or close enough. This basically means it feels fast and looks like the real deal . After all, the goal is to give people a nice user experience.
Flutter gives all the benefits of a "proper" app. You can send push notifications. Customers can use the app when they have no internet connection - good for enterprise apps where people might be travelling or on-site. It can load very quickly and process a lot of data - good for artificial intelligence and image manipulation.
You can save money because a Flutter app will work on iPhones and Android phones. Typically you'd have to develop the app twice for each of these platforms. But Flutter lets you do this once means you can invest 20%-40% less. This isn't unique to Flutter; React Native and Xamarin offer similar promises. However, Flutter is advancing very quickly in comparison. Flutter 3.0 brings support for foldable phones and some of the latest advances in iPhone screen technology.
A Flutter app can now also run on your laptop or in your web browser. So it's not just phones and tablets. This means that you can create experiences that can greet your customers on whatever device they are using, without having to build your app from scratch for each device. With Flutter 2.5, Google has doubled down on making Flutter a stable, performant platform.
Similarly, Flutter is going to work on embedded devices such as cars, cameras, ATM machines and TVs. This is good news for manufacturers wanting to slick experiences for their customers. It will be another choice alongside Qt and Kivy. Daniel Hall, Global Chief UX Designer of Toyota, says:
Toyota customers expect a consistent and high-performance in-vehicle experience.
There are more big names behind Flutter. Microsoft is now contributing to the Flutter project to allow them to create apps for their Surface Duo foldable phone.
Google is also working with Ubuntu to make Flutter the go-to platform for Linux Ubuntu desktop apps.
Here's a list of companies and products that are using Flutter.
See more in the Flutter showcase.
Some are using it to experiment with small ideas, most are launching fully-fledged apps with millions of users. So, Flutter is getting serious use compared to 4 years ago when I met Tim.
Pocketworks has developed and released consumer Flutter apps for Carbs & Cals and Toucan. These are both cross-platform apps for Android and iPhone.
Since Flutter also supports desktop apps, I wrote a desktop app for managing my to-do list or creating mobile strategy canvases. I wanted to see notes side-by-side as I find hopping between related notes tedious. This simple app took a few days to develop.
Some food for thought is below.
You can see Tim and his team take about Flutter in this video (Flutter Engage 2021). Note that Flutter 3.0 has just been released. It's now mature enough to use on all desktop platforms, including native Apple silicone support.
Learn more about foldable phones and dual-screen design patterns here.
Pocketworks is a mobile-first software company that helps organisations improve their customer experience with mobile technology. We enable our clients use research and data to find the right solution and deliver apps and digital products that increase customer satisfaction and retention.