A code generation story.
I published a YouTube video with a tutorial on implementing the FizzBuzz algorithm using Test-Driven Development. While recording, I made a couple of thinking or coding mistakes, and, sure enough, the tests immediately pointed them out.
Swift 5.5 and Xcode 13 introduce the async/await pattern for concurrent code. This tutorial post shows how to write unit tests for asynchronous code in Swift using the XCTest framework.
Snippets to test the behavior of Combine Publishers in XCTest ready to copy and paste into Xcode
This free tutorial shows how to migrate an existing app with SwiftUI life cycle to use UIKit App Delegate instead
The XCTest Swift testing framework has a limited offer of assertions. There's only so much you can do with XCTAssertTrue and XCTAssertEqual. This XCTest tutorial shows how to create custom assertions to make your unit tests and UI tests shorter and clearer.
How to make the unit tests of your SwiftUI app safer and faster by preventing them from running the program startup flow. This will avoid all of the launch operations like network requests or reads from the local storage that would affect the global state.
A collection of ways to run a single test or a subset of tests using Xcode.
Some code ends up requiring a lot of duplication to be tested. You can remove it by using helper functions encapsulating the shared assertion logic.
Leveraging "snippets" is a way to get faster at writing code and free mental resources for problem solving. Most IDEs and text editor offer this feature, where you can write code scaffolding with a keyboard shortcut.
Practical tips to write "Run Script" build phases in Xcode.
A guide on how to configure your Xcode project to use Google Firebase without using CocoaPods.
Working with Xcode and Xcode-beta on the same machine can sometimes be confusing, this post shares some tools to help make it less so.
An handy script to update all Xcode plug-ins to be compatible with the latest version of Xcode and Xcode-beta.
How to prevent the unit test target from loading the AppDelegate and have faster tests execution.
A short post showing how to use a double slash in xcconfig files, for example to write URLs like https://mokacoding.com
A simple command to run in your terminal to make sure you can use your favourite plugins on the latest version of Xcode
How to install Xcode plugins from the terminal using Fastlane, and persist them across machines.
A practical guide on how to configure Travis CI to run iOS, and OS X, tests.
A practical guide on how to configure CircleCI for to run iOS, and OS X, tests.
A collection of tips on how to configure the -destination option for the xcodebuild tool.
How to configure Xcode to automatically set the version and build number of your projects using Git.
There is a simple keyword you can use in the destination option of an xcodebuild command to always run the most recent Simulator version.
Among the options Carthage, an iOS and OS X dependency manager, provides there is the --no-build one. Using this we can integrate dependencies in the form of Xcode projects rather than frameworks, keeping the repository slimmer and the CI time low. This approach is lighter than than the usual way to work with Carthage, but comes with some disadvantages too.
Here's a little script that will allow you to install the Xcode Command Line Tools without having to install Xcode, nor having a logged GUI. This can come pretty handy in automated scripts or when provisioning virtual machines.
In this little tutorial we will see how to use Cathage, an OS X and iOS depencendy manager, to install libraries written in Swift 2 and Xcode 7, with a focus on the process to get testing dependencies.
An introduction to the XVim plugin, that adds most Vim keybindings and features to the Xcode IDE, and how this can make you more productive as a developer.
How to get started with UI testing in Xcode 7, recording tests and using the new APIs to assert the state of the application under test.
How many times when working on a Mac OSX or iOS app with a team have you had a merge conflict on the project.pbxproj file? I guess more than a few, a lot more than a few. Lucky for you there is an handy tool called xUnique that will make the chances of this happening way smaller.
Keyboard shortcuts are easies way to start increasing your productivity. Let's look at how to run tests in Xcode without ever touching the mouse.
How to invoke xcodebuild to run the tests from the command line and how to format its output using xcbeautify or xcpretty
A look at how Xcode stores information about the project and the workspace
A workaround for the unusual crash of Xcode 5 GM during the App Store submission process.