We at Friflex launched the Guests from IT podcast. Anton Komolov, the podcast host, and experts from different fields of IT discuss the impact of technology on our lives and work.
Today our guests, Yuri Petrov, author of the YouTube channel "Mobile Developer" and Flutter Team Lead at Friflex, and Ilya Virnik, head of the product development sector "Taxi" in Yandex Pro reflect on Flutter.
Why is Flutter good for large and small businesses? Why is it a promising direction for a career in IT? What is the peculiarity of the Dart?
What is Flutter? How it stands out from other frameworks
Ilya Virnik: Flutter is a framework developed by Google. It allows you to write applications for different platforms. The Google team uses a wonderful word - "multiplatform." It allows businesses to save a huge amount of resources. There is no need to pay for several teams that do the same thing in parallel.
The developers have received sacred knowledge, which gives them the opportunity to work in iOS, Android, and the Web. They can switch to the desktop if it's necessary.
Yuri Petrov: Yes, there have already been attempts to develop a multi-platform framework. But they all rested on a few problems.
The first problem is performance. The cross-platform solution performance has always been considered lower than a native one. The second problem is the rendering of the native interface. The third problem is requests to the hardware of the smartphone. These three main problems must be solved by any cross-platform framework.
There are several such frameworks: React Native, PhoneGap, Xamarin, Ionic… But Flutter solves all these problems. For example, performance. Flutter completely renders the entire interface using its graphics engine. Flutter performance is good enough. In Flutter, you can draw any native element, for example, similar to the native switch in iOS.
The appeal to the smartphone hardware in Flutter was invented using a special MethodChannel. You can access the native part, receive some data about the smartphone, for example, battery temperature, and so on. There are no restrictions. You can get any information from the platform.
Does Flutter have flaws?
Ilya Virnik: Everything has disadvantages. Flutter is not spared any problems. In my opinion, it is the performance that is still the main misfortune.
For example, we are developing a very large application, a super app, which uses a huge number of platform capabilities. Its main scenarios are tied around maps. A super app weighs a lot. This is not just a static map on which several objects are drawn. It won't be a problem. This is a whole set of the map APIs, including internal navigation. And there are a huge number of echoing calls to the backend and platform channels. All this affects the app performance.
We have a big in-house stream of performance work. We've done a great job. Now this performance has reached the level of a native application. We had it before Flutter.
Flutter apps can be similar to native apps. But sometimes Flutter development is more difficult.
There are very few Flutter apps with low performance. As I said, we are working on a super app with a lot of nuance. The vast majority of applications on the market do not have them.
In 99% of cases, most likely you will not notice performance problems. I'm talking about it because it's my personal pain.
Another drawback is working with the native. Flutter allows you to work with native APIs. You can remove any information from the platform. Access the camera and microphone using Flutter tools.
For this, you need to duplicate code on all platforms - at least on iOS and Android. As a result, the declared double savings turn into one and seven. And maybe even less. If you work with a large library, such as Yandex Maps.
Yuri Petrov: The size of the app is another drawback. Flutter drags its library along and the ultimate bundle size will always be larger than native. The Flutter code size is always a little bit bigger than Kotlin or Swift counterparts.
Ilya Virnik: There the difference is only 5 MB. But it matters. The downloaded app weight is important, not the amount of the app memory.
Nikita Spiryanov: I also had a lot of problems working with the camera and platform dependencies.
Customers often ask, how many developers do you need? For a Flutter application, one developer is enough. We save on their number.
When we need to develop an app with platform dependencies, we need 1, 2, or 3 developers with coding skills in Swift and Kotlin. We invite more developers to the team if we need to code in different languages. In some cases, Flutter developers cannot cope. It is unprofitable to have a Flutter development team without experience with native apps. A Flutter developer with experience in developing native apps is a big advantage.
Should we learn Flutter in 2024?
Yuri Petrov: Flutter seems to have a very low entry threshold. It's very simple. You just need to download the framework and create a new project. Then launch it. And you already have a magic button. And you think that you know everything.
But when you face some real problems, the knowledge of algorithms and structure is needed. If you are a highly motivated person, you will be able to write the first draft after 3-4 months of study. Basic knowledge is important.
At least you should understand how a computer and its memory work. I know a lot of people who came to study knowing nothing about coding. During the pandemic, they stayed at home and watched my videos. And then they showed me their first projects that were successful.
Nikita Spiryanov: Another benefit of Flutter for beginners is cool documentation. It very clearly shows what Flutter is, how to start and what needs to be done. Flutter documentation describes cases well.