Taming Legacy: Refactoring Patterns for Large Flutter Codebases
summary
Case study of a UK banking app shows a 50 developer team managing 60+ packages across a polyrepo that causes dependency hell so the project moves toward polyrepo→monorepo. Engineers introduce lin_code_lint with custom rules that block shrinkWrap and enforce design tokens, run targeted codemod scripts to replace old widgets with app icon enums and an app spacing utility, and combine linting, package granularity changes and team ownership to stop new tech debt and make incremental refactors practical.
AI-written summary · about
chapters (20)
- 0:00Legacy code in Flutter
- 1:48Large Flutter codebases
- 5:49Refactoring Flutter projects
- 7:18Code quality with linting
- 13:06Custom lint rules
- 15:57Polyrepo challenges
- 18:48Code quality metrics
- 19:11Design system audits
- 20:15Deprecating and migrating APIs
- 22:19Automating migrations
- 23:43Fixing package issues
- 25:32Package granularity
- 27:19Team communication
- 28:49Platform team roles
- 29:10Overengineering in Flutter
- 30:15Common use cases
- 30:36Polyrepo architectures
- 31:39Cultural change in Flutter
- 33:05Managing technical debt
- 34:29Summary
related talks
37mTaming Legacy: Refactoring Patterns for Large Flutter Codebases
30mFlutter at scale-experience from 25+ Flutter Devs working together on a mobile banking app
32mTailoring Flutter Architectures for Team and Business Success
37mLessons learned from crafting an in-house framework
44mMultimodule Flutter App
09mFlutter for Enterprise: How your company should be building with Flutter at scale
47mPrioritization, Refactoring, and Keeping You Codebase Healthy
20mCode Quality Gates for Large-Scale Flutter Apps
