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.
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.
How Flutter works
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.
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.
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 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.
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.
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 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.
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.
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.
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.
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.
The price to release an app is a single $25 fee for Google Play and an annual fee of $99 for Apple Store.
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.
If you want to learn more about development price estimation, read our in-depth analysis on Flutter app development cost.
To sum things up
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.