Recently we released a new version of our showcase Flutter app Wonderous which added support for landscape form factors on larger devices. In this post, we’re going to look at some of the techniques we used and showcase some real-world code examples.
Continue reading →Author / shawn.blais
Flutter: Crafting a great experience for screen readers
While building the Wonderous app, we wanted to craft a great experience for visually impaired users using screen readers. Flutter does an admirable job working with these systems out of the box, but app developers also have work to do to create a polished user experience.
In this post we’ll look at how screen readers work and then run through the top accessibility related lessons we learned along the way.
Continue reading →Flutter: Rendering Optimization Tips
While building the Wonderous app, we wanted to create an experience rich in visuals and animation, but that maintained smooth performance and didn’t drain users’ batteries.
We learned a lot about rendering optimization, and wanted to share our top 5 tips to help you make your Flutter app run better.
Continue reading →Flutter: Speed up your workflow with a custom project creation script
For some reason, starting a new project always brings a small feeling of inherent joy and excitement. There is something about a clean slate that is just very comforting, the lack of constraints, the promise of the unknown!
Continue reading →Flutter: Introducing `url_router` – A simpler Router controller.
When it comes to implementing a url-based Router
(aka Nav2) there are really 2 high-level components to the API:
- A controller to read/write to the current url
- A parsing/matching system to convert a url into a stack of views, or pages.
The interesting thing here, is that the controller portion, is a fairly stable, boring API. Reading or writing the url
location, or accessing queryParams
is all pretty straight-forward. Really all you are doing here is setting a string value, and parsing query params using the URI
class.
Flutter: Our favorite pub.dev libraries
There are so many great libraries on pub.dev these days it can be hard to sift through them all. The flutter team maintains their own list of favorites, and we thought it might be worthwhile to put together a list of our own favorite libs!
Continue reading →Flutter: Easily add CI testing with GitHub Actions
One of the great things about Github Actions is how easily it lets you setup continuous integration testing for your flutter applications. In this post we’ll go through the basic implementation of a CI workflow in flutter.
Continue reading →Flutter: Introducing `RoutedWidgetSwitcher`
We’ve recently released a new package for use with all “Nav 2” implementations, called routed_widget_switcher
: https://pub.dev/packages/routed_widget_switcher
It allows you to declaratively switch child widgets based on the current Router
location:
class SideBar extends StatelessWidget { Widget build(_){ return RoutedSwitcher( builders: (info) => [ Routed('*', MainMenu.new), Routed('/dashboard', DashboardMenu.new), Routed('/settings', SettingsMenu.new), ]); } }Continue reading →