DEV Community

Cover image for Is it worth learning Flutter in 2024?
David Serrano
David Serrano

Posted on • Originally published at davidserrano.io

Is it worth learning Flutter in 2024?

Flutter, the great cross-platform framework that allows you to create applications for mobile, web, and desktop with a single codebase. However, despite all the benefits it conveys, is it a good decision to invest time and energy in learning this technology in 2024?

📽 Video version available on YouTube

If you have asked yourself this question lately, it is because in some way you are interested in Flutter, either for the mere fact of learning, because perhaps you are evaluating it for a possible project, or perhaps because you wonder if you could make a living as a Flutter developer working for companies.

My name is David, I have been a Flutter programmer since this framework was in beta, and in this channel, I teach and inform on everything related to Flutter development.

Before we start let me answer the question of whether it is worth learning Flutter in 2024, and the answer is that it depends. It depends a lot on what you are looking for. If you do it to learn new things, or if you are evaluating it for a possible project of yours, then yes, it is worth it. Now, if all you are interested in is finding a job, then perhaps you could consider other options.

Now that I have answered the main question in short, let me expand this information in more detail to understand if it is really a good idea to learn Flutter in 2024.

What makes Flutter different?

Let's understand for a moment the strengths and distinctive points of Flutter to be able to make a future projection of where this framework is headed:

  • Flutter allows you to develop for Android, iOS, web, Linux, macOS, and Windows with a single codebase.

  • Flutter has a feature called "hot reload", which allows you to see the changes you make to the code instantly on your device, significantly shortening development times.

  • Flutter contains a rich library of visual elements, many of them based on the Material design guidelines and many others based on Cupertino, the visual style of iOS and macOS. Additionally, by installing third-party packages it is possible to emulate the visual style of Linux or Windows, among others.

  • Flutter compiles to native code, which significantly increases its performance. The result is fast and light applications, which have nothing to envy of purely native development.

  • Flutter uses Dart, a programming language that is easy to learn, powerful, strongly typed, null-safe, and with many interesting capabilities for all types of environments.

  • Flutter has a strong and growing community due to its recent popularity and also Google's efforts to promote its use. This means that developers have a rich ecosystem of resources, including documentation, tutorials, YouTube channels like this one, forums, etc. where to ask for advice if you have any problem.

Now that we are clear about the strengths of Flutter, let me tell you in which cases I recommend learning Flutter in 2024 and in which cases I don't.

Why you should learn Flutter

Let's consider several scenarios in which I encourage you to learn Flutter:

→ To learn new skills

Diving into Flutter is a fantastic way to broaden your technical horizons. If what interests you is simply the joy of learning, then Flutter will meet your expectations. With its unique approach to UI design, efficient code structure, and the use of Dart, learning Flutter can significantly enhance your understanding of mobile app development, opening doors to other facets of the industry, and helping you improve your programming skills.

→ To evaluate it for a potential project

If you're considering various frameworks for an upcoming project, getting hands-on with Flutter can be incredibly insightful. Its ability to deliver high-performance, visually appealing apps across multiple platforms from a single codebase makes it a strong contender. By learning Flutter, you can effectively assess its fit for your project's specific needs, such as user interface requirements, development timeline, and overall performance expectations.

→ To create prototypes quickly

When it comes to turning ideas into tangible prototypes quickly, Flutter is a game-changer. Thanks to its vast widget library and hot reload feature, you can rapidly iterate designs and functionalities. This speed and flexibility are crucial in the early stages of development, where visualizing and modifying ideas quickly is key to successful project development and stakeholder communication.

→ To cut costs migrating from native to cross-platform

Transitioning from native app development to a cross-platform approach can be a strategic move to reduce costs and development time. Flutter stands out in this transition due to its single codebase feature, which eliminates the need to maintain separate codes for iOS and Android. This consolidation not only reduces initial development costs but also simplifies ongoing maintenance and updates, making it a cost-effective solution for long-term app development.

→ For education purposes

Whether you’re a student, educator, or self-learner, Flutter is an excellent educational tool. It’s designed to be intuitive and easy to learn, making it accessible for beginners. At the same time, its comprehensive capabilities offer depth for advanced learners. Flutter’s growing popularity also ensures that learners are gaining skills that are in demand in the current job market, providing a practical edge to their educational pursuits.

In each of these scenarios, Flutter's versatility, efficiency, and comprehensive features make it a standout choice for anyone looking to expand their app development skills.

Why you shouldn't learn Flutter

In the real world there are no generalities but rather each case is particular, for that same reason after seeing the specific cases in which I recommend learning Flutter, let's now see in which cases I recommend thinking carefully about it.

→ To make a living... in regions where there is no demand

Flutter is a great framework for creating applications, but it competes with other very good technologies such as React Native, which has been on the market longer, and also competes in a way against native development. If your only intention is to learn Flutter as a means of earning a living, then at least make sure that the region you live in is in demand for this type of technology. In some cases you may find that the demand for Flutter developers is low compared to the demand for native developers, for example. In this specific case, I would recommend that you choose wisely in which technology you are going to invest your time and energy.

If, on the other hand, after having done a search for the current demand you see that there are quite a few companies that are demanding Flutter programmers, then in that case it could be a good career path.

→ For applications requiring a high level of performance

This point sounds contradictory given that in the previous section I told you that Flutter has practically native performance. Let me qualify it:

For "normal" applications, without very specific performance requirements other than the mere fact that it runs fast and smoothly, then Flutter is a great candidate. However, at this point I am not talking about those types of applications. At this point I am referring to applications that have performance requirements well above average, we are talking for example about video editors, graphics engines, etc.

In this specific case, if your application is going to require this intensive level of performance, it is preferable that you consider building it natively, perhaps programming the most critical parts in C++ or Rust.

→ For apps that require a lot of native integrations or low-level features

Flutter offers a fantastic bridge to connect the parts written in Dart with the native part of the application. In this way, even if we are creating an application with Flutter, it is possible to code some parts directly in the native language, then we can take advantage of its performance and integrations that are only available at the native level.

Now, if your application is going to be full of these integrations, to the point that we are going to have to use this communication bridge all the time, I think it would be better to write it directly natively.

If the native bridge is required frequently, then the primary benefits of Flutter are largely negated. In such scenarios, you're not truly engaging in cross-platform development, nor are you fully committing to native development. Therefore, in these situations, I would advise opting for a fully native approach.

→ If there is already in-house knowledge of native programming

If your team already possesses significant expertise in native development, it might be more prudent to leverage this existing knowledge rather than immediately adopting a new technology.

While Flutter is user-friendly and relatively easy to master, it still demands time and dedication to learn. If your company or organization already has the capability to develop applications using native languages, it could be beneficial to carefully consider the advantages and disadvantages of introducing Flutter. This thoughtful evaluation can guide a more informed decision about whether to integrate Flutter into your development process.

Conclusion

As you can see, the decision to invest time and effort into learning a technology like Flutter depends on your specific goals and needs. If, after conducting your research, you choose to learn Flutter, remember that this blog offers articles on Flutter development that could assist you during your learning journey.

Thank you for reading this article. I hope you found it informative and helpful. Should you wish to share any thoughts, I would be delighted to read them in the comments section.

Happy coding :)

Top comments (0)