When using flutter, I often come around a type being exposed by different packages in the standard library.
For example the FlutterError but the same applies to other widgets. When writing it and using IntelliSense in VS Code to resolve the package to import so that FlutterError is available, IntelliSense offers me FlutterError in multiple different packages:
In this case, it's available from
package:flutter/widgets.dartpackage:flutter/foundation.dartpackage:flutter/material.dartpackage:flutter/cupertino.dartpackage:flutter/rendering.dart
My understanding is that material.dart and cupertino.dart offer widgets in the particular style - but what is the rest and which package should I import in a MaterialApp(..) that should be platform independent and also run on iOS?
And - if it makes a difference - which one should be used so that platform-specific widgets are automatically used on Android & iOS for native functionality like Date/Timepickers so that a Datepicker is automatically the platform specific variant on Android and the platform specific variant on iOS?