• Podcast: “A tower of capabilities”, with special guest Chris Lattner

    Chris Lattner returns to the show to discuss Swift’s new concurrency features, the ongoing evolution of the language, and the importance of both language and API design. This, and much more, on this special 100th episode of the show. Sponsor Bitrise: Rock-solid continuous integration for your Swift project, which now offers 50% faster builds and…

    Read More

  • Sponsor: ViRE

    Thanks a lot to the team behind the visual regular expressions editor ViRE for sponsoring Swift by Sundell over the past two weeks, enabling me to keep delivering a continuous stream of Swift articles completely for free. I’ll be honest, I’ve never been a huge fan of working with regular expressions as raw strings. I…

    Read More

  • Mutating and non-mutating Swift contexts

    One of the ways in which Swift helps us write more robust code is through its concept of value types, which limit the way that state can be shared across API boundaries. That’s because, when using value types, all mutations are (by default) only performed to local copies of the values that we’re working with,…

    Read More

  • Podcast: “Structured concurrency”, with special guest Doug Gregor

    Doug Gregor from Apple joins John to discuss Swift 5.5’s new concurrency features in great detail. How do features like async/await and actors work under the hood, and how were those concepts adapted in order to feel right at home within Swift’s existing ecosystem? That, and much more, on this WWDC21 special episode of the…

    Read More

  • Automatic conversions between Double and CGFloat values in Swift 5.5

    New in Swift 5.5: The compiler can now automatically perform conversions between Double and CGFloat values. Although the two have always been equivalent on 64-bit systems, before Swift 5.5 (which is currently in beta as part of Xcode 13), we had to manually convert between them in order to satisfy Swift’s type system — since…

    Read More

  • Connecting async/await to other Swift code

    Swift 5.5’s new suite of concurrency features definitely played a major role at this year’s edition of WWDC. Particularly, the newly introduced async/await pattern could not just be seen in the more Swift-focused sessions and announcements, but all over the new APIs and features that were unveiled at the conference. While async/await is very likely…

    Read More

  • Customizing how an external Swift type is encoded or decoded

    For all of its strengths and overall convenience, one downside of Swift’s built-in Codable API is that it doesn’t really offer any standard way to change or otherwise customize how a given type should be encoded or decoded. While we can always write completely custom coding implementations for the types that we’ve defined ourselves, when…

    Read More

  • Basics: Availability checks

    Every year, Apple’s platforms keep progressing at a quite rapid pace, but very often, we also need our apps to support older versions of the various operating systems that they run on. So the challenge then becomes — how to adopt new system APIs and features without sacrificing our overall backward compatibility? That’s where availability…

    Read More