Faster app production?

07 March 2019

How Flutter changed our app development process and why you should care

What is Flutter?

Flutter is another cross-platform app development framework, made by Google. It rivals Microsoft’s Xamarin framework and Facebook’s React Native and has so far been met with a ton of praise and a great community response.

It works differently to Xamarin and React Native. They both render native iOS and Android view components, then Xamarin has some shared business logic code and React Native uses a JavaScript bridge for its shared code.

Flutter however renders its own view components, called Widgets, meaning the same UI code runs on Android and iOS (or any other platform Flutter runs on) pretty much guaranteeing the UI will look the same across everything. It also compiles down to machine code, so it still runs blazingly fast and provides native performance, unlike frameworks that use a bridge (like React Native).

How does it compare?

Enough of the technical talk, here’s a few diagrams comparing them:

Native:

Xamarin Native:

Flutter:

You can see the progression in shared sections of the app development process. First off, it’s nothing, then it’s the logic and now it’s the UI which is arguably the biggest part of an app.

Having shared UI and business logic means it’s a piece of cake to make an Android and iOS app from one codebase. It’s about 1x the effort but 2x the output! There isn’t a perfect way to share platform specific integrations yet, but there’s tons of packages (bits of code other people have written and published for other developers to drop in to their projects to save them writing, testing, fixing, testing, fixing...) for Flutter already that means there is just a couple of lines you only have to write once and it works seamlessly on both!

There are still some gaps or some highly specific functionality you need which requires you to write a plugin yourself. This involves writing platform specific code for just these bits, so this makes Flutter around 1.2x the effort.

What are the benefits?

Let’s look at how this affects estimates and project costs (by no means is this a guarantee that a given project will be 80% cheaper or quicker, this just means that while your project is being built in Flutter, you can rest easy knowing it is being built at a much faster pace):

With these savings in time and cost, this might allow for some niceties to make their way into the scope of a project (the lower priority shoulds and coulds).
For example, animations are usually low on the priority list for most projects but because Flutter speeds up development time, we can have time left over to add in some animation snazziness!

Animations in Flutter are nice and simple: simply say how long you want the animation to last, what values you want to animate from and to, and done – the UI will update for you. Reflectly is a nice example of the kind of compelling animations that Flutter allows you to make easily.

What next?

Well... we love using Flutter! And on a personal level, I strongly feel that Flutter is the way forward for mobile development, not even considering further down the road with desktop and web apps made in Flutter.

Do you have a mobile project you want to be a success? Talk to us to see your idea come to life!