What is Flutter? It is a free and open source framework for developing cross-platform applications (iOS and Android). Flutter was created and released by Google in May 2017 and during this time managed to overtake React Native in popularity both on GitHub and Stack Overflow.
In the article, we will figure out why this framework is so interesting and what you need to be prepared for when studying it.
What is special about working with Flutter?
The main feature in working with a cross-platform engine is the use of one Dart codebase instead of several for Android and iOS platforms. You can use the Android Studio, Intellij IDEA and VSCode development environments in your work, but, sadly you will not be able to use Xcode.
To run your first application on Flutter, you only need to install the Flutter and Dart plugins, and the development environment itself will offer to create a template project. Now you can write your business application 🙂
What are the benefits?
The advantages of Flutter include high assembly performance – tests show results almost at the level of standard solutions, a simple and concise Dart programming language, as well as fast compilation and assembly of the project that allows you to get rid of unnecessary empty waiting. There is even a warm reboot mechanism that allows you to instantly rebuild the project and see the results of your work.
Also, a plus is a large set of UI components and libraries, both native and from third-party developers, which can be used without much effort. It will not be difficult to understand the framework since it already has convenient documentation, and Google itself shares training videos where it clearly reveals the advantages of the components.
What are the downsides?
One of the obvious downsides is that building an iOS app, running a simulator, and running on a real iPhone is impossible without XCode, and XCode doesn’t work on Windows and Linux machines. To solve the problem, you need to have XCode, and the plugin on Android Studio will pick up the simulator and the real device itself.
Another disadvantage is that the final size of the installation package increases because it contains the Dart virtual machine.
Difficulties may also arise when adding non-standard functionality related to system sensors, built-in browser, third-party GPS maps, and so on. For such tasks, there are two ways: either look for a ready-made solution or a library from third-party developers, or write your own native solution separately for each platform. The second will be more difficult and longer, since you will have to write in at least three languages, develop the structure and debug it.
Flutter is the future in development?
I can’t predict how flutter will develop in six months or a year, but it’s already clear that the framework is gaining momentum and becoming popular. Easy to learn, great design, Google support adds confidence to such a rapid growth. So, we can expect development in the near future.
What is the main feature?
The feature of Flutter is that with the help of it you can make cross-platform projects – both for iOS and Android at once.
At the same time, you need a high-power computer: in this case, you can comfortably develop and run cool projects.
What are the benefits?
A big plus is the presence of extensive documentation and a community that is rapidly developing. Google itself is actively promoting Flutter, recording training videos and posting them on its channel. There are a huge number of libraries that make life easier, and on Stack Overflow you can find answers to almost all questions.
After developing native applications, it is very easy to rebuild – this process took me about 2 weeks. You get so used to the fact that “everything is a widget” that you no longer know how you worked before – you feel a certain “freedom” in everything, there are no frames, no restrictions. For 2 months, I forgot how to natively do those things that are so conveniently implemented on Flutter.
What are the downsides?
I can highlight two main disadvantages when working with the framework.
First, you need to have basic mobile app development skills. From scratch it will be difficult to understand what’s what, even with rich documentation. It will take time to get used to the new rules of the game and understand all the details.
Secondly, you can see the result of the work only by running the application since the layout of the screens is created using code. At first, it was difficult to foresee how the widgets would be located, I often failed to guess so, and everything “crawled out” off the screen. But the further, the better – now everything immediately turns out as planned.
I believe that Flutter has great prospects because the development of the framework is in full swing. Many have already heard something about it, someone has tried to create a simple application or has already been engaged in commercial development. Developers are interested in working with the framework. In my opinion, Flutter will find its niche and gain its audience.
All in all, what is this framework really like?
The peculiarity of Flutter is that it allows you to do cross-platform projects, that is, to develop an application immediately for both iOS and Android, and instead of several code bases use one – the Dart language.
The advantages of Flutter include high assembly performance, simple and concise language, fast compilation and assembly of the project, a large set of UI components and libraries, convenient documentation, as well as quick adaptation to the “everything is a widget” principle.
The main disadvantages are: 1) building an application for iOS is impossible without XCode, which does not work on Windows and Linux; 2) increase in the final size of the installation package due to the Dart virtual machine; 3) the layout of the screens is created using code, so you can only see the result when you run the application.
About the further development of the framework: the developers agree that it has it. The framework can be advantageous for programmers, so it will definitely find its fans.