🎉 End-of-year Sale! Save 25% when you subscribe today.

2024 Year-in-Review

Tuesday December 17, 2024

It’s the end of the year again, and we’re feeling nostalgic 😊. We’re really proud of everything we produced for 2024, so join us for a quick review of some of our favorite highlights. We are also offering 25% off the first year for first-time subscribers. If you’ve been on the fence on whether or not to subscribe, now is the time!

Subscribe today!

Highlights

2024 was a big year for us:

  • 292k unique visitors to the site.

  • 46 episodes released for a total of 28 hours of video, and 23 blog posts published.

  • 4 new projects open sourced and dozens of updates to our other libraries.

  • Redesign of the site, including a dedicated page showcasing all free episodes.

But these high-level stats don’t even scratch the surface of what we covered this year. Join us for an overview of some of our favorite episode arcs, open source updates, and blog posts from 2024:

Episodes

Point-Free Live: Observation in Practice

We began the year by celebrating our 6th birthday with a livestream. We showed off more superpowers from adding Observation tools to the Composable Architecture, including how it plays nicely with UIKit. And then we live released a powerful new feature of the library: the @Reducer macro. This tool massively simplifies many common patterns in applications, such as driving navigation from an enum. And then finally, we gave a sneak peek at some upcoming tools coming to the library that improve how one shares state amongst many features.

Our first meaty series of episodes for 2024 built the tools for easily sharing state amongst features in Composable Architecture applications. One of the benefits of the Composable Architecture is that it allows you to fully embrace value types for your domain (in contrast to the reference types SwiftUI and Swift Data often lead you towards), but that does make it difficult to share state.

The tools we build (from scratch) in the series solve this problem, and further make it possible to even persist the state with external storage systems, such as UserDefaults, the file system, and more.

Modern UIKit

No one asked us to do a “Modern UIKit” series in the year 2024, but that doesn’t mean there isn’t a bunch of fascinating topics to explore! While SwiftUI may be powerful, the fact of the matter is that you often need to drop down to UIKit to accomplish certain things. And if you do things the right way, you can leverage a lot of the niceties one gets from SwiftUI, such as automatic state observation for updating UI, state-driven navigation, and 2-way bindings for UI controls.

Cross-platform Swift

Swift builds for a variety of non-Apple platforms, including Windows, Linux, and WebAssembly (Wasm), which is exciting! But it does take work to write code that can actually run on non-Apple platforms. In this series we write cross-platform Swift code from scratch, and show how by modeling your domains concisely and controlling your dependencies, you can run an app on iOS devices and in browsers with a single codebase.

Back to basics: Equatable and Hashable

While we enjoy discussing advanced topics in Swift on Point-Free, it is nice to get back to basics every once in awhile. This year we explored everything there is to know about the Equatable and Hashable protocols, including their mathematical foundations. This makes it easy to understand why providing an “unfaithful” conformance to these protocols are going to lead you to code with subtle bugs, or even code that will crash at runtime.

SQLite

In anticipation of episodes we have planned for the future, we decided to give a quick introduction to SQLite. This includes how to interact directly with the SQLite C library directly (unsafe pointers galore!), as well as how to use the popular Swift library GRDB to more safely and concisely interact with SQLite.

Tour of Sharing

Our final series of the year gives a tour of an open source library that we also released at the end of the year: Swift Sharing. The tour builds a small application that uses the appStorage and fileStorage persistence strategies from the library, which allows you to hold onto persisted state in your features as if it’s just regular state.

Open source

Perception

We kicked off the year with a bang by releasing Perception, a library that back-ports Swift’s observation tools to older Apple platforms, all the way back to iOS 13. This was a big effort for us that originated from us wanting to support observation tools in the Composable Architecture, but ultimately realized it would help anyone building SwiftUI applications.

Issue Reporting

Reporting issues in apps is important, but the manner one reports can be difficult to get right. We want to be able to report issues in a way that is immediately noticeable yet not annoying or obtrusive. Our library tries to find the right balance, and is extensible allowing you to provide your own custom issue reporters.

Swift Navigation

Released as a brand new library, Swift Navigation evolved from our older library, SwiftUI Navigation. We realized that many of the tools we were builing for SwiftUI were just as applicable to UIKit and even cross-platform Swift apps.

Sharing

We ended the year by releasing a powerful new library, Swift Sharing, which provides tools for sharing state amongst many features in an app and allowing that state to be persisted to external systems, such as UserDefaults and the file system. It has become one of our most quickly adopted libraries ever released, and the community has already built powerful tools on top of its foundation.

Blog posts

Building an app in the Composable Architecture, from scratch

To celebrate the 4 year birthday of the Composable Architecture we released a brand new tutorial that builds a moderately complex app from scratch using the library. It focuses on a number of core tenets of the library, such as using value types for your domain, state-driven navigation, concise domain modeling, controlling dependencies, testing, and a lot more.

This is what peak UIKit looks like

Our sneak peek at a suite of new tools that allows one to build powerful, modern UIKit apps. This includes easy state observation for updating the UI, state-driven navigation, and 2-way bindings for UI controls. Later in the year we ended up open sourcing those tools.

Composable Architecture Frequently Asked Questions

Much ink has been spilled from the community about the pros and cons of the Composable Architecture, but often these articles are based on outdated information. We try to set the record straight with a dedicated FAQ to addresses the most common grievances and misunderstandings of the library.

Swift Navigation: Powerful navigation tools for all Swift platforms

The announcement blog post for our new Swift Navigation library. Learn a little bit about the powerful tools it provides for all Swift applications, including those using SwiftUI, UIKit, and even cross-platform apps running on non-Apple platforms.

Cross-Platform Swift: Building a Swift app for the browser

In this blog post we give a quick overview on what it takes to build cross-platform Swift code. In particular, we show how to build a Swift app for WebAssembly so that we can run a pure Swift app in the browser.

Point-Free is Xcode 16 ready

From the first day of Xcode 16’s release our libraries have been ready. All of our libraries were audited for complete compatibility to the strict concurrency checking of Swift 6 language mode. And all libraries that provided testing tools and helpers were updated to be simultaneously compatible with XCTest as well as Swift’s new native Testing framework.

Parsing and the Advent of Code

Just a fun, end-of-year blog post where we show how to use our Swift Parsing library to give a head start on solving Advent of Code problems. The majority of problems for the advent first involve parsing a text file of input data into first class data types so that you can then actually solve the problem. This is something that our Parsing library excels at!

See you in 2025! 🥳

We’re thankful to all of our subscribers for supporting us and helping us create our episodes and support our open source libraries. We could not do it without you!

To celebrate the end of the year we are also offering 25% off the first year for first-time subscribers. If you’ve been on the fence on whether or not to subscribe, now is the time!

Subscribe today!

Get started with our free plan

Our free plan includes 1 subscriber-only episode of your choice, access to 64 free episodes with transcripts and code samples, and weekly updates from our newsletter.

View plans and pricing