Looking into Flutter: Secrets of its Success & Review of Popular UI Libraries and Components

plazarev

Pavel Lazarev

Posted on October 28, 2021

Looking into Flutter: Secrets of its Success & Review of Popular UI Libraries and Components

In recent years, cross-platform development has become one of the hottest trends in the world of programming. And it is not surprising, since this approach brings in a lot of significant advantages. Product owners can expect that the use of multi-platform technologies will reduce development costs and ensure faster time to market. Developers, in turn, can use the same business logic for web, mobile, and desktop versions applications and consequently have less trouble with code maintenance.

Developing a platform-independent application is a challenging task. So if you decide to start such a project, you will certainly require a special framework. Fortunately, there are plenty of them available out there. But right now, Flutter is one of the most promising tools on the landscape of cross-platform technologies. In this article, you will become familiar with Flutter, review a range of ready-made UI components for this framework, and learn about upcoming commercial Flutter components.

What is Flutter and Why is it so Popular?

Flutter is a relatively new declarative UI framework designed and maintained by Google to facilitate the implementation of cross-platform software solutions. Launched just in 2018, it has already gained recognition and popularity among developers. Responders of the popular Developer Survey 2020 held by Stack Overflow recognized Flutter as one of the most loved tools and technologies of the last year. A fresh developer survey from Statista names Flutter the most popular cross-platform framework utilized by software developers worldwide. Moreover, it has already reached the mark of 132K stars on GitHub.

Survey from Statista
Source: Statista

So why is this technology so popular among professional developers?

First of all, Flutter enables you to build performant applications that feel natural on various platforms using almost the same codebase. Flutter uses the Dart as the programming language and allows you to benefit from its numerous features. For instance, the hot reload function makes it much easier to add new features to a Flutter project and test them without restarting the app. The popularity of Flutter continues growing very fast thanks in large part to strong support from a large community led by Google.

In Flutter, everything revolves around widgets. They play a key role in the Flutter hierarchy, serving as building blocks of all graphical objects in an app’s UI. The framework comes with two built-in sets of reusable widgets (Material Design and Cupertino) that can be customized to provide the desired UI and UX. If that’s not enough for your app, I’ve prepared a review of some interesting UI libraries and components that can be useful in Flutter-based applications.

Open-Source UI Libraries and Components for Flutter

GetWidget

GetWidget component

GetWidget (previously known as GetFlutter) is probably one of the largest and most well-known UI libraries designed with the use of Flutter SDK. It comprises a huge collection (1000+) of reusable widgets intended for covering various cross-platform development needs. With GetWidget, you can easily create widely used UI elements such as tabs, buttons, menus, lists, sliders, and many others. According to the GetWidget team, the library helps to cut the development time by 30–40%. Here is an open-source News application based on GetWidget and Flutter.

Flutter-Neumorphic

Flutter-Neumorphic component

If you follow web design trends, then you are certainly familiar with the term neumorphism. It relates to a new design approach that obtained quite extensive popularity in recent times. A neumorphic design implies extensive usage of shadows and gradients. Many developers find it difficult to implement UI elements with this kind of design with Flutter. If you are one of them, Flutter-Neumorphic is exactly what you need. This UI package will help you to create neumorphic UIs in Flutter apps much faster.

PlutoGrid

PlutoGrid component

A grid functionality is a vital aspect of any application, especially if you are working on a data-intensive solution. You can consider PlutoGrid to make the implementation of this important element easier in Flutter apps. This is a client-side UI grid component for creating standard data tables that render well across various platforms. It can be navigated via the keyboard. Using this component, you can add many useful features to the table such as sorting&filtering, frozen columns, multiselection, cell renderer, grid as a popup, etc. It is also possible to enable a dark theme for the whole data table.

Staggered GridView

Staggered GridView component

Staggered GridView is a useful instrument for displaying images in a feed-like manner that is not typical for a standard GridView. This approach is used in popular social networks (Instagram) and photo hostings (Pinterest). Staggered GridView comes with multiple columns, rows of varying sizes, and many other helpful features allowing you to easily present groups of images with different height and width parameters.

