Give your simulator superpowers

Give your Xcode
Simulator extra features

A weekly Swift Blog on Xcode and iOS Development

See all

Recent Posts

Shared with You implementation and testing explained

iOS 16 introduced Shared with You allowing you to showcase content shared in Messages inside your app. Users can find ...
Read More
/ Swift

Sendable and @Sendable closures explained with code examples

Sendable and @Sendable are part of the concurrency changes that arrived in Swift 5.5 and address a challenging problem of ...
Read More
/ ConcurrencySwift

UIViewRepresentable explained to host UIView instances in SwiftUI

Adopting the UIViewRepresentable protocol allows you to host UIView instances in SwiftUI. Your SwiftUI code is converted to UIKit views ...
Read More
/ SwiftUI

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 guard infix isolated lazy @MainActor nonisolated optional postfix @propertyWrapper private protocol required @resultBuilder rethrows sendable some struct subscript throw throws try typealias @unchecked @unknown unowned weak where while

See all

Learn more about Swift

Shared with You implementation and testing explained

iOS 16 introduced Shared with You allowing you to showcase content shared in Messages inside your app. Users can find ...
/ Swift

Sendable and @Sendable closures explained with code examples

Sendable and @Sendable are part of the concurrency changes that arrived in Swift 5.5 and address a challenging problem of ...
/ ConcurrencySwift

URLSessionConfiguration: Exploring opt-in configurations

URLSessionConfiguration can be used to initialize URLSession instances in Swift. While in most cases, you'll likely use the default configuration, ...
/ Swift

See all

Learn SwiftUI

UIViewRepresentable explained to host UIView instances in SwiftUI

Adopting the UIViewRepresentable protocol allows you to host UIView instances in SwiftUI. Your SwiftUI code is converted to UIKit views ...
/ SwiftUI

Using NavigationLink programmatically based on binding in SwiftUI

NavigationLink in SwiftUI allows pushing a new destination view on a navigation controller. You can use NavigationLink in a list ...
/ SwiftUI

Markdown rendering using Text in SwiftUI

SwiftUI comes with built-in markdown support for text, making it easy to transform the text into bold, italic, and other ...
/ SwiftUI

See all

Combine all the things

@Published risks and usage explained with code examples

@Published is one of the property wrappers in SwiftUI that allows us to trigger a view redraw whenever changes occur ...
/ CombineSwiftUI

RunLoop.main vs DispatchQueue.main: The differences explained

RunLoop.main and DispatchQueue.main are often used as schedulers within Combine. During code reviews, I often encounter inconsistency in using one ...
/ Combine

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

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

App Icon Generator is no longer needed with Xcode 14

An App Icon Generator generates all required app icon sizes based on a single-size icon input file. Creating and dragging ...
/ OptimizationXcode

RocketSim 8.0: Enhance your iOS Simulator

RocketSim is a developer tool that gives your iOS Simulator extra functionalities to increase day-to-day development productivity. Floating windows become ...
/ 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

See all

Get better at debugging

Debugging SwiftUI views: what caused that change?

Debugging SwiftUI views is an essential skill to own when writing dynamic views with several redrawing triggers. Property wrappers like ...
/ DebuggingSwiftUI

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

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

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

Full-screen development with Xcode and the Simulator

While developing apps it's important to create focus to get in your flow and speed up development. Full-screen mode can ...
/ Workflow

See all

Optimize yourself and improve

App Icon Generator is no longer needed with Xcode 14

An App Icon Generator generates all required app icon sizes based on a single-size icon input file. Creating and dragging ...
/ OptimizationXcode

Increase App Ratings by using SKStoreReviewController

SKStoreReviewController allows asking your users for App Store ratings from within the app. Positive ratings can help your app stand ...
/ OptimizationSwift

Writing Swift Articles: Tips to become a better writer

Writing Swift articles is a great way to become a better engineer and is often seen as a required skill ...
/ Optimization