Spring Cleaning

We have a big update for you today, and it includes nothing exciting! Sorry 🤓

Spring Cleaning

Every once in a while we’re going to release an update that’s hugely important but doesn’t seem so exciting for you, the user. Things 3.9 is one such release – the culmination of months of work, with broad refactorings, architectural changes, and preparatory work for future updates.

As unexciting as that sounds, it’s important for us to step back every once in a while and devote time to the health of our codebase.

So what have we been up to?

Three Big Projects

Our main work for Things 3.9 delivers non-visible improvements in three areas:

  • Reactive programming.

    The biggest change is one that will sound familiar to our fellow coders. There’s been a significant shift in the last few years to adopt something termed a “reactive” programming style. It’s a way to structure code that makes it very easy to understand and reason about, and thereby eliminate a big source of bugs. We’ve been experimenting with this style for some time, and with today’s update we’ve now implemented it across large parts of our codebase.

  • Repeating to-dos.

    We’ve also begun modernizing our implementation of repeating to-dos. As a first step in that direction, today’s refactoring lays the groundwork for later improvements, so the goal today is for you to see nothing different.

  • Sync refactoring.

    A few months ago we hired a new Things Cloud engineer. He’s been busy refactoring some long-untouched areas of our sync code – again as a preparation for new features we plan to build down the road.

Things to Enjoy

So maybe we downplayed this update a little – there are a few improvements that you can enjoy today:

  • Better performance.

    One of the benefits of digging deep and refactoring your code is that, once in a while, you unearth some real gems. So it was for 3.9, when we managed to find ways to improve performance for three common actions. You’ll notice that Things is significantly faster after you launch it from an idle state: the app opens more quickly, and there’s no lag when you tap to expand a to-do, or tap the + button to create a new one.

  • Improved layout on small screens.

    If you use a small device, such as an iPhone SE, your to-do titles could get a little cramped – particularly after setting start dates, deadlines, tags, and checklists. So we’ve now improved the layout and date formats to free up some extra room.

  • More clarity when setting dates.

    The “When” popover for setting dates has been enhanced to provide more clarity, especially when dealing with reminders.

  • Many smaller bug fixes across the apps.

As our version number is now at 3.9, questions about 4.0 will surely abound. But if Apple can count past 9 – so can we! 😄 Things 3.10 is on the way.

Until then, we hope you enjoy Things 3.9 – with all the shiny new code you can’t see but which is nevertheless totally awesome.