News and views on the world of interactive media from the gskinner team
Category / Flutter
In the never-ending quest to reduce boilerplate and DRY up our code in Flutter, we have noticed that using the MediaQueryclass can be a bit cumbersome, and it’s also missing a couple of key pieces of information.
The issues we see are:
MediaQuery.of(context) is a bit verbose on its face
Checking for orientation especially is too long: bool isLandscape = MediaQuery.of(context).orientation == Orientation.landscape
There is no diagonal size parameter, so you can’t easily get the true screen size of the device, helpful for determining your form factor
There is no way to get the size in inches, which can be useful when thinking about breakpoints (for most people, 4.5″ is easier to picture, than 720 logical pixels)
To that end, we have small Screen helper class, that we use across all our new projects:
One of the most interesting aspects of Flutter, is the way it mixes declarative markup-style code, with imperativebusiness logic style code, all within the same Dart programming language and file. This creates a really nice coupling between interface and function. When compared to editing XAML for UWP apps, or XML for native Android, building interfaces in Flutter can be a very rapid workflow.
While this is really nice from a productivity standpoint, it also manifests as one of Flutters biggest issues…
Flutter is a mobile UI toolkit that combines fast development, expressive and beautiful UIs, with native performance. To test-drive the platform, Grant Skinner & Mike Chambers recently built Redrix: a mobile companion app for Destiny 2.