Give your simulator superpowers

Click here to
Build Apps Faster

A weekly Swift Blog on Xcode and iOS Development

See all

Recent Posts

Value and Type parameter packs in Swift explained with examples

Type parameter packs and value parameter packs allow you to write a generic function that accepts an arbitrary number of ...
/ Swift

App Intent driven development in Swift and SwiftUI

App Intent driven development can help you architect your code for reusability. An app intent allows you to define an ...
/ Swift

If and switch expressions in Swift

Swift 5.9 introduced if and switch expressions that allow you to write shorter code by omitting the return keyword. The ...
/ 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

Value and Type parameter packs in Swift explained with examples

Type parameter packs and value parameter packs allow you to write a generic function that accepts an arbitrary number of ...
/ Swift

App Intent driven development in Swift and SwiftUI

App Intent driven development can help you architect your code for reusability. An app intent allows you to define an ...
/ Swift

If and switch expressions in Swift

Swift 5.9 introduced if and switch expressions that allow you to write shorter code by omitting the return keyword. The ...
/ Swift

See all

Learn SwiftUI

App Intents Spotlight integration using Shortcuts

App Intents have been new since iOS 16 and offer a programmatic way to service your app's content and functionality ...
/ SwiftUI

ContentUnavailableView: Handling Empty States in SwiftUI

ContentUnavailableView is a SwiftUI view introduced in iOS 17 during WWDC 2023. It allows you to handle cases of networking ...
/ SwiftUI

Universal Links implementation on iOS

Universal Links allow you to link to content inside your app when a user opens a particular URL. Webpages will ...
/ 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

Build performance analysis for speeding up Xcode builds

Build performance can be analyzed in Xcode to speed up your builds. This can quickly speed up your workflow and ...
/ OptimizationXcode

Xcode Debug Console Tour: Exploring All Options

The Xcode Debug Console allows you, as a developer, to explore logs and debug issues with your apps. All your ...
/ Xcode

Localization testing in Xcode

Localization testing becomes vital if your apps are localized in multiple languages. You want to ensure your UI looks good ...
/ Xcode

See all

Get better at debugging

OSLog and Unified logging as recommended by Apple

OSLog is a replacement for print, and NSLog and Apple's recommended way of logging. It has different logging levels, like ...
/ DebuggingWorkflow

Network Extension Debugging on macOS

A Network Extension on macOS allows you to create content filters, DNS proxies, and more. They integrate nicely into the ...
/ 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

See all

Improve your workflow

OSLog and Unified logging as recommended by Apple

OSLog is a replacement for print, and NSLog and Apple's recommended way of logging. It has different logging levels, like ...
/ DebuggingWorkflow

Location Simulation in Xcode’s Simulator

Location Simulation is a critical feature for apps that provide location access. You want to mimic the environment of real ...
/ 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

See all

Optimize yourself and improve

Build performance analysis for speeding up Xcode builds

Build performance can be analyzed in Xcode to speed up your builds. This can quickly speed up your workflow and ...
/ OptimizationXcode

10 Tips to Get Your App Featured on the App Store

Getting your app featured on the App Store allows you to gain organic growth and more reach. Users can find ...
/ Optimization

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