Zum Inhalt springen

Xcode 15 bringt typsicheren Zugriff auf Asset Catalogs

Xcode 15 generiert typsichere Swift-Accessoren für Bilder und Farben in Asset Catalogs und ersetzt damit die Notwendigkeit für SwiftGen.

Das Ende von String-basierten Asset-Referenzen

Eine der stilleren, aber wirkungsvollen Änderungen in Xcode 15 ist der eingebaute typsichere Zugriff auf Asset Catalogs. Zuvor erforderte das Referenzieren eines Bildes oder einer Farbe aus dem Asset Catalog ein String-Literal:

// Before Xcode 15
Image("custom-header-icon")
Color("primaryBrand")

Das war fragil. Benenne ein Asset um und dein Code kompiliert einwandfrei, stürzt aber zur Laufzeit ab oder zeigt nichts an. Tools wie SwiftGen existierten speziell dafür, dieses Problem zu lösen, indem sie typsichere Konstanten aus deinen Asset Catalogs generierten.

Was sich geändert hat

Xcode 15 generiert jetzt automatisch Swift-Accessoren für jedes Bild und jede Farbe in deinem Asset Catalog. Du greifst über die Resource-Initializer darauf zu:

// Xcode 15+
Image(.customHeaderIcon)
Color(.primaryBrand)

Xcode showing autocomplete suggestions for asset catalog resources

Der Compiler kennt deine Assets. Du bekommst volle Autovervollständigung, und wenn du ein Asset löschst oder umbenennst, erhältst du einen Compile-Time-Fehler statt eines stillen Runtime-Fehlers.

Apple hat SwiftGen sherlocked

Das ist im Grunde Apple, das integriert, was SwiftGen seit Jahren bietet. Für Teams, die bereits SwiftGen verwenden, ist jetzt ein guter Zeitpunkt, zu evaluieren, ob es noch benötigt wird. Die eingebaute Lösung deckt die zwei häufigsten Anwendungsfälle ab – Bilder und Farben – ohne Build-Phase-Scripts oder Code-Generierungsschritte.

Es gibt weiterhin Gründe, SwiftGen zu behalten, wenn du es für Fonts, lokalisierte Strings oder andere Ressourcentypen nutzt. Aber für Asset Catalogs im Speziellen ist die native Lösung jetzt für die meisten Projekte gut genug und funktioniert sofort ohne Konfiguration.

War das hilfreich? Folge mir auf Bluesky und Mastodon für mehr Swift-Tipps und Indie-Dev-Updates.