Contents

Flutter: What You Should Know

Flutter is a cross-platform software development kit (SDK) for creating mobile applications. It is also referred to as ‘UI framework’ — a set of UI elements, which comprise an app and can be personalized during development. Flutter runs on Dart programming language. Because it is cross-platform, a single code base is used to create apps for the web, Android and iOS.

Flutter is a powerful and reliable SDK, offering vast creative possibilities to build beautiful applications with native look and feel on both Android and iOS devices. Thanks to its features and architectural decisions, the development process on Flutter is fast, and it is suitable for building quick prototypes and MVPs as well as complex apps and games.

Read our article to learn about Flutter architecture, how its features compare to other frameworks and what is the price of building an app on Flutter.

Apps built with Flutter

Thanks to growing popularity, more and more companies choose Flutter as a framework for their mobile applications.

3 apps built with flutter

Stadia is a gaming platform developed by Google, which allows users to stream and play video games on multiple devices. A player may start playing on the phone and continue on TV — the process is seamless, thanks to cloud-based solutions.

Square POS (Point of Sale) is a mobile cash register developed by Square Inc. It allows businesses to keep track of sales, manage inventory, analyze key performance indicators and accept cashless payments.

Baidu Tieba is a communication platform provided by the Chinese company Baidu. It is the biggest online community in China, with over 300 million active users per month.

More apps built with Flutter.

How Flutter works

Dart

To build an app on Flutter developers use Dart language. Dart is an object-oriented programming language created by Google. Its first version was released in 2011 and since then the language has changed and evolved significantly, while still holding true to its main purpose — make the development process fast and comfortable.

Dart has its own package manager, multiple compilers and transpilers and a parser. With Dart there’s no need for a JavaScript bridge for parsing and executing — its compiler builds an app directly into the native code, preventing any bugs which can occur during the interpretation process. Also, Dart includes a repository of software packages, which extend apps capabilities, making it easier to access the device’s hardware and services.

Widgets

An app on Flutter is built around widgets, which can be called ‘building blocks’ of the app. Every element of the app’s interface is a widget, which can be stateful (can change appearance) or stateless (never changes). Since Flutter uses its own library of widgets instead of the platform’s native components, apps on Flutter maintain consistent UI, regardless of the platform’s version, but the appearance of widgets updates automatically, depending on which platform the app is launched. This way, users have that native feel when using the same app on both Android and iOS devices.

Engine

Flutter’s engine is written mostly in C++. The framework utilizes Skia, an open-source high-performing graphic engine, which handles heavy graphics and animation, providing a smooth user experience at 60 frames per second. To learn more about the architecture of Flutter, read our dedicated article.

flutter key features
Layers of Flutter architecture.

Flutter and other frameworks: differences

Besides Flutter, there are several other widely used cross-platform frameworks, including React Native, Apache Cordova, Xamarin, Ionic and Native Script. In this part, we will review the main aspects of working with Flutter and how they compare to other technologies. Below you will also find links to detailed comparisons of each framework with Flutter.

Development process

The biggest benefit of building apps on cross-platform frameworks is saved money and time. When developing native apps, you have to conduct at least two separate end-to-end development processes to have apps for Android and iOS. With cross-platform SDKs, you have to build just one app with a single set of code. And that is a huge difference in terms of required resources.

With Flutter, the developer can easily experiment and try different approaches to a problem, thanks to Hot Reload feature that updates the app the moment its code changes. This significantly speeds up the development process and bug fixing. In other frameworks, Ionic, for example, things look less convenient because you have to refresh the app to apply any changes to the code. To learn about other differences between two frameworks, check our Flutter VS Ionic comparison.

Performance

