Experience report on Flutter

Today, I wanted to revisit my experience with Flutter. After more than 10 years of back and front-end development without touching mobile development, I had the opportunity to work on a mobile project.
First, a bit of context.
With Jean-Baptiste Sagot and Valentin Tabary, we wanted to create a project around AI. After several ideas and a memorable bootcamp, the idea emerged to help parents reconnect with evening reading to their children by allowing them to tell stories in an immersive and personalized way. That's how TaleMe was born.
Thinking about the use case, we quickly realized that the application had to be mobile. Indeed, what could be better than telling a story at your child's bedside or on the living room couch. The user experience had to be optimal and for that, it was crucial to have a mobile application rather than a webapp.
Let's go back to Flutter.
What is Flutter ?
Flutter is an SDK/framework created by Google to produce multi-platform applications. You can deploy on web, desktop and mobile, that's something!
To develop with Flutter, we must use Dart, a programming language created by Google. One of the language's primary goals was to offer an alternative to JavaScript, but it didn't catch on at all with the community. Ultimately, the language oriented itself more on its ability to be compiled to multiple targets (Honestly, it's clearly carried on the back of Flutter :D ). If you know typed languages like TypeScript or Java, you should feel at home. And how does that translate into code? Well, we'll have components (called widgets) at our disposal that will nest in a cascading way. ( like in React )
Anyway, the most important thing to remember is that it brings us closer to real native mobile applications that are smooth and performant.
The first date
First impressions matter, and with Flutter, it was love at first sight. (sorry)
More seriously, the docs, the ecosystem, the community, all these indicators are important before starting to develop a project, even if it's a PoC.
In the landscape, we mainly see react-native and Kotlin Multiplatform. My thoughts were as follows:
- React-native is fine, I already know part of the tooling and concepts. But since it's based on JS, I'm too lazy to deal with 100 alternative packages to do the same p* thing. I don't want to change libraries every other morning.
- Kotlin Multiplatform, promising, but a bit too young and not enough hindsight. Kotlin inspires me less than Dart, a matter of taste.
- Flutter is the right compromise. It's a framework that has proven itself, used by quite a few serious companies (if we trust the demonstrations on the site) and it's fairly mature. Even if the community is much smaller than JS's, it remains very active. (we had Flutter Conf 2024 a few days ago )
Some strong points in no particular order:
- The documentation is very well done.
- Installing flutter and the mobile tooling is straightforward ( configuration of xcode/android studio, the emulators, the inspector …. )
- one need = one package 🙏
- Hot reload is life. It's an incredible time saver. You make a change, you press r or shift-r and bam, it's taken into account. It's a real joy.
- The component system (widget) is easy to adopt if you have already worked with React.
- Native performance — we compile real native apps ( Flutter apps are compiled directly to machine code, whether Intel x64 or ARM instructions)
Achievement
As stated above, my experience in native mobile development is zero.
Which tools to use? How to build an app? How to deploy it to the stores? How to manage versions? Updates? Crashes? Analytics? Tests? Management of different environments? Notifications? Permissions? In-app purchases and subscriptions? ... In short, I had everything to learn.
It took me 4 weeks to deploy a first version of the app (including review time) and an additional month to add features like notifications, in-app purchases, and subscriptions.
The point here isn't to judge my skills, but to show that Flutter is a framework that's quick to pick up, with a sufficiently well-marked path so you can focus on the most important thing: delivering a functional, high-quality app quickly and simply.
If this experience report interested you, I have several things to offer:
- Try TaleMe and give me feedback on your impressions https://talemeapp.com ;
- Leave a review on the store to help us get noticed ;
- Leave a comment on this post ;
Feel free to follow me if you're interested in learning more about Flutter and our journey at TaleMe.
Sources
Comments
Loading...