Automating your Xcode Project
When creating an app, let’s think about what we need to get started. The Xcode project is the backbone of your application — it contains metadata like bundle identifiers and permission text, along with...
View ArticleGetting Started with Mise for iOS and Swift Development
Over the years, I've used a variety of tools from Homebrew to Mint. Each have had their share of issues and perks. Over the past year I've gone with Mise, it seems to be best suited for what I'm...
View ArticleRebuilding MistKit with Claude Code - Real-World Lessons and Collaboration...
In Part 1, I showed how Claude Code and swift-openapi-generator transformed CloudKit's REST documentation into a type-safe Swift client. We had 161 unit tests which passed, but would it actually work...
View ArticleRebuilding MistKit with Claude Code - From CloudKit Docs to Type-Safe Swift...
In my previous article about Building SyntaxKit with AI, I explored how with the help of Claude Code I could transform SwiftSyntax's 80+ lines of verbose API calls into 10 lines of elegant, declarative...
View ArticleBuilding SyntaxKit with AI: A Developer's Journey
When Swift Macros were released in 2023, I thought it would be a great opportunity to augment existing Swift code effectively. However, working with SwiftSyntax quickly made me realize the challenge I...
View ArticleIntroducing swift-build: A GitHub Action for Swift
I love continuous integration. It verifies every commit and pull request passes every check you put to it. Over the years I've used a combination of commands to ensure by Full Stack Swift packages work...
View ArticleShould You SwiftData?
Like many apps at some point you will need some sort of persistent local storage. There are many options and with the release in 2023 of SwiftData there's some clarity but also confusion around it....
View ArticleImplementing Sign in with Apple in the watchOS Simulator
With Sign in with Apple implemented on the server and client, we were ready to begin developing our fitness app for the Apple Watch. However, we quickly ran into issues with developing for the Apple...
View ArticleSetting Up Sign in with Apple with Server Side Swift and SwiftUI
When developing a fitness app, we needed an easy and efficient way for users to authenticate. The standard user name and password interface for the Apple Watch would be cumbersome and challenging....
View ArticleHow Does Server Side Swift Workout in the Real World?
In 2018, I attended the try! Swift conference in New York, where I participated in a workshop titled "Build a Cloud Native Swift App."At the time, Swift was primarily known as an iOS development...
View Article2024 in Review and What's Next in 2025
This was a big year for me and in the Apple development world. From speaking at conferences to career shifts, let's go through what happened in 2024 and what we might see in 2025.My 2024 JourneyThis...
View ArticleSwiftData CRUD Operations with ModelActor
In my previous articles, we explored how to:Create a Background ModelActor in SwiftDataHandle Sendable Requirements in SwiftData using PersisentIdentifierNow let's extend our Database type with robust...
View ArticleBeing Sendable with SwiftData
In the previous article, I showed how to setup a ModelActor which accessed SwiftData on a non-MainActor.Using ModelActor in SwiftDataBeing Sendable with SwiftDataWe were left with an implementation...
View ArticleBushel v1.2.0 - Exciting New Features for WWDC 2024!
As we gear up for WWDC 2024, I'm thrilled to announce the release of Bushel v1.2.0! This major update brings a host of new features and improvements, just in time for the first macOS 15 beta. What's...
View ArticleSwift 6 Incomplete Migration Guide for Dummies
If you've been a Swift developer (or a developer in the Apple space), you've experienced your fair share of migrations. Whether it was Objective-C, SwiftUI, try...catch or most recently async/await and...
View ArticleUsing ModelActor in SwiftData
With the introduction of SwiftData at WWDC 2023, we have seen the further Swift-ifaction of older APIs. While Core Data is a tried and true technology, SwiftData allows for the use of Swift in defining...
View ArticleControl Your Swift Dependencies Before They Control You
We often take dependencies for granted when building apps in Swift. Most of the time, this doesn’t lead to any problems, but it has a way of lulling many Swift developers into a false sense of...
View ArticleGetting Started with Swift OpenAPI Generator
With the launch of Bushel, I created the concept of a Hub. A Hub is an online repository or source that provides you with a collection of macOS restore images (.ipsw files). Hubs serve as convenient...
View ArticleConnecting Observation with Binding in SwiftUI
When I was building Bushel, I ran into an issue where the @Binding object passed to a view would change as the app loaded. This made it difficult to maintain a @Binding object and use the new...
View ArticleBushel of an App - Making Cider from Apples
How much time should you spend on marketing your app? The answer seems to always be more.It is very easy for me to sink days into Xcode worry about a bug that users may or may not notice as opposed to...
View Article