Originally published 2018-02-17 on blog.tlarsendataguy.com, and shared here with permission.
Let’s start off with a question. What is this?

Unless you have spent your entire life above the tree line you will likely recognize it as a simple, ordinary tree. And right you are! Now what is this?

Right again, it is an airplane. What do these two have in common, besides the fact you never want them to touch each other?
To answer that, it helps to know that the aviation community is a huge proponent of checklists. Airplanes, being complicated machines, often require numerous changes when transitioning state (i.e. from takeoff to cruise or from descent to landing) and a checklist helps the pilots keep it all together.
Large jets costing more than we will earn in a lifetime generally come with digital checklists. Airplanes priced in the realm of what we can afford generally do not. Rather, our checklists are printed on…*drumroll*…paper! Which is made from? Trees! And while paper is great for many things, checklists are not one of them. Some of the difficulties with paper checklists are:
- Airplanes can be bumpy, especially close to the ground where properly executing state changes is crucial to safety. Keeping your place as you execute the checklist can be challenging.
- The text is small. I have to spend too much time with my eyes inside the cockpit trying to read it rather than outside making sure I don’t touch other airplanes…or trees.
- It may not need batteries, but that also means it does not work in the dark without a flashlight. Sadly, I seem to be good at dropping my flashlight in the cockpit.
- Emergency checklists are not quickly accessible.
Digital checklists can fix all of these issues. Unfortunately, they generally do not. Here is an example I created (in Flutter!) of how most apps implement checklists:

We have problems:
- The text is still small
- The hit area to check off an item is very small, too small to easily press with a finger while flying through turbulence.
- White…just…so much white. Maybe this is great during the day, but it will instantly destroy your night vision in the dark. I suppose a dark theme could help here, but it will not entirely fix the issue.
I also have a philosophical disagreement with checklists designed like the above. If an item is on a checklist, it needs to be checked. It should also be checked in the order provided because order can be important. Current checklist designs encourage skipping or checking items out of order. In general, it also forces me to have to think a bit about executing the checklist. I want the checklist to either tell me what to check, or ask me a ‘yes’ or ‘no’ question and then move to the next item as appropriate. Having to think about the checklist takes mental energy away from flying the airplane. In a high-pressure environment, every distraction matters.
Note: I don’t have any official psychological studies to back any of this up, it is all just how I feel about using paper checklists. But psychology is really just calculating probabilities from the feels of lots of people, so I figure I can use myself as a sample of 1 and extrapolate to the entire population of aviators. I am an auditor, we love doing stuff like this.
In conclusion, my next app will focus on creating, editing, and using aviation-style checklists. My requirements are:
- It needs to have full editing capabilities. I intend to drink my own poison and use it to create a ‘store’ of checklists for users to download.
- It needs to have a cloud storage back end so users can access their checklists from any device.
- The UI colors should be primarily red and/or green to protect night vision. White is not allowed (a possible exception would be system UI elements).
- When a user is running through a checklist, only 1 to-do item is displayed at a time.
- There should be no more than 1 or 2 primary navigation elements on the screen.
- All buttons need to be large enough to be easily pressed while flying in turbulence
To wrap this up, here is a rough example (made in Flutter, because my graphic design skills are about on par with my understanding of psychology) of how I currently envision the UI to look.

From this point on, I will be writing about how I am building this vision in Flutter. Thank you for reading through two posts of introduction; from here on out we will delve into code as I provide updates on my progress. The app is not even close to completion, so you will have an opportunity to see all of my mistakes, defeats, and (hopefully a few) victories as I meet them. Let’s begin with post 3!


Responses