Flutter
Flutter 3.47: what will break and what to do until November
Summer gave us one stable release: 3.45 and 3.46 didn’t make it to stable at all, and 3.47 arrived on August 12 with 1,158 commits in addition to those in 3.44. The main thing about it isn’t the features — it’s the repackaging: material and cupertino moved from the SDK to separate packages.
The migration is a single command, but with two gotchas: dart fix --apply --code=migrate_design_widgets Just running dart fix --apply won’t do it — you need to specify the code explicitly. And in pubspec, it will write material_ui: any, which should be immediately fixed to the carriage with the version. “ChangeNotifier was moved from the SDK to package:listen” — this is not true today. In 3.47.2, the classes are in place and not marked as deprecated, and listen is a second, independent implementation of the same names. The types are incompatible: if you pass a listen-based ValueNotifier to ValueListenableBuilder, you’ll get a compilation error. The package is suitable for code without Flutter: server, CLI, general logic. Primary constructors in Dart 3.13 won’t be enabled automatically — without sdk: ^3.13.0 in pubspec, you’ll get experiment_not_enabled even on the required SDK. And to be honest: the cost savings of boilerplates noticeably drops in value when it’s not written by a person. The rest — Impeller by default on desktop, iOS 15 and macOS 12, #flutter #flutterdev