iFood Sep 8, 2021

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

Critical Insight

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.

Part 2 promises details on the new bloc based architecture they designed specifically for the incoming team.

About This Article

Problem

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.

Solution

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.

Impact

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.

Recent from iFood

Related Articles