What is Flutter?
Flutter is a free and open-source framework for building native-looking apps on iOS and Android from the same code base. It has been on the market since 2017, and as a full product (not beta) since first Flutter Live Conference, December 2018.
Although it is a relatively new tool, companies like Alibaba (one of the biggest B2B online markets) and Tencent (the leading Chinese internet-based group) have adopted the technology in their most significant products already. Google uses Flutter in Google Ads app as well. Also, the framework is the development platform for their upcoming operating system, Fuchsia.
We at iteo are part of this revolution, too.
How Does Flutter Work?
Why is this a revolution? Because of its nature and capabilities, Flutter is not a framework but rather an SDK for applications designed for a touch screen. Its primary purpose is to work with iOS and Android devices but can run on other platforms as well.
One has to learn Dart if he or she wants to develop apps in Flutter. This is relatively easy object-oriented programming language with many features useful when building a native application.
As for the interface site, Google’s framework uses Skia, an open source 2D rendering engine. This set of components allows creating UI in a way – for those of you familiar with game development – engines like Unity allow creating games.
It is because widgets are the core of this framework. Everything in Flutter is a custom widget created to look natively both for iOS (Cupertino) and Android (Material Design) devices. The whole UI design is all about combining those widgets, including text, shapes, animation. They determine even aspects of the layout like padding. You can even build your own complex widgets from simpler ones.
Pros and cons of Flutter
Although Facebook’s React Native is a top-of-mind competitor for the pros and cons paragraph, this time we concentrate only on Flutter’s benefits and disadvantages that one might consider when determining a technology for the next mobile app.
Benefits of Flutter
1. Allows to build iOS and Android apps at the same time
Because iOS and Android apps build with Flutter use the same code base, there is no need to develop for one system and then repeat the process for another. Apps made in Flutter work on both Apple and Google platform seamlessly. That means less coding for your development team and more business opportunities with a simultaneous launch on both platforms.
2. Speeds up coding and prototyping
If there is one aspect that should convince anybody to use Flutter is its hot reload. This feature allows seeing any changes made in the code almost in real-time, with no need for app restarting. The updated source code is injected into the running app and Flutter automatically rebuilds the widget tree so that changes are seen in real time. Hot reload speeds up the process dramatically and also improves the whole process helping the devs to identify bugs as soon as they appear and test new UI or features without tie-ups.
3. Great performance
4. No compatibility issues
All widgets and their renderers are part of the app, not the platform. There is no need for any additional libraries to ensure compatibility with iOS and Android devices. There are some restrictions, though. Running Flutter is possible on iOS 64-bit devices and all Android devices above 4.4 or 4.1. with software rendering.
Flutter is an open-source tool which means it has countless possibilities of customizing almost everything in the framework – from Material and Cupertino widgets to animation and gestures.
Disadvantages of Flutter
The risk and limitation of Flutter are the effects of its young age.
1. New language
Although Dart is an easy language to learn, it’s still a language to learn. That is why, since Flutter is only several months on the market, the first steps could be tricky for those who look some online help and support from the community.
2. Suited for universal apps
Flutter’s biggest advantage – building native-looking iOS and Android app using the same code base can be its biggest disadvantage for some. It is a framework designed for universal, cross-platform apps. Using Flutter for platform-specific projects that use platform provided view or are in any way tied more to one platform than another is not the best choice.
3. Apps cannot be smaller than 4MB
Because Flutter-made apps are using built-in widgets not platform widgets, their size is usually bigger. Right now the smallest possible app made with Flutter can weight no less than 4MB, but the Google team ensures that they are working on optimizing it even more.
4. A new, unstable tool
Like all new tools, Flutter can experience problems of relatively fresh technology. Typical concerns include not coping with changes in the UI of iOS and Android for example. Some developers also claim Flutter is still not mature enough to handle big, e-commerce applications – but Tencent and Alibaba’s examples seem to prove otherwise.
Who benefits from Flutter?
To sum up, there is no doubt that Flutter is currently one of the most exciting tools in the market to develop mobile applications.
It can be especially interesting for:
- Startups, e-commerce and all tech-related companies that want to build 2D app faster, more efficient and release it on all available platforms at the same time
- Programmers themselves – because it makes coding faster, more efficient and compatible
- Designers – that want to build great-looking, modern applications that meet the standards of both mobile platforms