Tinkerble 1.3.0
What's Changed
- Adds positional display-name APIs for
@TinkerbleState,@TinkerbleObservableState,@TinkerbleAction,TinkerLog.value, andTinkerble.shared.log. - Keeps
screenandcategorylabeled in the canonical API. - Deprecates old
name:and category-first spellings with migration messages. - Preserves the old
@TinkerbleObservableState("Category", name: "Name")behavior so existing category/name call sites do not silently swap meanings. - Updates the Tinkerble Demo and README examples to use the latest API.
Migration
Prefer the new required positional display name:
@TinkerbleState("Opacity", category: "Layout")
@TinkerbleObservableState("Badge Count", screen: "Basic", category: "Observable")
@TinkerbleAction("Increment Action Count", screen: "Basic", category: "Observable")
TinkerLog.value("Visible Cards", value: cards.count, screen: "Cards", category: "Deck")Older name: and category-first forms still compile for now, but they are deprecated and will warn with the suggested replacement.
Validation
swift test./Scripts/verify-macos-companion-package.shxcodebuild -project "Tinkerble Demo/Tinkerble Demo.xcodeproj" -scheme "Tinkerble Demo" -destination "generic/platform=iOS Simulator" -clonedSourcePackagesDirPath .build-demo-validation build