A weekly Swift Blog on Xcode and iOS Development

See all

Recent Posts

Creating an App Update Notifier using Combine and async/await

An app update-notifier promotes a new app update to your users. Using a notifier will get better adoption rates with ...
Read More
/ Swift

Non-fatal errors vs fatal crashes: The differences explained

Non-fatal errors happen in every application that's developed and have a close relationship with fatal errors. Most of us know ...
Read More
/ Optimization

Composition vs. Inheritance: code architecture solutions explained in Swift

Composition and inheritance are both fundamental programming techniques when working in object-oriented programming languages. You've likely been using both patterns ...
Read More
/ Swift

Swift Keywords

Do you know how to use each keyword in Swift?
Click on the keyword to learn more and explore code examples.

actor associatedtype async @autoclosure available await break catch class continue defer @discardableResult @dynamicMemberLookup enum @escaping fileprivate for @globalActor infix isolated lazy @MainActor nonisolated optional postfix @propertyWrapper private protocol required @resultBuilder rethrows sendable struct subscript throw throws try typealias @unchecked @unknown unowned weak where while

See all

Learn more about Swift

Creating an App Update Notifier using Combine and async/await

An app update-notifier promotes a new app update to your users. Using a notifier will get better adoption rates with ...
/ Swift

Composition vs. Inheritance: code architecture solutions explained in Swift

Composition and inheritance are both fundamental programming techniques when working in object-oriented programming languages. You've likely been using both patterns ...
/ Swift

Property Wrappers in Swift explained with code examples

Property Wrappers in Swift allow you to extract common logic in a distinct wrapper object. This new technique appeared at ...
/ Swift

See all

Learn SwiftUI

How to create a Conditional View Modifier in SwiftUI

Conditional View Modifier creation in SwiftUI allows you only to apply modifiers if a certain condition is true. Whether it's ...
/ SwiftUI

How to create a Dynamic Pager View for onboardings

A pager view in SwiftUI like we know UIPageViewController in UIKit didn't exist until iOS 14 and macOS 11.0. Using ...
/ SwiftUI

Getting started with UIKit in SwiftUI and vice versa

SwiftUI can work together with UIKit by making it easier to add SwiftUI views to UIKit and visa versa using ...
/ SwiftUI

See all

Combine all the things

PassthroughSubject vs. CurrentValueSubject explained

PassthroughSubject and CurrentValueSubject are two types from the Combine framework that conforms to the Subject protocol. Both are very similar ...
/ Combine

How to observe NSManagedObject changes in Core Data using Combine

Observing changes in Core Data NSManagedObject instances with Combine publishers can be a great solution to keep your user interface ...
/ CombineCore Data

Getting started with the Combine framework in Swift

Combine was introduced as a new framework by Apple at WWDC 2019. The framework provides a declarative Swift API for ...
/ CombineSwift

See all

Dive into Core Data

How to observe NSManagedObject changes in Core Data using Combine

Observing changes in Core Data NSManagedObject instances with Combine publishers can be a great solution to keep your user interface ...
/ CombineCore Data

Data validation on insertion, update, and deletion in Core Data

Data validation in apps is important to make sure we save data conforming to the business rules. A name should ...
/ Core Data

Derived Attributes to improve Core Data Fetch Performance

Derived attributes are available since iOS 13 and aim to improve fetch performance in many different scenarios. Although we have ...
/ Core Data

See all

Be an expert on Xcode

Thread Sanitizer explained: Data Races in Swift

The Thread Sanitizer, also known as TSan, is an LLVM based tool to audit threading issues in your Swift and ...
/ SwiftXcode

Development Assets in Xcode to enrich SwiftUI Previews

Development Assets in Xcode allow you to provide test data to use within SwiftUI previews and other code during development ...
/ Xcode

Xcode Mark Line to improve readability using // Mark: comments

Xcode Mark Lines allows us to create a better overview of sections within our classes or structs. A so-called mark ...
/ Xcode

See all

Get better at debugging

Flaky tests resolving using Test Repetitions in Xcode

Flaky tests can be frustrating to deal with. You're ready to open your PR until you realize your tests fail ...
/ Debugging

OSLog and Unified logging as recommended by Apple

OSLog as a replacement of print and NSLog is the recommended way of logging by Apple. It's a bit harder ...
/ DebuggingWorkflow

Using Custom debug descriptions to improve debugging

Custom debug descriptions can help you debug your own custom objects, structs, errors, and other types. Whenever you print out ...
/ DebuggingSwift

See all

Improve your workflow

Picking your minimum iOS version to support

When a new iOS version arrives, it's oftentimes a moment to reflect on the supported iOS versions and see to ...
/ Workflow

RocketSim 4.0: Compare designs & record the Simulator with Touches

RocketSim 4.0 is available as of today and comes with a few major new features. Designs from Sketch and Figma ...
/ Workflow

OSLog and Unified logging as recommended by Apple

OSLog as a replacement of print and NSLog is the recommended way of logging by Apple. It's a bit harder ...
/ DebuggingWorkflow

See all

Optimize yourself and improve

Non-fatal errors vs fatal crashes: The differences explained

Non-fatal errors happen in every application that's developed and have a close relationship with fatal errors. Most of us know ...
/ Optimization

Increasing development effectiveness by recognizing repetition

Development effectiveness determines how fast and efficient you can work as an engineer. The more efficient you can make your ...
/ Optimization

Presentation tips for performing professional Swift talks

Presentation tips can help you perform professional Swift talks by making sure you're well prepared and professional-looking. Last week, I ...
/ Optimization
Explore categories Swift Combine Concurrency SwiftUI Core Data Xcode Debugging Workflow Optimization

SwiftLee Jobs

Post your job positions for free

Most Popular Posts

  1. Creating an App Update Notifier using Combine and async/await
  2. Expressible literals in Swift explained by 3 useful examples
  3. Async await in Swift explained with code examples
  4. Non-fatal errors vs fatal crashes: The differences explained
  5. Lazy var in Swift explained with code examples