Swift by Sundell
Building a design system at Genius Scan
Deciding between ‘let’ and ‘var’ for Swift struct properties
Decoding Swift types that require additional data
Tips and tricks for when using SwiftUI’s ViewBuilder
Using Swift’s defer keyword within async and throwing contexts
Modern URL construction in Swift
Swift by Sundell is back!
SwiftUI views versus modifiers
Observing the content offset of a SwiftUI ScrollView
Podcast: “The evolution of Swift”, with special guest Nick Lockwood
Podcast: “Swift concurrency in practice”, with special guest Ben Scheirman
Combining opaque return types with primary associated types
Podcast: “Responsive and smooth UIs”, with special guest Adam Bell
Podcast: “Freelancing and WWDC22 highlights”, with special guest Donny Wals
Podcast: “The role of system design”, with special guest Gui Rambo
Sponsored: Essential Developer
Podcast: “What’s new in SwiftUI in iOS 16?”, with special guest Natalia Panferova
Switching between SwiftUI’s HStack and VStack
Podcast: “Swift 5.7, generics, and the road to Swift 6”, with special guest Ben Cohen
Using the ‘some’ and ‘any’ keywords to reference generic protocols in Swift 5.7
Swift 5.7’s new optional unwrapping syntax
Rendering SwiftUI views within UITableView or UICollectionView cells on iOS 16
Podcast: “The evolution of SwiftUI”, with special guest Chris Eidhof
Swift by Sundell turns five years old today! Here’s what’s next for the website and the podcast
Podcast: “A framework and an app”, with special guest Simon Støvring
Type placeholders in Swift
Podcast: “Accessibility on Apple’s platforms”, with special guest Sommer Panage
Abstract types and methods in Swift
Sponsor: Judo
Basics: Equality
Podcast: “Where is Swift headed in 2022?”, with special guest JP Simard
Writing testable code when using SwiftUI
Combining protocols in Swift
Memory management when using async/await in Swift
Automatically retrying an asynchronous Swift Task
Backgrounds and overlays in SwiftUI
Basics: Loops
Creating Combine-compatible versions of async/await-based APIs
Two ways of capturing self strongly within a closure
Podcast: “The 2021 Season Finale”
Building an asynchronous SwiftUI button
Podcast: “Custom rendering”, with special guest James Thomson
New Discover page: Concurrency
Delaying an asynchronous Swift Task
Lightweight dependency injection and unit testing using async functions
Podcast: “Concurrency beyond app development”, with special guest Tim Condon
What role do Tasks play within Swift’s concurrency system?
Swift actors: How do they work, and what kinds of problems do they solve?
Podcast: “Code maintenance”, with special guest Nick Lockwood
Unit testing Swift code that uses async/await
Using count vs isEmpty to check whether a collection contains any elements
Building async and concurrent versions of forEach and map
Podcast: “Concurrency and Swift-DocC”, with special guest Marin Todorov
Using Swift’s concurrency system to run multiple tasks in parallel
Podcast: “UIKit in 2021”, with special guest Ben Scheirman
Making async system APIs backward compatible
Swift’s new concurrency system gains backward compatibility in Xcode 13.2
New Discover page: Generics
Specialized extensions using generic type constraints
Building editable lists with SwiftUI
Which of the SwiftUI APIs introduced in iOS 15 are backward compatible?
Podcast: “Opportunities for optimization”, with special guest Christian Selig
Programmatic navigation in SwiftUI
Podcast: “Building various kinds of editors”, with special guest Marcin Krzyzanowski
Previewing SwiftUI views in landscape
Using Combine’s share operator to avoid duplicate work
New Discover page: Codable
Codable synthesis for Swift enums
Sponsor: Paste
Conditional compilation within Swift expressions
Podcast: “The magic of Augmented Reality”, with special guest Roxana Jula
Async sequences, streams, and Combine
Podcast: “What’s new in Swift 5.5”, with special guest Antoine van der Lee
Using static protocol APIs to create conforming instances
Defining dynamic colors in Swift
Using ‘@unknown default’ within switch statements
Podcast: “WWDC21, two months later”, with special guest Jordan Morgan
Throwing and asynchronous Swift properties
Attaching property wrappers to function arguments
Podcast: “Cross-platform SwiftUI”, with special guest Malin Sundberg
Stroking and filling a SwiftUI shape at the same time
Mutating and non-mutating Swift contexts
Sponsor: ViRE
Podcast: “A tower of capabilities”, with special guest Chris Lattner
Dismissing a SwiftUI modal or detail view
Calling async functions within a Combine pipeline
Making SwiftUI views refreshable
Basics: Availability checks
Customizing how an external Swift type is encoded or decoded
Connecting async/await to other Swift code
Automatic conversions between Double and CGFloat values in Swift 5.5
Using the MainActor attribute to automatically dispatch UI updates on the main queue
Podcast: “Structured concurrency”, with special guest Doug Gregor
First looks at the new APIs and frameworks announced at WWDC21 on WWDC by Sundell & Friends
A Swift developer’s WWDC dreams - 2021 edition
Podcast: “An entire spectrum of apps”, with special guest Sean Allen
Avoiding problematic cases when using Swift enums
Podcast: “Anything can happen during WWDC”, with special guest Ish ShaBazz
Avoiding having to recompute values within SwiftUI views
Three ways to render a SwiftUI view in a playground