Boxy

Boxy component

If you ever used Flutter’s built-in layout widgets, then you should know that it has some limitations related to the implementation of flex and custom layouts. You can overcome these difficulties by using Boxy. This tool is utilized for creating complex layouts with multiple children that help to arrange the interface structure of your Flutter app. Boxy offers a set of utilities for layouts, dynamic widget inflation, slivers, and many other useful things.

TimelineTile

TimelineTile component

TimelineTile is a UI component that enables you to represent events or processes in chronological order via a timeline in Flutter. Using TimelineTile, you can build a vertical or horizontal timeline and complement it with additional items (icons, images, text). This component gives you the freedom to customize any timeline element according to your needs.

Charts library

Charts library for Flutter

Data visualization is a tricky task for any programmer. Therefore it is nice to have a good charting library in your arsenal. Charts is a charting library that certainly deserves your attention. It is designed internally at Google, though it is not the company’s official product. Written in Dart and based on Material Design, this library suits well for various data visualization purposes in Flutter apps. It supports an array of charts (bar, line, time series, pie, scatter plot, etc.) for visualizing complex data and making it more comprehensible for further analysis.

FL Chart

FL Chart component

FL Chart is one more charting option for the Flutter ecosystem that I would recommend for consideration. It is a robust Flutter chart library used for creating popular charts. Currently, the list of available chart types includes the following: line chart, bar chart, pie chart, scatter chart, and radar chart.

Flutter FormBuilder

FormBuilder component

Flutter FormBuilder is an intuitive tool designed to help you in creating cross-platform forms, and thereby provide a reliable communication channel between users and a Flutter application. It comprises a range of input widgets encountered in standard forms: text field, checkbox, slider, rangepicker, datepicker, etc. If needed, this form maker also gives you an opportunity to produce custom input fields. Numerous built-in validators (number, mail, min, max, etc.) help to ensure that users submit only valid data. You can incorporate a combination of several validators and conditional validation (the validation of one field depends on the value entered in other specific fields).

TableCalendar

TableCalendar component

When you require assistance in arranging activities (meetings, tasks, appointments) in a time sequence in Flutter projects, take a look at TableCalendar. This widget has a rich API allowing you to build multifunctional calendars with multiple view formats (week, two weeks, month) and customizable styling. Besides standard one-day activities, you can schedule custom events such as recurring ones. It also supports dynamic events and holidays. The localization feature will help you to reach more potential users from different countries.

Flutter Map

Map component for Flutter

Flutter Map is a map widget that brings the ability to visualize geographic data to your app. In fact, it is a Dart implementation of a popular JS mapping library named Leaflet. With Flutter Map, you can build interactive maps and enrich them with various features (panning, zooming, markers, etc.). It also supports offline maps. Numerous plugins allow extending the core feature set with additional functionalities.

What about Commercial UI Solutions for Flutter

Open-source components for Flutter are great and they help to achieve different development goals absolutely for free. But what if you need more advanced components with a regularly updated feature set and technical support? In such cases, it is better to opt for commercial UI libraries.

The main issue here is that it is really hard to find any commercial UI components for Flutter on the market. I’ve managed to find just one solution - a package of Flutter widgets from Syncfusion. Although this library is still under active development, it already can offer you a lot of useful widgets such as grid, sliders, event calendar, and numerous data visualization tools.

DHTMLX Gantt for Flutter

Taking into account the scarcity of complex UI components for Flutter, the DHTMLX team seriously considers the possibility of developing Flutter Gantt that will enable developers to build project management apps with Flutter. The company has abundant experience in providing Gantt libraries for popular front-end technologies. Currently, the DHTMLX product portfolio already includes Gantt components for JS, React, Vue.js, and Svelte. And Flutter Gantt can become the next step. That’s how the development team sees DHTMLX Gantt for Flutter right now. On this landing page, you can make a pre-order for Flutter Gantt.

This article was originally published on medium.com on July 27th, 2021.

💖 💪 🙅 🚩
plazarev
Pavel Lazarev

Posted on October 28, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related