Last Updated:

Why I switched to Flutter

As you know, I started my career as an Android developer in Java, worked in this position for several years, then moved to Kotlin. During this time, I have gained vast experience in a team of highly qualified developers.

Then I decided to try web development because I was always curious about different aspects of development: frontend, backend, mobile development – I wanted to try everything.

For the next few years, I focused on web development, namely Javascript + React. What can I say, React is great – it's a very flexible and fast tool, especially when combined with state management solutions like Redux and MobX. I was very happy with my experience with React, but wanted to do mobile development again.

Back to mobile development

After a few years of working on the web, I heard about React Native and decided to try this new tool for me. This was close to me, since as a mobile developer I know the specifics of this area, and now I know web development using React, so in principle it was natural for me to try such a framework for mobile development. The next few commercial projects I wrote using React Native and unfortunately... I wasn't impressed.

React Native was pretty raw at the time (though it's still not very crude). It had a lot of critical changes and constant support, rewriting/rewriting projects was quite time-consuming and painful. The main plus and at the same time the main disadvantage of React Native is the JavaScript bridge for communication with native Modules of Android and iOS. It allows you to quickly make simple solutions, but for medium and large projects, this becomes a problem.

It's the same with documentation, deployment, continuous integration, and delivery. Even such basic functions as routing looks like a crutch. BUT that was my experience with React Native, I know a lot of developers who like this framework, they like the fact that it uses Javascript, they don't care about some of the flaws of this framework, and they just like it. But that's clearly not my case.

How I came to Flutter

In 2018, I heard about a new instrument called Flutter. This is a cross-platform development framework that uses the Dart language, which is new to me. And I was very happy to try something completely new in the mobile development market.

There was not much information even on simple topics, so I started with official tutorials, examples of applications, I watched everything, read all the blogs that I could find. And I really loved it. Since that time, I have completely switched to Flutter development, went all-in. I was very excited.

But there were a few problems I had to overcome to start developing on flutter. For example, Flutter uses the Dart language to create interfaces. I haven't heard of it in a long time. The last time it was in 2011, when Google introduced Dart as a replacement for javascript in web development, but for some reason that didn't happen. But Dart seemed very familiar to me. Dart is an object-oriented language, has a syntax in the style of C. It is influenced by modern languages such as Java, JavaScript, Kotlin. Stateless and Stateful Flutter widgets are similar to React components and the like.

I was familiar with many concepts. But you know the old saying: if you only know Delphi, then when you learn a new language, you'll be writing Delphi-style code. And that's 100% true. To write dart-style code, I had to adapt to it and start thinking in the Dart style while writing Flutter applications. Of course, it took some effort, but I'm very pleased that I switched to Flutter.

So, the main reason I decided to switch to Flutter isn't just because I can build cross-platform apps for Android, iOS, and now the Web very quickly. Also, practice has shown that for me Flutter is the most productive and simple tool for creating any applications, despite the complexity of design and business requirements. Of course, it has some limitations, flaws and mistakes, but I feel that it is growing faster than others, I see the future in this tool and I am satisfied with the quality of my work, and this is the most important thing.

On my YouTube channel, I plan to share my knowledge, best practices, and learned development techniques on Flutter. There will be published interesting approaches and chips of the fluter.

I would be grateful for any of your feedback, likes, comments and suggestions – anything that can help me do more good to you, the reader.