Like many other Flutter devs, over the past year I have been on a quest to create state management library that feels right to me. However, rather than trying to create a solution that is “better” in some abstract sense, I have been trying to create something that’s more like Flutter. What do I mean by this? For me, this has three essential components:

  1. It should be extremely easy to learn and use with very fast iteration cycles that continue to be fast as your app scales.
  2. It should not sacrifice power and flexibility for ease of use for newcomers…

Check out the example, and docs to get started!

Earlier this year, I released Upstate, a state management library that attempted to emulate the properties that make Flutter so great. Flutter manages to balance simplicity, developer velocity, ergonomics (and fun!) with a robust framework that can easily scale to large professional apps with highly customized UI patterns and interactions. The ability to transition from the rapid prototyping stage to a fully custom, scalable app without changing tools or workflows is something that makes Flutter really special. …

As Bitcom based apps have become more sophisticated and feature rich, we have bumped up against the limits of what we can achieve with strictly positional push data arguments. What exactly do I mean by this? Let’s take a look at the B protocol for an example:

[Media Type]
[Encoding (optional if no filename)]
[Filename (optional)]

In this protocol, we have two required arguments which would be the data and media type. We also have two optional arguments, encoding and file name and at least one needs to be present. …

Flutter state management should be simple (and extensible)!

Upstate, my new state management library for Flutter, is meant to be very easy to use and yet extensible when you need that extra flexibility and power. With version 0.6.0 you can now use Upstate with custom state objects. Before we get into the details, lets go over some design principles I used to build Upstate:


Upstate is meant to emulate Flutter in that it has what I call cascading levels of complexity. What do I mean by this? Let’s look at this diagram:

Flutter state management should be simple (but also type-safe)!

I recently introduced Upstate, a simplified state management library for Flutter that is meant to be very easy to learn and yet powerful and extensible. You can check out my introductory article here. If you’re a keen developer, you will realize that as is, using Upstate the way I showed isn’t type-safe! Check out this article for a quick explanation of how that can cause problems.

To make the library work properly, the return type of [] operators and the call method are dynamic. …

Flutter state management should be simple!

Note: In an earlier article, I outlined the concept for this library using the observable dart package. It turns out the observable library hasn’t been maintained in years and was unsuitable for this use case. Upstate doesn’t rely on any packages and everything is built from scratch.

In my last article, I introduced Upstate, a state management library that aims to be much, much simpler than other solutions and yet powerful and extensible. For the sake of transparency, let’s take a look at how it works under the hood. If you want to rely…

It’s great to live in the city as long as you’ve got a house upstate.

Upstate is now ChangeEmitter. Check out my writeup here.

When I first started using Flutter, it felt like a revelation. I had never used a framework that was so simple, easy, fun and powerful. With other UI frameworks, it wouldn’t be long before I had to hack a solution together to get the exact behavior that I wanted. It was like running into a brick wall that was the design decisions of whoever created the framework. In Flutter, whenever I needed something that wasn’t included as a built in widget, I could build it myself using the lower level API’s…

Note: I turned this concept into a state management library called Upstate. However, I didn’t end up using the observable library as it hasn’t been maintained in years and instead built everything from scratch. Check it out!

State management in Flutter is pretty much the black sheep of the framework. …

Bitcoin’s Big Opportunity to Replace the Almighty Dollar as the Foundation for the World Economy

Note: I am not an economist. I have attempted to collate information which I have researched as thoroughly as I can. I might be terribly wrong. I invite others to tell me what I’ve gotten wrong. Regardless, I believe we must start a conversation about this topic.

In this article I will try to outline a confluence of events which can propel Bitcoin Cash into massive global adoption by replace the US dollar as the world reserve currency and the basis for international trade. We will discuss the current state of the world economic system and how it relates to…

Jonathan Aird

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