Sofa Beta Update: Committing to 4.0, Performance Improvements, and More Design Iterations

This week has mostly been a pain in the ass due to working on performance issues in Sofa. Luckily, I made good progress there and was able to keep iterating on the design changes too.


Committing to Sofa 4.0

In last week's update, I openly wondered if all the new changes to Sofa warranted a 4.0 release (instead of 3.5). I quickly got feedback that, yes, this feels like a big enough jump to be a 4.0.

Well ok then, 4.0 it is!

This does change how I plan to market these updates, but I'll talk about that when the time comes.


Performance Improvements

Automatic Backups Are No Longer Slow

I built a backup system into Sofa few years ago. Basically, each day that you open the app, it will make a local backup of your data and save it to a folder in iCloud Drive.

The problem was, automatic backups were freezing the UI on launch. This was caused by me doing this work on the main thread...like an idiot. This is now happening on a background thread so you won't even notice backups being made.

Memory Leaks Are Less Leaky

Turns out, a lot of the new work I was doing was leaking memory. HOLY CRAP was this hard to debug and fix 😵‍💫. I've cleaned up most of the main parts of the app, but still have some work to do here. The good news is things will be running a lot smoother and I will be much happier when it's done.


Design Iterations

I shared some new designs last week, and have been making some tweaks along the way.

New Designs for the Primary Areas

I have a few new designs for showing The Pile, Logbook (formerly "Activity"), and Pinned Items (formerly "The Shelf").

The goal with these changes is to make these areas scannable before you even tap into them. Similar to if you had physical versions of these things in your home.

Logbook and Pinned Items are dynamic too. If you don't have anything in them, they won't be displayed on the Home Screen. I was initially going to do the same for The Pile, but as I was using it on my iPad I realized it had to be there.

This is due to how the big "+" button works when navigating around the app. Basically, if The Pile didn't show up on the Home Screen you'd never be able to add anything directly to it...which kind of defeats the purpose.

I may consider a setting to allow people to hide The Pile if they really don't want it. Maybe.

New "Add" Menu

Speaking of the big "+" button, I've added a brand new design for choosing what to add to your lists. I had been using a system menu for the past few years, but it was starting to get a bit unwieldy.

0:00
/0:12

On the iPhone it displays as a bottom sheet, and the iPad uses a popover view.

Surfacing the New Features

Custom Categories and Ingredients are big new features and so far I've been keeping them in Settings. I don't think they belong there but I wasn't sure exactly where to put them.

For now, I'm thinking they can live in the ••• button/menu alongside Settings. Still a little bit hidden, but much less so.


What's Next

My next major step is to get this shipped out to beta testers. They are going to be getting a lot of new stuff to play with: Smart Lists and all these new design changes.

Before I can send it out to beta testers I need to do these things:

  • Finish fixing the memory leaks
  • More UI tweaks and polishing

Hoping to be able to do this next week 🤞.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Shawn Hickman.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.