What is Flutter, and why it seems like the future in app development?

What is Flutter, and why it seems like the future in app development?

Fast application development and native performance are just a couple of good reasons why developers are starting to turn their eyes to Flutter. But what else have Flutter to offer?

App Development - User Interface Sketch and computer with code

A brief story of App development technologies

When talking about the future, it’s sometimes necessary to visit the past for a moment.

 

Before the pandemic, before working from home, before exchanging our ergonomic chair for a standing desk or a pilates ball, HTML was there. With HTML, we developed web pages and brought technologies such as JavaScript and CSS together.

 

To create a simple website, you had to switch between these three languages: HTML as your markup language, CSS as your styling syntax, and JavaScript as your programming language.

 

We had the solutions to develop our website and share it with an audience who saw the final development on the same computer monitors where we programmed it. Then things started to change; screens got smaller and turned into mobiles, and the way we developed these new technologies radically changed how we used to do our work. 

 

The beginning of mobile app development

Cordova was released in 2009, and a couple of years later, HTML5 was launched. The thinking was that if we knew HTML and JavaScript, we could start building applications for mobile devices. And this would have been true if we had been exceptionally talented developers who understood all the nuances and quirks of all the platforms we were targeting.

 

So apps that behaved awful or looked ugly began to emerge. Creating micro-websites via Cordova that had native functionality was fiction. There were apps so bad that you could even select the text where it should not be or zoom in where you were not supposed to zoom in… and many other horrors.

 

Over time we had more progressive technologies like Ionic that also used Cordova and offered a more robust framework to build an application, but this did not solve the main problem of hosting a micro-website on your mobile device with access to native components. In addition to usability, the main problem was performance: using HTML and JavaScript on a device like an app often resulted in inferior performance.

 

Xamarin and React 

In 2013, Xamarin was born. A tempting technology for those who already had knowledge and experience in C # and .Net, so they could already develop apps as well. The advantage came from C #, a more advanced and mature programming language. When Microsoft bought Xamarin, it made it possible for anyone to develop a complete business application without paying the costs of a license.

 

In theory, it was an incredible proposition. Someone had turned the knob, and suddenly everyone with the knowledge on these platforms could create applications for phones and mobile devices.

 

Better yet, they could create a native phone app without using HTML or JavaScript. Performance would also be superior, as the application itself would run at near-native speeds. We were living in the future.

 

Then came React Native, one of the most popular cross-platform native implementations. It allows the developer to present native views and for these views to communicate with the cross-platform JavaScript backend through a bridge.

In more recent times, native development has not stalled at all. Apple recently launched SwiftUI with great success, and Android has seen improvements in its native toolset. 

 

The present for native development has never looked better, only held back by one problem: the act of writing the application n number of times, where n is the number of platforms we want the application to run on.

 

Writing the same application multiple times for multiple platforms seems to violate the Don’t Repeat Yourself (DRY) principle, one of the fundamental beliefs of software development.

And now, Flutter

Flutter - App Development - Flutter Logo
Flutter is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase.

If you’ve already heard of Flutter, you’ve likely heard of it in the context of mobile app development, and it’s enjoying a meteoric rise in popularity since its stable release in 2018.

 

Flutter is Google’s portable UI toolkit for crafting beautiful, natively compiled mobile, web, and desktop applications from a single codebase. Flutter works with existing code, is used by developers and organizations worldwide, and is free and open source.

We can also talk about the possibilities with flutter in the web development world, but that will be another post soon.

Flutter lets you create a native mobile app with a single code base. That means that you can use a programming language and a codebase to create two different applications (for iOS and Android).

Flutter consists of two crucial parts:

  • An SDK (Software Development Kit): a collection of tools that help develop your applications. Includes tools to compile your code into native machine code (code for iOS and Android).
  • A framework (widget-based UI library): a collection of reusable UI elements (buttons, text inputs, sliders, etc.) that you can customize to your own needs.

