| 27. 2. 2023 | SwiftUI views versus modifiers – swiftbysundell.com
|
| 30. 1. 2023 | Observing the content offset of a SwiftUI ScrollView – swiftbysundell.com
|
| 19. 12. 2022 | Podcast: “The evolution of Swift”, with special guest Nick Lockwood – swiftbysundell.com
|
| 18. 11. 2022 | Podcast: “Swift concurrency in practice”, with special guest Ben Scheirman – swiftbysundell.com
|
| 12. 11. 2022 | Combining opaque return types with primary associated types – swiftbysundell.com
|
| 31. 10. 2022 | Podcast: “Responsive and smooth UIs”, with special guest Adam Bell – swiftbysundell.com
|
| 17. 9. 2022 | Podcast: “Freelancing and WWDC22 highlights”, with special guest Donny Wals – swiftbysundell.com
|
| 31. 8. 2022 | Podcast: “The role of system design”, with special guest Gui Rambo – swiftbysundell.com
|
| 13. 7. 2022 | Sponsored: Essential Developer – swiftbysundell.com
|
| 11. 7. 2022 | Podcast: “What’s new in SwiftUI in iOS 16?”, with special guest Natalia Panferova – swiftbysundell.com
|
| 8. 7. 2022 | Switching between SwiftUI’s HStack and VStack – swiftbysundell.com
|
| 10. 6. 2022 | Podcast: “Swift 5.7, generics, and the road to Swift 6”, with special guest Ben Cohen – swiftbysundell.com
|
| 9. 6. 2022 | Using the ‘some’ and ‘any’ keywords to reference generic protocols in Swift 5.7 – swiftbysundell.com
|
| 7. 6. 2022 | Swift 5.7’s new optional unwrapping syntax – swiftbysundell.com
|
| 7. 6. 2022 | Rendering SwiftUI views within UITableView or UICollectionView cells on iOS 16 – swiftbysundell.com
|
| 18. 5. 2022 | Podcast: “The evolution of SwiftUI”, with special guest Chris Eidhof – swiftbysundell.com
|
| 5. 5. 2022 | Swift by Sundell turns five years old today! Here’s what’s next for the website and the podcast – swiftbysundell.com
|
| 30. 4. 2022 | Podcast: “A framework and an app”, with special guest Simon Støvring – swiftbysundell.com
|
| 14. 4. 2022 | Type placeholders in Swift – swiftbysundell.com
|
| 21. 3. 2022 | Podcast: “Accessibility on Apple’s platforms”, with special guest Sommer Panage – swiftbysundell.com
|
| 15. 3. 2022 | Abstract types and methods in Swift – swiftbysundell.com
|
| 8. 3. 2022 | Sponsor: Judo – swiftbysundell.com
|
| 4. 3. 2022 | Basics: Equality – swiftbysundell.com
|
| 27. 2. 2022 | Podcast: “Where is Swift headed in 2022?”, with special guest JP Simard – swiftbysundell.com
|
| 17. 2. 2022 | Writing testable code when using SwiftUI – swiftbysundell.com
|
| 9. 2. 2022 | Combining protocols in Swift – swiftbysundell.com
|
| 3. 2. 2022 | Memory management when using async/await in Swift – swiftbysundell.com
|
| 25. 1. 2022 | Automatically retrying an asynchronous Swift Task – swiftbysundell.com
|
| 20. 1. 2022 | Backgrounds and overlays in SwiftUI – swiftbysundell.com
|
| 13. 1. 2022 | Basics: Loops – swiftbysundell.com
|
| 5. 1. 2022 | Creating Combine-compatible versions of async/await-based APIs – swiftbysundell.com
|
| 2. 1. 2022 | Two ways of capturing self strongly within a closure – swiftbysundell.com
|
| 30. 12. 2021 | Podcast: “The 2021 Season Finale” – swiftbysundell.com
|
| 22. 12. 2021 | Building an asynchronous SwiftUI button – swiftbysundell.com
|
| 20. 12. 2021 | Podcast: “Custom rendering”, with special guest James Thomson – swiftbysundell.com
|
| 16. 12. 2021 | New Discover page: Concurrency – swiftbysundell.com
|
| 13. 12. 2021 | Delaying an asynchronous Swift Task – swiftbysundell.com
|
| 9. 12. 2021 | Lightweight dependency injection and unit testing using async functions – swiftbysundell.com
|
| 6. 12. 2021 | Podcast: “Concurrency beyond app development”, with special guest Tim Condon – swiftbysundell.com
|
| 2. 12. 2021 | What role do Tasks play within Swift’s concurrency system? – swiftbysundell.com
|
| 24. 11. 2021 | Swift actors: How do they work, and what kinds of problems do they solve? – swiftbysundell.com
|
| 22. 11. 2021 | Podcast: “Code maintenance”, with special guest Nick Lockwood – swiftbysundell.com
|
| 16. 11. 2021 | Unit testing Swift code that uses async/await – swiftbysundell.com
|
| 11. 11. 2021 | Using count vs isEmpty to check whether a collection contains any elements – swiftbysundell.com
|
| 10. 11. 2021 | Building async and concurrent versions of forEach and map – swiftbysundell.com
|
| 4. 11. 2021 | Podcast: “Concurrency and Swift-DocC”, with special guest Marin Todorov – swiftbysundell.com
|
| 3. 11. 2021 | Using Swift’s concurrency system to run multiple tasks in parallel – swiftbysundell.com
|
| 30. 10. 2021 | Podcast: “UIKit in 2021”, with special guest Ben Scheirman – swiftbysundell.com
|
| 28. 10. 2021 | Making async system APIs backward compatible – swiftbysundell.com
|
| 27. 10. 2021 | Swift’s new concurrency system gains backward compatibility in Xcode 13.2 – swiftbysundell.com
|
| 25. 10. 2021 | New Discover page: Generics – swiftbysundell.com
|
| 21. 10. 2021 | Specialized extensions using generic type constraints – swiftbysundell.com
|
| 14. 10. 2021 | Building editable lists with SwiftUI – swiftbysundell.com
|
| 10. 10. 2021 | Which of the SwiftUI APIs introduced in iOS 15 are backward compatible? – swiftbysundell.com
|
| 7. 10. 2021 | Podcast: “Opportunities for optimization”, with special guest Christian Selig – swiftbysundell.com
|
| 1. 10. 2021 | Programmatic navigation in SwiftUI – swiftbysundell.com
|
| 28. 9. 2021 | Podcast: “Building various kinds of editors”, with special guest Marcin Krzyzanowski – swiftbysundell.com
|
| 25. 9. 2021 | Previewing SwiftUI views in landscape – swiftbysundell.com
|
| 17. 9. 2021 | Using Combine’s share operator to avoid duplicate work – swiftbysundell.com
|
| 16. 9. 2021 | New Discover page: Codable – swiftbysundell.com
|
| 9. 9. 2021 | Codable synthesis for Swift enums – swiftbysundell.com
|
| 6. 9. 2021 | Sponsor: Paste – swiftbysundell.com
|
| 3. 9. 2021 | Conditional compilation within Swift expressions – swiftbysundell.com
|
| 2. 9. 2021 | Podcast: “The magic of Augmented Reality”, with special guest Roxana Jula – swiftbysundell.com
|
| 26. 8. 2021 | Async sequences, streams, and Combine – swiftbysundell.com
|
| 23. 8. 2021 | Podcast: “What’s new in Swift 5.5”, with special guest Antoine van der Lee – swiftbysundell.com
|
| 20. 8. 2021 | Using static protocol APIs to create conforming instances – swiftbysundell.com
|
| 15. 8. 2021 | Defining dynamic colors in Swift – swiftbysundell.com
|
| 6. 8. 2021 | Using ‘@unknown default’ within switch statements – swiftbysundell.com
|
| 2. 8. 2021 | Podcast: “WWDC21, two months later”, with special guest Jordan Morgan – swiftbysundell.com
|
| 27. 7. 2021 | Throwing and asynchronous Swift properties – swiftbysundell.com
|
| 23. 7. 2021 | Attaching property wrappers to function arguments – swiftbysundell.com
|
| 15. 7. 2021 | Podcast: “Cross-platform SwiftUI”, with special guest Malin Sundberg – swiftbysundell.com
|
| 13. 7. 2021 | Stroking and filling a SwiftUI shape at the same time – swiftbysundell.com
|
| 7. 7. 2021 | Mutating and non-mutating Swift contexts – swiftbysundell.com
|
| 5. 7. 2021 | Sponsor: ViRE – swiftbysundell.com
|
| 2. 7. 2021 | Podcast: “A tower of capabilities”, with special guest Chris Lattner – swiftbysundell.com
|
| 29. 6. 2021 | Dismissing a SwiftUI modal or detail view – swiftbysundell.com
|
| 25. 6. 2021 | Calling async functions within a Combine pipeline – swiftbysundell.com
|
| 24. 6. 2021 | Making SwiftUI views refreshable – swiftbysundell.com
|
| 23. 6. 2021 | Basics: Availability checks – swiftbysundell.com
|
| 22. 6. 2021 | Customizing how an external Swift type is encoded or decoded – swiftbysundell.com
|
| 21. 6. 2021 | Connecting async/await to other Swift code – swiftbysundell.com
|
| 15. 6. 2021 | Automatic conversions between Double and CGFloat values in Swift 5.5 – swiftbysundell.com
|
| 13. 6. 2021 | Using the MainActor attribute to automatically dispatch UI updates on the main queue – swiftbysundell.com
|
| 11. 6. 2021 | Podcast: “Structured concurrency”, with special guest Doug Gregor – swiftbysundell.com
|
| 10. 6. 2021 | First looks at the new APIs and frameworks announced at WWDC21 on WWDC by Sundell & Friends – swiftbysundell.com
|
| 3. 6. 2021 | A Swift developer’s WWDC dreams - 2021 edition – swiftbysundell.com
|
| 31. 5. 2021 | Podcast: “An entire spectrum of apps”, with special guest Sean Allen – swiftbysundell.com
|
| 27. 5. 2021 | Avoiding problematic cases when using Swift enums – swiftbysundell.com
|
| 21. 5. 2021 | Podcast: “Anything can happen during WWDC”, with special guest Ish ShaBazz – swiftbysundell.com
|
| 20. 5. 2021 | Avoiding having to recompute values within SwiftUI views – swiftbysundell.com
|
| 19. 5. 2021 | Three ways to render a SwiftUI view in a playground – swiftbysundell.com
|
| 17. 5. 2021 | Sponsor: Essential Developer – swiftbysundell.com
|
| 14. 5. 2021 | Assigning an expression to a variable with the same name – swiftbysundell.com
|
| 11. 5. 2021 | Introducing Plot Components: A new way to build HTML pages using Swift – swiftbysundell.com
|
| 10. 5. 2021 | Sponsor: Architecting SwiftUI apps with MVC and MVVM – swiftbysundell.com
|
| 6. 5. 2021 | Deciding what DispatchQueue to run a completion handler on – swiftbysundell.com
|
| 30. 4. 2021 | Controlling the timing of a Combine pipeline – swiftbysundell.com
|
| 29. 4. 2021 | Podcast: “Gesture-driven animations”, with special guest Adam Bell – swiftbysundell.com
|
| 22. 4. 2021 | Using SwiftUI’s frame modifier to resize and align views – swiftbysundell.com
|
| 16. 4. 2021 | New Discover page: The Standard Library – swiftbysundell.com
|
| 15. 4. 2021 | Podcast: “Concurrency orchestration”, with special guest Brent Simmons – swiftbysundell.com
|
| 13. 4. 2021 | Styling localized strings in Swift – swiftbysundell.com
|
| 12. 4. 2021 | Sponsor: Building Mobile Apps at Scale – swiftbysundell.com
|
| 7. 4. 2021 | Annotating properties with result builder attributes – swiftbysundell.com
|
| 5. 4. 2021 | Sponsor: Stream – swiftbysundell.com
|
| 2. 4. 2021 | Exploring some of the lesser-known, built-in Formatter types – swiftbysundell.com
|
| 2. 4. 2021 | Link: Using Instabug in a SwiftUI-based iOS app – swiftbysundell.com
|
| 30. 3. 2021 | Podcast: “A Mac-like Mac app”, with special guest Benedikt Terhechte – swiftbysundell.com
|
| 26. 3. 2021 | New Discover page: Combine – swiftbysundell.com
|
| 23. 3. 2021 | Using Combine’s futures and subjects – swiftbysundell.com
|
| 21. 3. 2021 | When can Swift’s return keyword be omitted? – swiftbysundell.com
|
| 14. 3. 2021 | Podcast: “Combine and Core Data”, with special guest Donny Wals – swiftbysundell.com
|
| 12. 3. 2021 | Bindable SwiftUI list elements – swiftbysundell.com
|
| 8. 3. 2021 | Sponsor: Bitrise – swiftbysundell.com
|
| 4. 3. 2021 | Automatic handling of property wrapper default values – swiftbysundell.com
|
| 1. 3. 2021 | Sponsor: Emerge – swiftbysundell.com
|
| 27. 2. 2021 | Podcast: “All of our wildest Swift dreams”, with special guest Kaitlin Mahar – swiftbysundell.com
|
| 22. 2. 2021 | Ignoring invalid JSON elements when using Codable – swiftbysundell.com
|
| 19. 2. 2021 | Unit testing Combine-based Swift code – swiftbysundell.com
|
| 15. 2. 2021 | Podcast: “Is SwiftUI ready for production?”, with special guest David Smith – swiftbysundell.com
|
| 9. 2. 2021 | Chained implicit member expressions in Swift 5.4 – swiftbysundell.com
|
| 5. 2. 2021 | Managing self and cancellable references when using Combine – swiftbysundell.com
|
| 2. 2. 2021 | Passing methods as SwiftUI view actions – swiftbysundell.com
|
| 1. 2. 2021 | Sponsor: Raycast – swiftbysundell.com
|
| 29. 1. 2021 | How to sync the width or height of two SwiftUI views? – swiftbysundell.com
|
| 28. 1. 2021 | Podcast: “The essence of app architecture”, with special guest Matt Gallagher – swiftbysundell.com
|
| 25. 1. 2021 | Sponsored: Genius Scan’s SDK – swiftbysundell.com
|
| 21. 1. 2021 | Applying rounded corners to a UIKit or SwiftUI view – swiftbysundell.com
|
| 19. 1. 2021 | Accessing a Swift property wrapper’s enclosing instance – swiftbysundell.com
|
| 18. 1. 2021 | Podcast: “Framework and SDK development”, with special guest Ellen Shapiro – swiftbysundell.com
|
| 12. 1. 2021 | Avoiding SwiftUI’s AnyView – swiftbysundell.com
|
| 11. 1. 2021 | Sponsored: Quickly build SwiftUI prototypes with DetailsPro – swiftbysundell.com
|
| 8. 1. 2021 | Validating email addresses using RawRepresentable and NSDataDetector – swiftbysundell.com
|
| 6. 1. 2021 | Performing POST and file upload requests using URLSession – swiftbysundell.com
|
| 4. 1. 2021 | Creating custom query functions using key paths – swiftbysundell.com
|
| 4. 1. 2021 | Sponsored: Kicking off 2021 with solid continuous integration using Bitrise – swiftbysundell.com
|
| 29. 12. 2020 | Using multiple computed properties to form a SwiftUI view’s body – swiftbysundell.com
|
| 21. 12. 2020 | Podcast: “The 2020 Holiday Special” – swiftbysundell.com
|
| 16. 12. 2020 | Welcome to Swift by Sundell 3.0 – swiftbysundell.com
|
| 14. 12. 2020 | Sponsor: Instabug – swiftbysundell.com
|
| 13. 12. 2020 | 200 weeks of Swift – swiftbysundell.com
|
| 7. 12. 2020 | Sponsor: Architecting SwiftUI apps with MVC and MVVM – swiftbysundell.com
|
| 6. 12. 2020 | The lifecycle and semantics of a SwiftUI view – swiftbysundell.com
|
| 4. 12. 2020 | Observing Combine publishers in SwiftUI views – swiftbysundell.com
|
| 3. 12. 2020 | Podcast: “The SwiftUI layout system”, with special guest Chris Eidhof – swiftbysundell.com
|
| 29. 11. 2020 | Sorting Swift collections – swiftbysundell.com
|
| 25. 11. 2020 | Statically computed default property values – swiftbysundell.com
|
| 23. 11. 2020 | Sponsor: Instabug – swiftbysundell.com
|
| 22. 11. 2020 | Extending Combine with convenience APIs – swiftbysundell.com
|
| 19. 11. 2020 | Podcast: “Map is a design pattern”, with special guest Daniel Steinberg – swiftbysundell.com
|
| 15. 11. 2020 | SwiftUI and UIKit interoperability - Part 2 – swiftbysundell.com
|
| 12. 11. 2020 | Creating custom SwiftUI container views – swiftbysundell.com
|
| 8. 11. 2020 | SwiftUI and UIKit interoperability - Part 1 – swiftbysundell.com
|
| 5. 11. 2020 | Podcast: “Cross-Apple platform development”, with special guest James Thomson – swiftbysundell.com
|
| 2. 11. 2020 | Sponsored: Using Paw to test an app’s web API – swiftbysundell.com
|
| 1. 11. 2020 | Formatting numbers in Swift – swiftbysundell.com
|
| 28. 10. 2020 | Q&A: When does the order of SwiftUI modifiers matter, and why? – swiftbysundell.com
|
| 26. 10. 2020 | Sponsor: RevenueCat – swiftbysundell.com
|
| 25. 10. 2020 | Connecting and merging Combine publishers in Swift – swiftbysundell.com
|
| 22. 10. 2020 | Podcast: “Key paths, functions and closures”, with special guest Vincent Pradeilles – swiftbysundell.com
|
| 19. 10. 2020 | Sponsor: Sim Genie – swiftbysundell.com
|
| 18. 10. 2020 | The power of extensions in Swift – swiftbysundell.com
|
| 15. 10. 2020 | Publishing constant values using Combine – swiftbysundell.com
|
| 12. 10. 2020 | Link: Building a unit testing suite with XCTest, Swift, and Bitrise – swiftbysundell.com
|
| 12. 10. 2020 | Sponsor: Strings – swiftbysundell.com
|
| 11. 10. 2020 | Handling loading states within SwiftUI views – swiftbysundell.com
|
| 8. 10. 2020 | Podcast: “Adventure into widgets”, with Scriptable developer Simon Støvring – swiftbysundell.com |