shawn.blais

Shawn has worked as programmer and product designer for over 20 years, shipping several games on Steam and Playstation and dozens of apps on mobile. He has extensive programming experience with Dart, C#, ActionScript, SQL, PHP and Javascript and a deep proficiency with motion graphics and UX design. Shawn is currently the Technical Director for gskinner.

@tree_fortress

XD to Flutter v4: Better Layout Code

v4.0 of the “XD to Flutter” plugin is available now, with a focus on simplifying and improving the Dart code it generates.

Building on v3’s focus on improving the developer experience, v4 includes a fairly significant refactor of how layout code is generated by the plugin to enable smarter, cleaner results.

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.

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 →