Recent Posts
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 ...
Read More
Read More
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 ...
Read More
Read More
Memory leaks prevention using an autoreleasepool in unit tests
Memory leaks often happen without notice. Although best practices like using a weak reference to self inside closures help a ...
Read More
Read More
In-App Purchases Made EasyWith a few lines of code, RevenueCat gives you everything you need to build, analyze, and grow in-app purchases and subscriptions without managing servers or writing backend code. Get started for free.
Swift Keywords
Do you know how to use each keyword in Swift?
Click on the keyword to learn more and explore code examples.
Learn more about Swift
Memory leaks prevention using an autoreleasepool in unit tests
Memory leaks often happen without notice. Although best practices like using a weak reference to self inside closures help a ...
AsyncSequence explained with Code Examples
AsyncSequence is part of the concurrency framework and the SE-298 proposal. Its name implies it's a type providing asynchronous, sequential, ...
AsyncThrowingStream and AsyncStream explained with code examples
AsyncThrowingStream and AsyncStream are part of the concurrency framework introduced in Swift 5.5 due to SE-314. Async streams allow you ...
Learn 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 ...
Downloading and Caching images in SwiftUI
Downloading and caching images is an essential part of building apps in Swift. There are several ways of downloading images ...
Disable animations on a specific view in SwiftUI using transactions
Animations in SwiftUI look great and make your app shine, but sometimes you want to disable animations on a specific ...
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 ...
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 ...
PassthroughSubject vs. CurrentValueSubject explained
PassthroughSubject and CurrentValueSubject are two types from the Combine framework that conforms to the Subject protocol. Both are very similar ...
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 ...
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 ...
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 ...
Be an expert on Xcode
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
Optimize yourself and improve
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 ...
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 ...
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 ...
Explore categories
Swift
Combine
Concurrency
SwiftUI
Core Data
Xcode
Debugging
Workflow
Optimization
Most Popular Posts
- Markdown rendering using Text in SwiftUI
- Async await in Swift explained with code examples
- JSON Parsing in Swift explained with code examples
- Getting started with the Combine framework in Swift
- EXC_BAD_ACCESS crash error: Understanding and solving it