What is a flutter?
If you are one of the enthusiasts of mobile programming, you must have heard the names of filter and react. flutter was unveiled by Google in 2017 as a new framework, and in this short period of time, it was noticed by many programmers and made significant progress.
One of the features of Flutter that made it popular is the ability to output simultaneously for native Android and iOS. This required double programming before offering the filter. So you had to do a separate coding program for Android and iOS. This was not cost-effective at all.
The programming in this framework is done with a language developed by Google. The name of this programming language is dart; Which is an object-oriented and high-level language and is very similar to Java.
Compare flutter and react with each other
For many of us, the question is, is it better to use a filter to develop or react?
To answer this question, we decided to compare these two frameworks. React native is provided by Facebook and Flutter is provided by Google. But for a closer look, we want to look at these two languages from 10 practical and important angles for programmers.
One of the key advantages of using cross-platform tools is that you can program and use only one language at a time. While it can take two outputs. So that the output can produce the application for both Android and iOS.
React programming language
Flutter programming language
Finally, we must mention this point in the programming section, although dart has excellent features. But there are few developers, and it is react native that is the winner of the programming part of this comparison.
When we want to use cross-platform frameworks to develop Android apps; We must consider its technical architecture. Knowing the inside of the framework can help us make an informed decision and choose the best one to launch the project.
React technical architecture
Flutter technical architecture
flutter uses the dart framework which has a lot of internal components. The presence of these components means that in the filter, unlike react native, we do not need a communication bridge to communicate with native modules. All the technologies needed to develop mobile apps with frameworks such as designing material and Cupertino inside the dart; Is provided. The dart framework uses the skia engine written in C ++ and has all the protocols, combinations and channels.
But the final conclusion of this section, given that the flutter contains most of the components and does not require a special connector. It should be said that Flutter is ahead of react native in this section.
The most important point that is considered by programmers in the first steps; The installation steps are simple and understandable.
Install the flutter
To install the filter, you can install a binary by downloading a binary from Github with a special platform. In general, it should be said that the filter should think about the installation process and improve it. To do this, use package management programs for easier installation and fewer steps
But the conclusion of this section is very clear and the winner is react native.
Setup and settings required
The process of setting up a developer computer takes a lot of time and configuration to use the new framework.
Setup and settings required react
In react native, the developer assumes that all the necessary settings for the development of iOS and Android have already been made. That’s why there is so little information about the Xcode linear tool and it goes straight to the point of creating a new project. This framework does not provide any instructions on Android development settings.
Setup and settings Flutter required
To get started, Flutter provides a detailed guide to setting up an IDE and platform for both operating systems. In addition to detailed descriptions, Flutter provides a CLI tool called Flutter doctor. To help developers thereby. Developers will also be able to use this tool to know what tools will be installed on local devices; And what tools need to be configured.
From the comparison that was done, it can be concluded that by presenting CLI by flutter, in this section, native native is placed after flutter and in the second place.
Development UI and API components
Support for native components is a key issue in cross-platform applications. If a platform does not support native components, then the app produced will not be the same as the app prepared in its original language.
Investigation of react components
React native supports a very small number of components. And that’s why we need ancillary libraries to rely on them. In general, react native only provides components for access APIs as well as UI rendering.
Examination of flutter components
In front of the react native is the flutter. Flutter has many components. It has some additional components on react native, app testing and navigation, management tools, etc. The presence of these components made the flutter no longer need a side library.
In the final conclusion, it should be said that due to the great need of react native to the side library and in contrast to the lack of need for a filter component, the reason for the loss of react native in this section.
One of the key points in mobile app development is more productivity in mobile app development. Because it makes the developer focus all his attention on app development. And do not focus on fringe cases and too much waiting.
Productivity of react native Developers
Productivity of Flutter Developers
The filter also has many useful tools and facilities. But it should be noted that in Flutter we need to learn a new programming language called dart. For this reason, darts have fewer specialists than react natives and benefit from fewer development environments.
In general, it can be concluded that this section is affected by the history of react native and the infancy of the filter. And for this reason, it makes react in this part more than flutter.
It is important for programmers to share experiences and errors. Because it makes them learn each other’s problems; And spend less time fixing it later.
Support community react
Following the introduction of react native in 2015, an association was formed on Github for the developer community of this framework. After that, conferences and seminars around the world were formed with the presence of its developers.
Flutter support community
The construction of the flutter was done a long time ago. But its recognition was formed in the google I / O 2017 event. It was then that the Flutter community began its upward trend. And the community of its supporters increased day by day with the holding of its conferences and seminars. Although Flutter has grown well in recent years; But there are still not enough resources available to developers of this framework.
The testing phase is a very important step in the development of cross-platform apps. Which provides quick feedback from the written code.
React test support
React uses tools such as jest for immediate testing. However, when trying to test the integrity or ui level of backup, our efforts are in vain. And there is no support for it. That’s why we have to go for official tools like detox and appium.
Flutter test support
In contrast, Flutter has provided a very powerful set of program testing features. These features are offered in various units, widget and integrated surface. Flutter allows excellent testing of widgets. This feature is useful when we create a test widget to test ui.
Finally, react has not yet been able to introduce an official backup. This is while Flutter has provided strong documentation and a rich set of test features.
Support for build and release process
Publishing apps in markets has its own particular hassles. To publish a program, the steps must include signing the final file of the app production. This becomes more difficult when we start producing cross-platform apps.
Build and publish support in react
There is no official citation in react for the automatic release of Android and iOS apps. There are many guides and documentation on the web to help you get output with two operating systems
. Which can be used in stores. But in general, we need additional libraries such as fastlane to produce and publish an app that was produced and published with react.
Build and publish support in flutter
But Flutter has a very powerful grammatical interface in this section. That we can use the command line tool and follow the documentation provided by Flutter to build and publish Android and iOS applications. Additionally in the filter the propagation process with fastlane is documented.
CI / CD support
CI stands for Continuous Integration and means continuous integration. And CD stands for Continuous Delivery and means continuous delivery. These two are essential steps in developing any app. This action is used to get feedback and avoid publishing important baggy apps.
CI / CD support in react
But react is also weak in this regard and has no official documentation. The only documentation is a collection of articles available on the Internet. Which talked about CI and CD actions in the react native framework.
CI / CD support in flutter
In contrast, Flutter has a built-in section for CI and testing that includes links to external sources. It can be said that Flutter allows you to launch the CI / CD command line.
And the final conclusion in this section is in favor of Flutter. Because it was able to formally support CI / CD
But our conclusion from this competition is that both languages have their own advantages and disadvantages. But in the end it is the flutter that is known as the winner. Experts believe that Flutter is still young. And a bright future awaits cross-platform applications based on the Flutter framework.