• Sponsored: Essential Developer

    Thanks a lot to Caio and Mike, the two developers behind Essential Developer, for sponsoring Swift by Sundell. Essential Developer was founded to help iOS developers accelerate their journeys towards becoming complete senior developers, and on July 18th, Caio and Mike will kick off the next edition of their iOS Architect Crash Course, which you…

    Read More

  • Podcast: “The role of system design”, with special guest Gui Rambo

    Gui Rambo returns to the show to talk about the role and importance of system design when building apps and open source tools, and how common app architectures and design patterns can be augmented with custom systems. Sponsors NordVPN: Get an exclusive discount on NordVPN’s excellent VPN service, by going to nordvpn.com/sundell. They even have…

    Read More

  • Podcast: “The evolution of SwiftUI”, with special guest Chris Eidhof

    Chris Eidhof returns to the podcast to talk about how SwiftUI has evolved since its initial release, to share several key learnings from using it over the past few years, and to discuss concepts like app architecture and state management. Sponsors Judo: Quickly build native, server-driven UI for iOS and Android, and publish instantly, without…

    Read More

  • Rendering SwiftUI views within UITableView or UICollectionView cells on iOS 16

    Ever since its original introduction in 2019, SwiftUI has had really strong interoperability with UIKit. Both UIView and UIViewController instances can be wrapped to become fully SwiftUI-compatible, and UIHostingController lets us render any SwiftUI view within a UIKit-based view controller. However, even though macOS has had an NSHostingView for inlining SwiftUI views directly within any…

    Read More

  • Swift 5.7’s new optional unwrapping syntax

    Swift 5.7 introduces a new, more concise way to unwrap optional values using if let and guard let statements. Before, we always had to explicitly name each unwrapped value, for example like this: class AnimationController { var animation: Animation? func update() { if let animation = animation { // Perform updates … } } }…

    Read More

  • Using the ‘some’ and ‘any’ keywords to reference generic protocols in Swift 5.7

    Combining Swift’s flexible generics system with protocol-oriented programming can often lead to some really powerful implementations, all while minimizing code duplication and enabling us to establish clearly defined levels of abstraction across our code bases. However, when writing that sort of code before Swift 5.7, it’s been very common to run into the following compiler…

    Read More

  • Podcast: “A framework and an app”, with special guest Simon Støvring

    Simon Støvring returns to the show to talk about how he built his new text editor Runestone, how to effectively manage an app’s settings, performance tuning, and implementing an app’s core logic as a stand-alone framework. Sponsors Judo: Quickly build native, server-driven UI for iOS and Android, and publish instantly, without having to submit updates…

    Read More

  • Writing testable code when using SwiftUI

    A major part of the challenge of architecting UI-focused code bases tends to come down to deciding where to draw the line between the code that needs to interact with the platform’s various UI frameworks, versus code that’s completely within our own app’s domain of logic. That task might become especially tricky when working with…

    Read More