swift-sharing_skill

This skill helps you share and persist app state across components with observable changes and safe mutation.
  • Swift

11

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill nonameplum/agent-skills --skill swift-sharing

  • SKILL.md2.4 KB

Overview

This skill describes swift-sharing, a Swift library for sharing state across your app with built-in persistence and observation support. It explains core concepts, persistence strategies, safe mutation patterns, dynamic keys, derived state, and testing guidance. The content is organized progressively from basics to advanced topics so you can integrate sharing incrementally.

How this skill works

The library exposes a shared state abstraction keyed by type-safe keys that can be observed and mutated safely to avoid races and data loss. Persistence strategies are pluggable: you can use built-in strategies or implement custom storage backends. The skill covers dynamic key replacement, deriving sub-state from larger pieces, and rules for initializing state when persistence is involved.

When to use it

  • You need a single source of truth accessible from multiple features or modules.
  • You want automatic observation to update UI or trigger side effects on state changes.
  • You must persist shared state across launches with configurable storage strategies.
  • You want type-safe keys and compile-time guarantees when referencing shared values.
  • You need to test features that rely on shared state and simulate persistence.

Best practices

  • Define reusable, type-safe keys to avoid string-based errors and clarify intent.
  • Follow the mutating guidelines to perform safe, atomic updates and prevent race conditions.
  • Use derived state to expose only the sub-parts features need, minimizing coupling.
  • Choose or implement a persistence strategy that matches your consistency and performance needs.
  • Write tests that inject test persistence strategies so you can verify behavior deterministically.

Example use cases

  • Share user preferences and persist them to disk so multiple screens reflect changes immediately.
  • Maintain a global session object that is observed by authentication and navigation features.
  • Derive a filtered list state from a larger dataset to present in a child view while keeping the source canonical.
  • Swap persistence backends for testing or migrate storage formats using the provided migration guidance.
  • Dynamically change the key powering a piece of shared state to support multi-tenant or user-scoped data.

FAQ

Use the library's provided mutation APIs that perform atomic updates and follow the documented mutating patterns to coordinate concurrent access.

Can I use a custom storage backend for persistence?

Yes. The skill documents built-in persistence strategies and explains how to implement custom persistence strategies to fit your storage requirements.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational