Writing The New iFood For Partners Part 1: Flutter 2.0
Article Summary
Gildásio Filho from iFood reveals how his team pulled off a seemingly impossible migration: upgrading 22 Flutter modules to 2.0 with null safety in just two weeks while shipping features and onboarding new developers.
When the iFood for Partners team faced mounting technical debt with Flutter 1.22.6, they had the worst possible timing: features due, external teams joining, and messy architecture. Instead of waiting, they chose the hardest path during a brief development pause.
Key Takeaways
- Migrated 22 interlocked modules in 2 weeks: 139 commits, 829+ changes
- Module by module approach failed due to complex dependencies across the codebase
- dart migrate tool automated most work but required manual cleanup of unnecessary nullables
- Team enabled null safety immediately rather than deferring the pain
- All widgets survived migration intact; only API mapping caused issues
iFood proved that aggressive Flutter migrations are possible with the right tooling and team coordination, completing a full 2.0 upgrade without halting feature development.
About This Article
The iFood for Partners app had 22 interdependent modules with tangled dependencies. A module-by-module migration strategy wouldn't work, so the team needed a different approach with only two weeks to spare.
Gildásio Filho's team sorted modules by how many dependencies each had, migrated the simplest ones first, then ran dart migrate on everything else at once to handle the null-safety conversion automatically.
The team finished the migration with 139 commits and 829+ code changes. They merged the develop_2.0 branch into production release 1.5.0 with 908+ total changes and kept shipping features on schedule.