The amount of FPS (frames per second) is the standard indicator of how an app performs. If the figure goes below 30 frames, the user may experience stuttering animation and even freezes. In multiple tests, Flutter apps showed higher FPS compared to apps built on other frameworks. What helps Flutter to achieve high performance? Its modules communicate directly with native components, without a JavaScript bridge used in many other frameworks (which slows down the response time); also, Flutter has its own rendering engine and tends to use less CPU than, for example, React Native framework. For a detailed comparison of two technologies read our Flutter vs React Native article.

User Interface

Flutter doesn’t use native UI elements, instead, it updates an app’s appearance (fonts, colors, animations) automatically to match the visual style of the platform. This way Flutter provides a native look and feel to an app, treasured by many Android and iOS users. Not every other cross-platform framework does that. For example, Apache Cordova adopted another approach: it uses a web-based UI running in a WebView, so an app maintains one visual style across different platforms. Read our Flutter vs Cordova article to learn which framework to choose according to your project goals.

Community support

According to Statista, Flutter holds second place among the most popular cross-platform frameworks. This is pretty good, taking into account that the technology is still relatively new and requires developers to learn Dart programming language, while other frameworks work on widely known JavaScript or, in case of Xamarin, on C#. By the way, don’t forget to check our detailed comparison of Flutter and Xamarin for more differences between the frameworks.

Community support plays a huge role in the development process, because a smaller community means fewer available resources and third-party libraries. Take, for instance, NativeScript — it is used by almost eight times smaller amount of developers than Flutter, which may result in a slower development process and unpredictable hold-ups. In our other article you could find an in-depth Flutter and NativeScript comparison.

Flutter app: how much does it cost?

The price of building a cross-platform app depends on many factors. It can be as low as $30,000 for a simple app or go above $500,000 for a complex project.

Features

The main factor that defines the development price is the app’s functionality. Integration of voice calls, maps or external hardware, such as a smartphone’s camera or smartwatch, all add up to the bill. Generally, apps can be segmented into three groups: list view apps — sort of an ‘enhanced’ version of websites with minimum functionality, which are usually the cheapest ones; dynamic apps requiring real-time access to data (social networks, for example) and games, which can come pretty expensive, due to complex graphics and integration of augmented reality.

Design

App designers focus on making app navigation easy and visual style appealing. The cost of hiring designers for an app can range from $1500 to $150,000, depending on the complexity of tasks.

Maintenance

To keep clients satisfied, every app should have regular updates to maintain full compatibility with new versions of platforms operating systems and fix any appearing bugs (there are always some). Before starting the development, it is recommended to put aside 15-20% of the app’s initial budget for maintenance.

Server rent

If the app stores any user data, there should be a secure server for that. The price of a server rent starts at around $1500 a year and gets higher depending on the amount of data.

App release

The price to release an app is a single $25 fee for Google Play and an annual fee of $99 for Apple Store.

Developer location

The geographical location of developers plays a significant role in the final price of an app. For example, an hour of developer’s work in the US or Canada costs around $150, while hourly rates of developers in Asian countries may go as low as $18. This is why it pays off to outsource developers and hire offshore freelance specialists. Read more about the best places to hire developers in our article on where to hire software developers

Keeping in mind the aforementioned factors, the average prices of developing Flutter app can be divided into three categories, according to the app’s complexity.

flutter app development cost

If you want to learn more about development price estimation, read our in-depth analysis on Flutter app development cost.

To sum things up

Flutter is a modern cross-platform framework, suitable for creating various apps, from quick prototypes and MVPs to beautiful games and complex apps. The framework offers tools for quick and convenient development, such as Hot Reload and rich widget library, while its architecture and powerful graphic engine allow it to show nearly native performance on different platforms. Despite the fact that Flutter runs on Dart language, which is not as popular as JavaScript, the number of Flutter developers grows steadily, just as the number of available plugins and 3rd party libraries, further streamlining Flutter development process.

We at Surf develop apps for more than 10 years and have done multiple projects on Flutter for shops, restaurants, banks and digital services. Ready to take your app from an idea to a real thing? Fill in the form, and we will return to you with an estimation for building your app.