Skip to content

Four Squares version 2.1


Release Notes

Four Squares 2.1 adds support for manually uploading completed games to iCloud, including games completed in Four Squares 1.0. Games completed in Four Squares 1.0 can also now be deleted.

Four Squares version 2.0


Release Notes

Four Squares 2.0 is a huge update bringing new modes, customisations, features, and an overhauled UI.

New Modes

In Time Attack mode you start with only 30 seconds on the clock. Every pattern you get right will add 3 more seconds to the clock. How long can keep going?

Speedrun mode gives you 3 lives to try and reach of sequence of 10 in the fastest time.

New Customisations

Old and new themes are available, along with brand new sound packs.

Existing themes have been updated to better support both light and dark mode.

Brand New UI

The UI has been reworked to make customisation easier and support more platforms. Look out for a macOS app in the near future!

Completed Games

Each game you play is now saved and can be viewed in the app.

You can even choose to play the same sequence to keep working on your high score!

App Clip

Four Squares now includes an App Clip, so you can share a completed game with a friend and they can try to beat your score without having to install the app.

My WWDC 2021 Wishlist


With WWDC 2021 just around the corner I've been thinking about what I'd like to see there.

A lot of the popular discourse around this time of year is focussed on features of the operating systems but I want to look at what I'd like to see as a developer for Apple platforms.

I love to develop for Apple platforms but it can often be a painful process. May is like a christmas for Apple developers.

Keep Reading

Pull request Cache `SingleElementSections.numberOfElements` on composed-swift/Composed


Overall this is pretty minor but when dealing with a lot of SingleElementSections that are infrequently updated is does start to slow down.

I thought a faster approach would be to use generics on replace(element:) to only check for nil when the value is Optional, but generics don't allow for this kind of overload.

Also added some basic tests. The performance tests show a ~9% performance increase.