A Swift Computed Property allows you to define values based on other properties. You can optionally use async/await and throw errors.| SwiftLee
Learn how to use an autoreleasepool in unit tests to capture memory leaks consistently throughout the development of your project.| SwiftLee
Fixing crashes and bugs takes time. Speed up this process by being better prepared with tips on diagnostics reports, feedback and useful insights.| SwiftLee
The Xcode Debug Console provides access to the LLDB debugger and allows you to filter logs and narrow down issues with your app.| SwiftLee
Improve your Xcode build times and boost productivity with Xcode Build Insights. Keep track of compilation times for better performance.| SwiftLee
Avoid rejection and ensure your app meets App Store requirements by adding API declaration inside an App Privacy manifest file.| SwiftLee
Localization testing in Xcode can be done using scheme settings, system language override, SwiftUI Previews and RocketSim's relaunch feature.| SwiftLee
Store Xcode bookmarks to important code references and search queries. Use the bookmarks as a to-do list to increase your productivity.| SwiftLee
Speed up Xcode Build Performance by gaining insights using Build Timing Summary and various techniques that can save you a lot of time.| SwiftLee
Auto Layout Constraints written programmatically in code by making use of Layout Anchors, Layout Guides, and a few useful extensions.| SwiftLee
The Identifiable protocol adds identity to your objects and comes with a default implementation using ObjectIdentifier for classes.| SwiftLee
Removing duplicates from a collection to get unique values can be achieved in two ways. One is more performant than the other, so let's dive in!| SwiftLee
Get started and learn how to write unit tests to validate your code. Best practices help you to be more productive by writing better tests.| SwiftLee
Race conditions and Data Races can lead to unexpected behavior, and as an engineer it's important to know the differences between both.| SwiftLee
Explore the SwiftUI Grid and learn how to create structured views with LazyVGrid and LazyHGrid for optimal performance.| SwiftLee
Discover the benefits of using a SwiftUI TabView to organize your app's main views into tabbed views for better user experience.| SwiftLee
Explore how to use the picker in SwiftUI for selecting values in your apps with different styles and controls.| SwiftLee
Learn how you can use Task.sleep() and Task.yield() in Swift Concurrency. Be aware of the differences to pick the one you need.| SwiftLee
Flaky tests can be resolved using test repetitions and several best practices when writing tests and running tests locally.| SwiftLee
Learn how to use SwiftUI lists to present data. Explore different list styles, implement selection, or change the background color.| SwiftLee
Macros in Swift allow you to extend the compiler with custom build errors and code generation to eliminate extraneous boilerplate code.| SwiftLee
Static Member Lookup in Generic Contexts allows simplifying code while improving the readability and discoverability of your code.| SwiftLee
Add interaction to your app with a SwiftUI Button, custom styles, and interactions. Learn how you can define reusable components.| SwiftLee
Use an SF Symbol in Swift & SwiftUI and explore over 6,000 free-to-use icons provided by Apple for app developers.| SwiftLee
Learn how to use the Thread Sanitizer to catch Data Races in Swift. Fix flaky tests and weird crashes and see Data Race examples in Swift.| SwiftLee
Improve your project structure and simplify testing with the repository design pattern. Centralize data access and separate concerns.| SwiftLee
Create a Swift Package that works with the Swift Package manager. Add dependencies, platform requirements and work with development packages.| SwiftLee
Boost your productivity with ChatGPT for Swift code generation. Learn how to harness the power of AI to speed up your development process.| SwiftLee
Using the #Preview Swift Macro you can create previews more quickly for all your SwiftUI, UIKit, and AppKit views.| SwiftLee
Learn how to use the Result enum type in Swift. Make use of methods like map, flatMap, flatMapError, and clean up your code.| SwiftLee
MainActor in Swift replaces DispatchQueue.main and ensures tasks are performing on the main thread in a performant manner.| SwiftLee
AsyncThrowingStream and AsyncStream allow you to rewrite existing closure based code to async-await overloading methods.| SwiftLee
Tasks in Swift allow us to create an environment in which we can run async methods using await. Learn how to create and use tasks in Swift.| SwiftLee
The @preconcurrency attribute allows you to suppress Sendable-related warnings emitted from 3rd party libraries temporarily.| SwiftLee
Discover the crucial role of system components in app design for enhanced accessibility and user experience.| SwiftLee
Optimize memory usage when loading images in iOS and SwiftUI. Learn best practices to minimize memory consumption & improve app performance.| SwiftLee
What's new in Swift 6 and how do you migrate your projects and packages? Learn how to apply incremental migration and why you should update.| SwiftLee
Learn how to create Property Wrappers in Swift. Use the @propertyWrapper to remove boilerplate, improve readability, and clean up code.| SwiftLee
Learn how to manually symbolicate crash reports using Xcode Organizer, IPS files and dSYM files to generate symbols.| SwiftLee
Which minimum iOS version should you support? Which devices will I drop support for and how to decide based on facts. Convince your colleagues with data.| SwiftLee
Unit testing async/await logic can be done by marking your unit test as asynchronous and using a new XCTest method.| SwiftLee
RocketSim enhances your Simulator by adding extra functionalities like recordings with touches and device bezels, or recent build actions.| SwiftLee