With the recent move to Dart 3, many applications out there are upgrading to take advantage of null safety. Null safety IS awesome, but what isn’t awesome is the plethora of packages out there in Pub that don’t yet support these breaking changes. Why is this an issue? Because most Flutter apps built out there (particularly ones built by low-code tools) have tons of dependencies. Odds are one of these will break when performing a major upgrade like this.
Now, one could argue that major upgrades only come around once-in-a-while, and that this is part of being a successful ecosystem. I’m inclined to agree, but I also think that we need to evaluate our criteria for pulling in packages.
A client that I work with has 67 dependencies in their production application. It is currently out there and available on both app stores. Each one of these dependencies comes with a version number attached, and these version numbers all represent little ecosystems filled with the hopes and dreams of the maintainers. Upgrading the state of one little ecosystem can throw your entire application out-of-whack as that one dependency touches multiple places.
It’s great that languages have such amazing package managers these days, and it can really make programming convenient. However, pains like dependency hell come along with such innovations.
I’m building https://getperview.com!
I do lots of interesting things!
Subscribe for updates below :)