A small reset

This site started as a way to learn Swift and iOS in public. I was figuring things out, writing them down, and trying to leave behind something useful. That older material is still here. Some of it is still useful. But it is no longer the full picture of what I work on or what I want this site to cover. These days I’m more interested in practical software, cleaner systems, and the less glamorous parts of making things work properly. I’m also trying to understand what agent-assisted development actually changes when you use it on real work rather than demos and slogans. ...

March 23, 2026 · Mike Gopsill

Swift Classes & Inheritance

Classes are a fundamental concept in Object-Oriented Programming (OOP) and a cornerstone of Swift. In OOP, we model complex systems by creating “objects”—self-contained units that bundle data (properties) and behavior (methods). A class is the blueprint for creating these objects. Unlike structures, classes have two key characteristics: Inheritance: A class can inherit functionality from a parent class, allowing you to build hierarchies of related types. Reference Semantics: Classes are reference types. When you pass a class instance around, you’re passing a reference to the same underlying object in memory. Let’s look at a basic class: ...

Install Xcode Command Line Tools

Need to install Xcode Command Line Tools? You’re probably here because you ran git, clang, or another development command and got an error saying the command wasn’t found. The command line tools are essential for iOS development, even if you’re not using the full Xcode IDE. Here’s how to get them installed quickly. Install via Terminal (Recommended) The fastest way is using Terminal. Open Terminal and run: xcode-select --install This triggers a popup dialog asking if you want to install the command line developer tools. Click “Install” and wait for the download to complete. ...

Swift Structures

Let’s talk about structures, or structs as they’re known in code. Structures are a fundamental building block in Swift. They are versatile and widely used, from simple data containers to more complex types with their own behavior. What are Structures? A structure is a way to group related values together into a named type. Think of it like a blueprint for creating structures that hold specific kinds of data. For example, you could define a struct to represent a 2D point with x and y coordinates, or a struct to hold information about a book, like its title, author, and pageCount. ...

Swift Enumerations

Enums provide a way to define a common type for a group of related values. Enums create distinct cases for these values. Then you can work with, switch over and iterate through these distinct cases, making your code much more clear. What are Enumerations? Think of enums as a way to create your own custom set of options. For example, the days of the week, the suits in a deck of cards, or the different states an application can be in. ...

How to Control the Status Bar in iOS Simulator

Need to quickly change the iOS Simulator’s status bar for screenshots or testing? You can do it with the simctl command-line tool. Here’s a quick look. The Basic Command The core command to manipulate the status bar is: xcrun simctl status_bar <device> override <options> <device>: Use booted for the currently running simulator, or a specific simulator UDID (get a list with xcrun simctl list devices). <options>: These are key-value pairs for what you want to change. Common Status Bar Overrides Here are some of the most common things you’ll want to do: ...