My Experience with Flutter: The Ups and Downs

author avatar

Đorđe Stanišić

June 11, 2023

5 min read

As an Android developer, I was curious about Flutter and decided to give it a try. After spending some time with it, I’ve come to appreciate its fast development cycle, hot reload feature, and customizable widget library. However, I’ve also encountered some downsides that I think are worth mentioning.

In this article, I’ll share my experience with Flutter and provide some insights into what makes it great, as well as some of the challenges you may face when working with it. Whether you’re a seasoned developer or just getting started with mobile app development, I hope my experience will help you decide whether Flutter is right for your next project.

Hot Reload: A Time-Saving Tool for Developers

As a developer, one of the most frustrating things is having to wait for your app to rebuild every time you make a change to your code. This can be incredibly time-consuming when you’re working on a large project with many files.

Hot reload is especially useful for developers who want to experiment with different UI designs or test new features quickly. It can save a lot of time and effort compared to traditional development methods. This feature is not unique to Flutter, but it is one of the most popular features of Flutter development.

But how does it work? Essentially, hot reload injects updated source code files into the running Dart Virtual Machine (VM), replacing the previous versions of those files. This allows you to see the changes you’ve made in real-time, without having to rebuild your app from scratch.

Of course, there are some limitations to Hot Reload. For example, it doesn’t work well with changes to the app’s state or layout. But for most other changes, it’s an incredibly useful tool that can help you develop faster and more efficiently.

Why Flutter development process is Faster than Native Android or iOS Development process

Flutter is a powerful tool for building beautiful and responsive UIs quickly. Its reactive programming model and widget library make it easy to create stunning designs that work seamlessly across multiple platforms. But what makes Flutter faster than native Android or iOS development?

The answer lies in Flutter’s unique architecture. Unlike traditional mobile app development frameworks, which rely on a bridge to communicate between the app and the platform, Flutter uses a single codebase to create apps that run natively on both Android and iOS devices. This means that developers can write code once and deploy it across multiple platforms, without having to worry about compatibility issues or performance problems.

There is also Flutter Flow, a new tool that simplifies app development by allowing developers to create UIs visually. With Flutter Flow, developers can drag and drop widgets onto a canvas and see their designs come to life in real time. This reminds me of WordPress and Webflow which are used for visually creating websites without having to write any code.

In addition to its unique architecture, Flutter offers several performance optimizations that make it faster than native Android or iOS development.

Building Complex UIs with Flutter’s Customizable Widgets

Flutter’s widget library provides a wide range of customizable widgets that can be used to build complex UIs. These widgets are designed to work seamlessly with Flutter’s reactive programming model, making it easy to create stunning designs that work seamlessly across multiple platforms.

One of the key benefits of Flutter’s widget library is its flexibility. Developers can choose from a wide range of pre-built components easily customized to fit any design. This saves time and effort compared to building custom components from scratch.

Flutter’s widgets also look great on any platform. Developers can create different layouts for different platforms so that users from iOS, Android, and the web can see different layouts that respond to the platform. For instance, on iOS the app will look like other iOS apps, and on Android, it will look similar to other Android apps.

Overcoming the Learning Curve

If you’re new to Flutter, there may be a bit of a learning curve as you get used to the reactive programming model and widget library. However, once you get past this initial hurdle, you’ll find that Flutter is an incredibly powerful tool for building beautiful apps.

If you’re feeling overwhelmed by the number of widgets available in Flutter, one of the best things you can do is to start with the basics. Focus on learning the core widgets that are used in most apps, such as buttons, text fields, and images. Once you’re comfortable with these widgets, you can start exploring more advanced widgets that are specific to your app.

One of the best ways to get started with Flutter is by working through the official documentation and tutorials. These resources provide step-by-step guidance on how to use Flutter’s widgets and reactive programming model.

The Challenge of Limited Third-Party Libraries in Flutter

While Flutter has a growing number of third-party libraries available through its official package repository, it still may not have as many available libraries as native Android development.

This can make it challenging to find the right library for your app. However, the Flutter community is working hard to create new libraries and improve existing ones. 

Many open-source projects are actively maintained and updated by the community. As Flutter continues to gain popularity, we can expect to see more and more third-party libraries become available.

Other downsides of Flutter

  1. One of the main disadvantages of using Flutter is its large file size. Apps developed with Flutter are large and cannot be avoided. This is not the best solution for use on a smartphone.
  2. Flutter has some compatibility issues with iOS devices, and Dart, the programming language used by Flutter, has some limitations compared to other programming languages.
  3. Flutter also has some issues with animation rendering that can cause performance problems.
  4. Flutter is slower than native technologies in both memory and CPU-intensive tests, indicating that native is the best option for Android/iOS app development in the context of performance.
  5. There are also concerns about the long-term viability of Flutter as a development platform, and there can be delays in updates to Flutter that can cause problems for developers.

Final Thoughts on Flutter: A Developer’s Perspective

In conclusion, I have enjoyed my experience with Flutter and its fast development cycle, hot reload feature, and customizable widget library. I believe that it is an amazing tool for freelancing and building smaller apps. However, for larger and more serious projects, I would still prefer native development. While Flutter has its strengths, it also has its challenges and limitations.

Ultimately, the choice between Flutter and native development will depend on the specific needs and goals of your project.

Care to share?

Unveiling the Dev Journey: Experiences in Product vs. Outsourcing Development


Unveiling the Dev Journey: Experiences in Product vs. Outsourcing Development

In the dynamic landscape of the Serbian IT community, our team finds itself at the intersection of two compelling narratives: outsourcing and product development. Beyond being an outsourcing hub, Serbia is home to numerous companies that have crafted their successful products, adding a unique vibrancy to the IT community.  Right now, some of our team […]

5 Years of Crystal Pigeon: A Journey of Friendship, Challenges, and Success


5 Years of Crystal Pigeon: A Journey of Friendship, Challenges, and Success

Time flies, doesn’t it? You’ve probably heard this phrase quite often, especially in the business world. It’s a sentiment we’ve been expressing a lot in the past month as we celebrated the fifth birthday of Crystal Pigeon. We won’t talk too much on this topic, but we feel the need to express our gratitude and […]