Podcast: “Accessibility on Apple’s platforms”, with special guest Sommer Panage
Sommer Panage returns to the show to discuss Apple’s various accessibility APIs and tools, how to incorporate accessibility support into a team’s overall development workflow, and what it was like...
View ArticleType placeholders in Swift
Swift’s type inference capabilities have been a very core part of the language since the very beginning, and heavily reduces the need for us to manually specify types when declaring variables and...
View ArticlePodcast: “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...
View ArticleSwift by Sundell turns five years old today! Here’s what’s next for the...
Today it’s been exactly five years since this website first launched, and what a journey it has been! When I started this website after having published weekly articles on Medium for a few months, I...
View ArticlePodcast: “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...
View ArticleRendering 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,...
View ArticleSwift 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...
View ArticleUsing 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...
View ArticlePodcast: “Swift 5.7, generics, and the road to Swift 6”, with special guest...
Ben Cohen, manager of the Swift team at Apple, joins John on this WWDC22 special to discuss Swift 5.7, how generics have been made more powerful and easy to use, and how the language is expected to...
View ArticleSwitching between SwiftUI’s HStack and VStack
SwiftUI’s various stacks are some of the framework’s most fundamental layout tools, and enable us to define groups of views that are aligned either horizontally, vertically, or stacked in terms of...
View ArticlePodcast: “What’s new in SwiftUI in iOS 16?”, with special guest Natalia...
Natalia Panferova joins John to discuss some of the key new features that are coming to SwiftUI and UIKit in iOS 16, and to talk about her experience working on SwiftUI at Apple.SponsorsNordVPN: Get an...
View ArticleSponsored: 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...
View ArticlePodcast: “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...
View ArticlePodcast: “Freelancing and WWDC22 highlights”, with special guest Donny Wals
Donny Wals returns to the show to talk about being an iOS developer freelancer, and to discuss some of the key new APIs, Swift language features, and frameworks that were introduced at...
View ArticlePodcast: “Responsive and smooth UIs”, with special guest Adam Bell
Adam Bell returns to the podcast to discuss different techniques and approaches for optimizing UI code, and how to utilize tools like animations in order to build iOS apps that feel fast and...
View ArticleCombining opaque return types with primary associated types
Ever since Swift was first introduced, it’s been very common to need to use type erasure when working with generic protocols — ones that either reference Self within their requirements, or make use of...
View ArticlePodcast: “Swift concurrency in practice”, with special guest Ben Scheirman
Ben Scheirman returns to the show to discuss how Swift’s built-in concurrency features, such as async/await and tasks, can be used in practice when building apps for Apple’s platforms.SponsorsEssential...
View ArticlePodcast: “The evolution of Swift”, with special guest Nick Lockwood
On this final episode of 2022, Nick Lockwood returns to the show to discuss the overall evolution of Swift and its ecosystem of tools and libraries. How has Swift changed since its original...
View ArticleObserving the content offset of a SwiftUI ScrollView
When building various kinds of scrollable UIs, it’s very common to want to observe the current scroll position (or content offset, as UIScrollView calls it) in order to trigger layout changes, load...
View ArticleSwiftUI views versus modifiers
One of the most interesting aspects of SwiftUI, at least from an architectural perspective, is how it essentially treats views as data. After all, a SwiftUI view isn’t a direct representation of the...
View Article