Give your simulator superpowers

Click here to
Build Apps Faster

A weekly Swift Blog on Xcode and iOS Development

See all

Recent Posts

The operation couldn’t be completed: solving errors in Swift

"The operation couldn't be completed" is a common error to receive from Apple's standard SDKs or 3rd party libraries. The ...
Read More
/ Swift

RocketSim 10.0: Builds Apps Faster

RocketSim is a developer tool that gives your iOS Simulator extra functionalities to increase day-to-day development productivity. Floating windows become ...
Read More
/ Xcode

Equatable conformance in Swift explained with code examples

Equatable conformance allows you to compare one object with another. Based on whether the objects match, you can perform a ...
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 @dynamicCallable @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

The operation couldn’t be completed: solving errors in Swift

"The operation couldn't be completed" is a common error to receive from Apple's standard SDKs or 3rd party libraries. The ...
/ Swift

Equatable conformance in Swift explained with code examples

Equatable conformance allows you to compare one object with another. Based on whether the objects match, you can perform a ...
/ Swift

Using User Defaults to store preferences in Swift

User Defaults are the go-to solution for Swift applications to store preferences that persist across launches of your app. It's ...
/ Swift

See all

Learn SwiftUI

View Composition using ViewModifiers in SwiftUI

View Composition allows you to create reusable components to create enriched views. You can extract logic into reusable components using ...
/ SwiftUI

Introducing Roadmap: Offer Public Feature Voting

Roadmap is a new open-source framework written completely in Swift and SwiftUI, allowing you to integrate feature voting functionality for ...
/ SwiftUI

How to use FormatStyle to restrict TextField input in SwiftUI

A custom FormatStyle can help you control the allowed characters of a SwiftUI TextField. You might want to allow numbers ...
/ 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

RocketSim 10.0: Builds Apps Faster

RocketSim is a developer tool that gives your iOS Simulator extra functionalities to increase day-to-day development productivity. Floating windows become ...
/ Xcode

Xcode Simulator Directories Exploration

Xcode Simulator directories allow you to find related files for your app. Unlike on a real device, you can access ...
/ OptimizationXcode

Getting started with Unit Tests in Swift

Unit tests in programming languages ensure that written code works as expected. Given a particular input, you expect the code ...
/ SwiftXcode

See all

Get better at debugging

Deadlocks in Swift explained: detecting and solving

Deadlocks in Swift can make your app hang, causing a frustrating situation for both you and your users. Your app ...
/ DebuggingSwift

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

See all

Improve your workflow

Testing push notifications on the iOS simulator

Testing push notifications in the iOS simulator make adding support for remote notifications much more effortless. You often must iterate ...
/ Workflow

Side Projects: 10 Tips for being successful

It's common to have a side project as an engineer since we can build our ideas. At the same time, ...
/ OptimizationWorkflow

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

See all

Optimize yourself and improve

Xcode Simulator Directories Exploration

Xcode Simulator directories allow you to find related files for your app. Unlike on a real device, you can access ...
/ OptimizationXcode

Engineering goals: How to become a more successful developer

Engineering goals create focus and help you achieve the milestones of becoming a successful developer. You'll know better what you've ...
/ Optimization

Binary Targets in Swift Package Manager

Binary Targets in Swift Package Manager (SPM) allow packages to declare xcframework bundles as available targets. The technique is often ...
/ OptimizationSwift