In this article I’ll discuss coding for dark mode in past, recent and future OS releases when writing apps in Flutter.

Flutter was built with theming, so dealing with OS-level dark mode is pretty straightforward. But it’s not that simple. You also have to:

  • Make custom widgets (or decorations like gradients or shadows) and non-platform flutter widgets (from packages like Google Maps, for example) look acceptable in all themes.
  • Make sure custom widgets (or decorations) update properly when the user changes the theme on their device.
  • Degrade gracefully for users running on older versions of their operating systems and users…


Migrating web apps to Dart 2 is relatively easy, considering the major changes in language and tools on the underlying platform. I generally write larger web apps in pure Dart, without Angular or other frameworks. This made it more direct in some ways. But there were some issues that took a lot of trial and error, non-obvious Googling, and digging through source code to get things working.

Consider this an supplement to the official guides at (language changes) and (web app development changes). I encourage you to read them first. I used those guides to make the transition…

I’ve updated the Flutter Studio web application with the goal of making it more flexible, complete, responsive and accurate. The app should now work better on different screens, keep you in the flow, accurately display your app on multiple devices and orientations and work consistently. In addition, it now produces complete, working code and build files and has a more complete set of widgets, including some new ones not found in the widget catalog.

The new version

  • Is responsive
  • Shows real Android and iOS devices accurately on the web
  • Produces and shows pixel perfect designs
  • Provides more widgets (including…


Flutter’s architecture and class choice can add risk to its API design. A good example is Bottom Navigation, a currently popular UI element.


When Java 1.1 was released in 1997, the language and platform was moving from a browser/internet programming language into the enterprise. A big part of that involved was including an interface to SQL, the programming interface for databases. While incorporating JDBC into the core was a mistake in general, a particularly bad offender was the class java.sql.Date. Ever since its introduction, for two decades, whenever a programmer typed ‘Date’ into an editor, a popup showed two choices…

Making it easy to develop flutter GUIs

First, some background. I’ve been following the development of Dart closely. I previously used the Google Web Toolkit (GWT) in real projects from 2008 on. I was an experienced java coder tasked with writing a high-speed trading application for IE 6/7 (!) and I immediately recognized the pain points GWT addressed in large scale javascript applications such as typing, reusable classes, libraries, etc.. I wrote for Internet Explorer but I developed on Chrome for its suite of dev tools. GWT bridged the two beautifully.

GWT lead me to Dart. It was a natural progression as Oracle bought Sun, GWT development…

Paul Mutisya

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store