153 posts under the SwiftUI tag, plus wwdc25 and wwdc26. Filtering them against what our code actually contains turned up one real defect and a short list worth keeping. The defect is plurals. A checkout screen renders "\(count) coupons", whose Czech translation is the single form "%lld kupónů" — so it says "1 kupónů" and "3 kupónů", wrong for every count below five. The article that surfaced it recommends inflect:, which covers English, Spanish and six others but not Czech, the language that needs three forms rather than two. Plural variations in the String Catalog are the fix for us; the entry says so rather than repeating the article's advice. Two entries are filed against a future rather than now: swipe action buttons draw their titles from iOS 26, which will surprise us the day we add a custom one, and a Form inside a sheet covers the glass behind it, which starts to matter if the payment sheet ever gets a medium detent. The rest is recorded as swept and skipped, with reasons — including that Core Spotlight and the search tab are things we already do correctly, and that three posts are covered better by the skills shipping inside Xcode. A sweep that leaves no trace of what it rejected gets repeated. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# Checked, not adopted
|
|
|
|
The sweep through nilcoalescing.com covered 153 posts tagged SwiftUI plus
|
|
the wwdc25 and wwdc26 tags. Most of it does not apply to us. This file
|
|
records the ones worth explaining, so the next sweep does not re-open
|
|
them.
|
|
|
|
## Already doing it
|
|
|
|
- **Core Spotlight indexing** — we index cards and handle
|
|
`onContinueUserActivity(CSSearchableItemActionType)` already.
|
|
- **The iOS 26 search tab** — we use `Tab(role: .search)` with
|
|
`searchable()`, which is what the article recommends. Its other
|
|
suggestions (`searchToolbarBehavior()`, `DefaultToolbarItem(kind: .search)`)
|
|
are for apps that keep search in a toolbar rather than a tab.
|
|
|
|
Re-reading these was not wasted: confirming that a decision still matches
|
|
current guidance is worth something, and takes a minute.
|
|
|
|
## Apple's own skills cover it better
|
|
|
|
Three posts overlap directly with the skills that ship inside Xcode, which
|
|
go deeper and are maintained with the SDK. Prefer those.
|
|
|
|
| Post | Covered by |
|
|
|---|---|
|
|
| Equatable properties in @Observable classes | `swiftui-specialist/references/dataflow.md` |
|
|
| The hidden cost of unstable environment defaults | `swiftui-specialist/references/environment.md` |
|
|
| Custom bindings: closures vs subscripts | `swiftui-specialist/references/dataflow.md` |
|
|
|
|
The binding one is a good example of why the Apple skills earn their
|
|
place: it describes the exact anti-pattern we removed from four sheets —
|
|
`Binding(get:set:)` built inside `body` — and we found it through the
|
|
skill during review, before the article ever came up.
|
|
|
|
## Not our shape
|
|
|
|
Blend modes, mesh gradients, `TimelineView`, macOS window and menu-bar
|
|
work, `Canvas` frame reprojection, MapKit polyline gradients, UIKit
|
|
interop. Good writing, nothing to act on here.
|
|
|
|
## Filed elsewhere
|
|
|
|
- Dynamic Type truncation — `fixedSize(horizontal: false, vertical: true)`
|
|
is the fix when text in a scrollable container gets cut off at
|
|
accessibility sizes. Our card tiles deliberately use
|
|
`minimumScaleFactor` instead, which is right for a fixed-height tile.
|
|
Worth remembering for descriptive text, not for the tiles.
|