I’ve been studying Flutter since June this year, the same time I moved to Australia. My team needed to get speed on the new app development, even with the team incomplete because the iOS developer joined us few months later. Using the same business logic implemented once, have same look and few, all the developers working on the same code base was a pretty good solution for us to think about (and I believe this happens with many other companies that need to grow their business fast). So we started developing with just two formerly Android developers and one backend guy.
Before starting with Flutter, we made researches to understand if we were making the right decision and start developing more confident.
- Make a code with quality, thinking about architecture, unit testing and UI testing
- Possibility to have different components depending on SO that is running if needed
- Reuse code
- Learning curve
- Use a native library, if needed
- CI/CD and deployment
All checks were good and we were excited about Flutter (and good thing is we still are 😊).
As a small team we could get benefit on having the same knowledge about the language, framework, business logic and reviewing the same code. The learning curve is not so hard given the similarities of the concepts and Dart language characteristics that are familiar to Java/Kotlin/Swift developers.
In the beginning I was kind of missing writing XML for UI as was used when developing for Android, UI code in Dart can look weird and messy, but now I see that using a declarative UI programming speedup development.
Hot Reload and faster builds are big wins! Let’s see if this will keep with a big code base in the future.
Understanding state management with Flutter takes a time and is a good subject for next posts. For now I am working with Redux, is doing pretty good, is quite similar to MVI that was using in Android development.
Dart is OK, but I do miss Kotlin! In the language matter seems I gave few steps behind, thinking how much features Kotlin offers.
I got impressed on how the Flutter community is big, given the freshness as it became out of beta. The official documentation is well organised and there are a lot of resources from the community as well.
For sure was a little bit concerned about starting with Flutter, having about 7 years of experience developing for Android. But is good to change mindset and thinking out of the box! I am using an iPhone in order to remember that I need to care about user experience in both platforms.
With huge companies adopting Flutter like Nubank, Alibaba and Google itself for a long time give us more courage to take a shot on this :)
Even if you already have a project running in production, is possible to have modules in Flutter and you don’t need to rewrite your app from scratch.
Excited about Flutter and more technical posts will come for sure!