By achieving this, developers have more control over exactly how they want to design, how their applications look, and how they work.

 

Flutter uses Dart as its programming language, and all the appearance and business logic of the application is written on it. Dart language is type-safe: it uses a combination of static type checking and runtime checks to ensure that a variable’s value always matches the variable’s static type, sometimes referred to as sound typing. So every line of code in your application, whether used to visually describe your application, style your application, or control your application’s business logic, is safe in your writing.

 

Note to keep in mind: To learn Flutter, you need to learn Dart. You cannot bring your JavaScript, C #, Kotlin, or any other programming language with you. Dart has a lot in common with these languages, and leaping is not too difficult.

Is Dart worth learning?

It is challenging to learn a new language. It is more difficult for developers, who already have many languages spinning around their heads, and even more stressful for full-stack developers who have even more languages to get stuck in for a while.

 

But Dart is somehow more straightforward to use than many other players in the programming language game, just as powerful (if not more powerful than all the rest), full of syntactic surprises that make writing code a much enjoyable and faster experience.

 

What does Flutter have to offer?

Right now, Flutter has more to offer than any other cross-platform solution out there today. We’re not saying that is the better, that’s a dumb and effective way to start a discussion, but it’s close.

 

The reasons it offers are the following:

 

  • Excellent control over in-app visuals. Because Flutter is rendered directly on the screen and controls every pixel on the screen (like a game engine), you have complete control over what is displayed. The fact that you can create a gradient that looks “a certain way” and looks the same no matter what platform it runs on is impressive. It lends itself to a wealth of creative and immersive experiences on a wide range of platforms.
  • Native performance. Flutter produces a native app for the iOS or Android device that it runs on. When combined with Google’s efforts to make all applications run at 60 FPS, the applications run smoothly, maintaining a high level of performance and a lower amount of memory usage on the device.
  • You get the correct cross-platforms balance. Flutter uses the Platform Channels to run native code for when you need platform-specific implementations. So your shared code is written in Dart, but the platform-specific is written in the native language of that platform.

How can I learn more about Flutter?

There is a surprising amount of technical information available online. For example, every week on the Flutter YouTube channel, a new “Widget of the Week” video demonstrates how to use a particular widget within Flutter.

 

Companies like Codemagic (a CI/CD provider) go one step further by offering technical guides on other areas of Flutter.

 

There is enough technical information to create most applications today, and you probably won’t run into problems that are unique to your project.

 

In addition to the Flutter communities on StackOverflow and GitHub, you can find more support on Reddit, Discord, Twitter, and even a community on Slack.

 

On its showcase page, you can find applications that we already use daily, such as The New York Times, eBay Motors, Google Ads, BMW, among many others.

 

So, is Flutter the future?

It is probably not going to be the only future, but it will be part of many future developments.

 

Flutter forms the UI component of Google’s upcoming operating system, called Fuchsia. If Google killed Flutter, it would be killing its UI for Fuchsia. You can’t use an operating system without a UI, so unless Google wants to create an entirely new framework and get everyone to migrate to it, they would have nothing to use.

 

Sure, Google could kill Flutter, but this would be slightly less likely than if they decided to go out of the search engine business. They would be wasting around a decade of work if they did.

 

So is Flutter worth using? Is it worth learning a whole new programming language, giving up the other available resources that other frameworks have that have been around for a long time, and trading all of that so that you can use Flutter to develop mobile apps?

Everyone always has an opinion, and ours keeps looking to the future and have fun while we do it!

App Development - Visual User Interface Design

Share content

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Contact a SpecialistWe guide, advice and support you on technology strategy, infrastructure and design.


Download DNAMIC Onepager


Talk to a member of our Sales TeamWe guide, advice and support you on technology strategy, infrastructure and design.


Download All Truck Case Study


Download Arena Edge Case Study


Download Giftit Case Study


Download Honeygrow Case Study