About:

Independent software developer passionate about privacy, user needs, and meaningful software. Enjoys reading, tea, traveling, and punk shows.

Website:

Specializations:

Interests:

IOS and macOS development Open source work Side projects Reading Tea and coffee Traveling Taking care of plants Punk, hardcore, and metal shows

Incoming Links:

Outgoing Links:

Subscribe to RSS:
The blog post discusses the limitations of the Swift compiler regarding fine-grained control of compiler warnings, particularly in comparison to the Clang compiler used in Objective-C. It explains the common practice of treating a...
The blog post discusses Mariposa, a lightweight CLI tool written in Swift that automates the sharing of blog posts to social media platforms like Bluesky and Mastodon. The author explains the motivation behind creating Mariposa, w...
The text discusses the process of automating perfect screenshots for the Mac App Store. It explains the two basic formats for Mac app screenshots, the current options for Mac app screenshots, and the process of automating screensh...
Xcode automatically creates schemes for your app and other targets included in your project. It recently ran into an issue where Xcode was including schemes from third-party Swift Package dependencies in its auto-populated list. T...
The author expresses dissatisfaction with an AI code review tool, stating that the suggestions are incorrect and make no sense. They provide an example of a wrong suggestion and criticize the bot's conviction and assurance. The au...
Xcode has a little-known feature that allows for spell checking of code and comments, which can be particularly useful for large teams and projects. Enabling spell checking can help prevent typos from being merged into the codebas...
The text discusses the zine, We Are All Very Anxious: Six Theses on Anxiety and Why It is Effectively Preventing Militancy, and One Possible Strategy for Overcoming It, published by The Institute for Precarious Consciousness and C...
The text discusses type erasure in Swift, which is a method to abstract and encapsulate heterogeneous generic types inside a single non-generic concrete type. It explains the challenges of generic programming in Swift and how type...
The blog post discusses the inconsistencies in the UIKit DiffableDataSource API with Swift Concurrency annotations. It explains that the APIs were updated for Swift Concurrency in the iOS 18 SDK, but the annotations were inconsist...
The blog post discusses the concept of diffing in ReactiveCollectionsKit, focusing on identity and equality. It explains how diffing is modeled by the DiffableViewModel protocol, and how it requires three pieces of information to ...
The blog post introduces a new open source project called ReactiveCollectionsKit, which is a modern, fast, and flexible library for building data-driven, declarative, reactive, and diffable collections and lists for iOS. The autho...

0Kintsugi

2024-10-16

The blog post discusses the Japanese art of Kintsugi, which involves repairing broken pottery with urushi lacquer and gold powder, embracing imperfections and the history that produced them. The author shares a personal experience...
The blog post discusses the differences between SwiftUI's new @Observable macro and the existing ObservableObject, focusing on initialization behavior. The @Observable macro, introduced with iOS 17 and macOS 14, was expected to be...
Xcode 16 introduces two new APIs in XCTest for UI testing: waitForNonExistence(withTimeout:) and wait(for:toEqual:timeout:). The former provides a more semantic way to wait for elements to disappear, such as loading indicators, wh...
The blog post discusses recent changes to App Store screenshot requirements announced at WWDC24, which will simplify the process by requiring only one set of screenshots for both iPhone and iPad. This update, part of App Store Con...
The blog post discusses the issues with ScenePhase and using AppDelegate adaptors in SwiftUI. It highlights the limitations of ScenePhase events and view lifecycle events, as well as the bugs and quirks with ScenePhase in SwiftUI....
The blog post discusses a hack for passing non-sendable closures in Swift Concurrency. The author shares a situation where they encountered a concurrency warning and explains the solution they came up with. They introduce a new ty...
The text discusses the bug in Xcode that frequently and randomly deletes the Package.resolved file, leading to 'missing package product' errors. It provides a workaround for this bug and explains the importance of Package.resolved...
Apple introduced privacy manifests at WWDC, requiring developers to include them in apps by May 1. These manifests extend to third-party SDKs, with Apple publishing a list of required SDKs. The list is puzzling, including outdated...
On macOS 14 Sonoma, a regression in Swift 5.9 causes Swift scripts importing Cocoa frameworks to fail, resulting in a 'JIT session error: Symbols not found'. This issue was first reported by @rdj and is being tracked on GitHub. A ...
The blog post discusses the author's experience setting up fastlane for a solo indie app, sharing a lightweight configuration that works well for solo indie developers. The author explains their philosophy of doing the simplest th...
The author has announced that their Mac menu bar apps, Red Eye and Lucifer, are now available for purchase on Gumroad. Previously free, these apps are now priced at $2, with the option to pay more. The author is exploring monetiza...
The blog post discusses unexpected behavior encountered when modifying a protocol in Swift, specifically when changing an initializer to be failable. The author explains that Swift's handling of protocol requirements is more lenie...
The blog post discusses the burdensome and outdated screenshot requirements for the App Store, especially for indie developers. It provides a history of screen sizes for iPhones and iPads, and suggests improvements for iOS and mac...