Blog

SFSymbols, without the strings.

Every SFSymbol you reference in Swift is a hand-typed string. These posts are about why that's a maintenance problem — and how to make it a compile-time guarantee instead.

May 18, 2026 · 5 min read

Grounded SFSymbols for AI agents: an MCP server and a ClawHub skill

Stringly-typed SFSymbols make AI agents hallucinate icon names that compile and ship blank. SFSymbolsKit now ships the fix as agent infrastructure — an MCP server and an install...

Read post →
May 17, 2026 · 3 min read

SFSymbols, AI coding agents, and hallucinated icon names

AI coding assistants confidently generate SFSymbol names that don't exist. Because Apple's APIs are stringly-typed, the hallucination compiles and ships a blank icon. SFSymbolsK...

Read post →
May 15, 2026 · 4 min read

Using SFSymbols in SwiftUI: the type-safe way

SwiftUI's Image(systemName:) takes a String, so every icon in your app is a hand-typed name with no compiler safety net. Here's why that's a maintenance liability and how to fix...

Read post →
May 14, 2026 · 4 min read

How to list every SFSymbol in code (without hardcoding names)

Apple doesn't give you a way to enumerate SFSymbols in Swift — because they're strings, and you can't iterate a string you never wrote down. Here's how to get all of them as a C...

Read post →
May 12, 2026 · 4 min read

Why UIImage(systemName:) returns nil — and how to make it impossible

UIImage(systemName:) returns an optional. When it's nil, it's almost always a misspelled or unavailable symbol name. Here's how to diagnose it and how to eliminate the failure m...

Read post →
May 10, 2026 · 3 min read

SFSymbols in AppKit (NSImage): a practical guide

macOS apps reference SFSymbols through NSImage(systemSymbolName:accessibilityDescription:) — another string-keyed API with the same maintenance problem as its iOS counterparts.

Read post →
May 8, 2026 · 4 min read

SFSymbols in UIKit: a practical guide

Using SFSymbols across UIKit — buttons, bar items, image views, configurations — and why every one of those call sites is a hand-typed string you have to keep correct forever.

Read post →
May 6, 2026 · 4 min read

Typed vs stringly-typed SFSymbols in Swift

Comparing the ways to reference SFSymbols safely in Swift — raw strings, hand-rolled enums, SFSafeSymbols, and SFSymbolsKit — and what the maintenance cost of each actually is.

Read post →
May 5, 2026 · 4 min read

Migrating off hardcoded SFSymbol strings

A practical, incremental strategy for replacing hand-typed SFSymbol name strings with typed properties across an existing codebase — without a risky big-bang refactor.

Read post →
May 1, 2026 · 4 min read

Keeping up with new SFSymbols every iOS release

Apple adds hundreds of SFSymbols every OS cycle. If your symbol names are hand-typed strings, your codebase silently falls behind every September. Here's how to stay current aut...

Read post →