Google has released Flutter 2.0, built for the Web, mobile and desktop. Extend Flutter from a mobile development framework to a portable framework so that developers can extend applications to the desktop or web without having to rewrite code. Flutter seems to help Web and mobile developers, but it doesn’t, and the authors of this article argue that it’s time to stop thinking about creating an application that needs to be deployed to all platforms, because Flutter destroys Web and mobile development.

Hello, EVERYONE. I’m a software developer. My name is Luke.

Since I chose this rather bold title, I will explain it in detail to avoid misunderstanding. Flutter is indeed a cross-platform framework from a technical point of view. Not only that, but all of the straddle techniques are very poorly designed.

But I see it a little differently.

Since Flutter 2.0 was released, I have sensed that Flutter has been oversold. But don’t think about creating an application that needs to be deployed to all platforms. Flutter is ruining Web and mobile development.

Please don’t get me wrong. I don’t mean to deny Flutter. I am a fan of Flutter and will always support Flutter.

I often use Flutter in my daily work to develop iOS and Android apps. Since I used Kotlin or Swift to develop native apps, they support a variety of features, such as: Scan/page recognition, PIN/Biometric application authentication, notifications, Firebase statistics, and some advanced user flows. Now that I use Flutter to develop applications, I have a better understanding of Flutter’s strengths and weaknesses.

1. Six platforms

At this year’s Flutter Engage conference, we learned that Flutter can now be used to develop applications on any of six platforms — iOS, Android, Mac, Windows, Linux, and the Web. This is great! But it’s not as simple as that… Yes, you can deploy your application on all six platforms, but to be honest, I rarely do. It’s hard for me to imagine one person deploying the same application on different platforms, and I think different design patterns should be used for different platform characteristics. Bottom pop-ups, application bars, and simple lists are awkward on large devices. In general, components and design patterns that work on mobile devices don’t work on desktop devices, and vice versa.

One of my very good friends Filip Hracek talked about “amazing design developers” in his Talk on Flutter Engage, and I couldn’t agree more. I think there needs to be more developers who really know what they are doing and don’t blindly follow the iteration panel.

The Scrum Sprint is a repeatable fixed time frame within which a high-value product is created. — Wikipedia

I highly recommend watching Filip’s video clip on Youtube at www.youtube.com/watch?v=MIe…

Next, we return to the topic of Flutter:

2. Stop thinking about creating an application that needs to be deployed to all platforms

Instead, you should think about how to modularize your application so that you can reuse those modules in the future. To give you an example: At my company, we’re developing applications that focus on user data.

This requires creating custom and advanced survey reports, and we don’t want to have to write a new widget every time we add a new question. Here’s what we do: Write a module that contains all the possible survey logic and reuse it in many other projects (without having to rewrite similar code every time)

The purpose of this example is to remind you that when building an application, you should think more about what the focus of your application or business is. What is the business logic behind it?

In computer software, business logic or domain modeling is also part of the program that codes real-world business rules and determines how to create, store, and modify data.

When you define the domain division, you can encapsulate a domain into separate modules that you can reuse in the Flutter application that you need to develop.

But Luke, what’s the big deal?

Yes, that’s a good question!

You can create multiple Flutter applications with different user flows for the same business logic. You can categorize the Flutter applications you will be developing (e.g. mobile, desktop, and Web). This will help you to focus on the differences between platforms. Specific treatments for a particular platform will ultimately result in a better user experience.

3, for different platforms to write **** multiple applications

Although Flutter is a relatively new technology and is targeted at small companies and individual developers, it is a great tool for everyone to use.

I have worked on several enterprise applications. In my experience, each part of the system needs to have a clear workflow. Developing a system usually requires a front end, a back end, etc. To save money, it is increasingly popular to write one application and run it on different platforms. In order to do this, you need to hire a team to develop. Can you imagine a team of a dozen people developing the same set of code to implement features on all platforms? It’s a management nightmare. It’s quite possible that some of the developers are working on desktop features that conflict with what the mobile team is working on.

Second, application packages are becoming more and more bloated, but in many cases not every platform needs a package. Now, just before the release of Flutter 2.0, I didn’t upgrade all the packages and had to manually resolve dependency conflicts without supporting NULL security.

4. Why isn’t Flutter a cross-platform framework

After reading this article, you can probably understand why I think Flutter is not a true cross-platform framework. Flutter is a tool that gives us the functionality we need to build applications for each platform. In my opinion, true cross-platform development is not about one application, but rather a collection of applications driven by the same business logic.

In addition, when we wrote the Flutter application, we did not cross any platform. What we call cross-platform is simply using Xamarin or other tools to translate written code into native elements.

If there is an analogy between Flutter and anything else, it is a game engine (such as Unity). We don’t need to develop for Windows or Mac. We can write it in Unity and export it to a specific platform. Writing a game in Unity and exporting it to multiple platforms is not the same thing as being truly cross-platform.

Because every project has technical debt, you should stop complaining and start refactoring. Small code refactorings should be done every time a new feature is developed. But incorporating a massive reconstruction and rewrite of Flutter will never end well.

5, the end

This is why I think Flutter has ruined Web development. Many people are interested in this statement and eagerly join the debate. If you think flutter isn’t that bad, you might disagree.