RSSAmplifier

Blog

Paulo's blog feed

Blog post summaries

pfandrade.meRSS feed ↗39 posts

Latest posts

How AI Made MessagePack Decoding 20% Faster in Swift

A three-year-old performance TODO became a working Swift library in about 90 minutes.

A WWDC 26 Update on Building a Mac-assed App with SwiftUI

A quick follow-up on SwiftUI's Mac shortcomings after some unexpected attention, Apple feedback, and a few new APIs.

Using SwiftUI to Build a Mac-assed App in 2026

More than five years after SwiftUI's release, how well does it hold up for building a first-class Mac app?

Swift Modules and Code/Assets Duplication

How to use SPM modules in an Xcode project with several targets and avoid duplicated code and assets.

Swift Build Times and Module Verification…

A diagnostic of slow Swift build times after modularizing, focusing on module verification and practical fixes to speed up compilation.

Mixing Swift, Objective-C, SPM and Static Frameworks

Describes problems and solutions when integrating Swift packages into an Objective-C project structure that uses static frameworks.

Pitfalls When Validating App Store Receipts on macOS

Explains common pitfalls when validating App Store receipts locally on macOS and why Apple's suggested approach can fail.

Tweaking Animation Timing

Techniques for adjusting animation timing using custom timing functions to achieve more natural, spring-like motion.

Firefox Add-ons Review Madness

A developer’s account of a surprisingly difficult interaction with Mozilla's Add-ons review process and lessons learned.

Generic View Controllers with Storyboards

Patterns and practical workarounds for using generic view controllers with storyboards when the storyboard needs a concrete class.

Hey Siri, I'm Arriving Home

A hands-on account improving a HomeKit garage door setup with more reliable hardware and automation tweaks.

AnyDecodable

Presents `AnyDecodable`, a flexible approach to decoding JSON with `Codable` when the exact types are unknown ahead of time.

Xconfig

Introduces Xconfig, a small Mac app that displays Xcode build settings for the open project to save time and reduce terminal usage.

Splitting Your Xcode Project into Modules

Practical steps to modularize an Xcode project into separate frameworks and common pitfalls related to linking and build flags.

Unsafe Swift

A tutorial-style deep dive into working with unsafe pointers in Swift—memory layout, buffers, and patterns to work safely.

The Missing "k" Bug

A walkthrough of an interesting bug investigation (the ‘missing k’) and how diagnostic thinking led to the fix.

@DynamicFont

Describes a Swift UI component to centralize font choices and support Dynamic Type and Dark Mode consistently across the app.

Hey Siri, Open My Garage Door

A DIY HomeKit project to add garage door control using a Raspberry Pi and Homebridge, focused on reliability and practical improvements.

The Alert Hammer

A critique of macOS security alerts: why overuse of consent prompts harms usability and the goal of protecting users.

Bootstrapping your indie business

Notes and lessons from a talk on starting and sustaining an indie tech business, based on personal experience.

Thoughts on WWDC 19

Post-WWDC reflections highlighting notable platform updates and a closer look at SwiftUI.

UI Testing and NSScrollView

A short solution for UI tests that need to interact with off-screen elements inside `NSScrollView`.

Search Scopes in Xcode

A practical guide to Xcode's Find features with an emphasis on using search scopes to speed up code navigation.

Late Responders — Sidestepping The Responder Chain

Explains how the responder chain can cause surprising behavior and techniques to sidestep those issues in Cocoa apps.

Inverted Expectations

A pattern for asserting that something did *not* happen in tests, and how to write reliable inverted expectations.

Xcode: Comparing Build Settings

Practical tips for comparing and reasoning about Xcode build settings, from long-term usage experience.

iPad Pro — First Impressions

Hands-on first impressions of the iPad Pro—speed, keyboard, Face ID, and the state of app support.

Building Expectations

Introduces a simple Expectation object (backed by `NSCondition`) for waiting on asynchronous tasks outside of XCTest.

The 2018 iPad Pro

First impressions of the 2018 iPad Pro—what works, what doesn't, and how it shapes the iPad's role as a post-PC device.

Quick TCP Server Using NSSocketPort

How to use `NSSocketPort` to spin up a simple TCP server for testing without adding heavyweight dependencies.

Is There Hope for the Mac App Store?

A reflection on the Mac App Store's current problems and ideas for improvements that would help both users and developers.

Rewinding Animations

A short tip on how to run spring animations in reverse (for example by using a negative speed) and why that helps achieve natural UI effects.

Apple Events and the State of macOS Automation

An argument that Mojave's Apple Event authorization prompts harm automation and user experience, with suggestions for better approaches.

Adopting Dark Mode and Older Macs

Approaches for adopting Dark Mode while keeping compatibility with older macOS versions and APIs.

NSOperation KVO Pitfall

A deep-dive into an NSOperation KVO bug and practical guidance on managing asynchronous operation state to prevent hangs.

The Developers Union

A call for developers to organize and advocate for App Store changes—like free trials—that can improve sustainability for users and creators.

Taming Build Variants With Xcode Configuration Files

How to manage multiple Xcode build configurations with .xcconfig files so build settings stay maintainable and preprocessor logic stays readable.

Rate Limiting Using a Token Bucket in Swift

A practical guide to implementing a token bucket in Swift to rate-limit work without fragile timers or runloop dependencies.

Managing iOS UI Testing Fixtures

Practical techniques for creating and sharing deterministic fixtures for iOS UI tests, helping avoid flakiness and sandboxing pitfalls.