Agent skill

Swiftui Development

by Mindrally in Mindrally/skills

Guidelines for building SwiftUI applications with MVVM/Clean Architecture, Swift 6 strict concurrency, and modern state management.

Apache-2.0Auto-check passedMobile

Install Swiftui Development

skills CLI
$ npx skills add Mindrally/skills --skill swiftui-development -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Mindrally/skills swiftui-development --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Mindrally/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/swiftui-development .claude/skills/swiftui-development && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
swiftui-development
GitHub stars
267
Token cost
~2.3k tokens
SKILL.md length
964 words
Files
1
Skills in repo
34
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guidelines for building SwiftUI applications with MVVM/Clean Architecture, Swift 6 strict concurrency, and modern state management.

  • Building SwiftUI views
  • SKILL.md covers Key Principles, Architecture, SwiftUI View Structure and State Management, plus 11 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Structuring view models

What it does

Swiftui Development is an agent skill from Mindrally/skills. Guidelines for building SwiftUI applications with MVVM/Clean Architecture, Swift 6 strict concurrency, and modern state management. Use when building SwiftUI views, structuring view models, managing state with @State/@Observable, handling async data flow, or optimizing SwiftUI view performance.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering iOS development, State management and Design patterns. It works with SwiftUI and Swift. The repository describes itself as: 255+ Claude Code skills converted from Cursor rules. Expert coding guidelines for every major framework and language. The licence is Apache-2.0.

When your agent uses it

  • Building SwiftUI views
  • Structuring view models
  • Managing state with @State/@Observable
  • Handling async data flow

Example prompts

  • “Use the swiftui-development skill to guideline for building SwiftUI applications with MVVM/Clean Architecture, Swift 6 strict concurrency, and…”
  • “/swiftui-development”

What it can do on your machine

Read from SKILL.md and the folder at commit 9718410. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are swift).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Swiftui Development loads about 2.3k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 964 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Mindrally/skills at commit 9718410, republished under its Apache-2.0 licence (© Mindrally). 964 words, ~2,281 tokens.

Download SKILL.mdSave it as .claude/skills/swiftui-development/SKILL.md (or your agent's skills folder).
name
swiftui-development
description
Guidelines for building SwiftUI applications with MVVM/Clean Architecture, Swift 6 strict concurrency, and modern state management. Use when building SwiftUI views, structuring view models, managing state with @State/@Observable, handling async data flow, or optimizing SwiftUI view performance.

SwiftUI Development

This skill covers best practices for building clear, performant, and maintainable SwiftUI applications, including architecture, state management, Swift 6 concurrency, layout, animation, and testing.

Key Principles

  • Write correct, up-to-date, bug-free, fully functional, secure, and performant code
  • Favor readability, but not at the expense of correctness or safety
  • Fully implement all requested functionality — leave no TODOs, placeholders, or missing pieces
  • Target Swift 6.0+ with strict concurrency checking enabled; treat concurrency warnings as errors
  • Target iOS 17+ where possible to use modern APIs (@Observable, NavigationStack, #Preview); note the minimum deployment target when it forces older patterns

Architecture

  • Use MVVM (Model-View-ViewModel) or Clean Architecture; introduce a Coordinator layer for complex, multi-screen navigation flows
  • Apply SOLID principles to views and view models:
    • Single Responsibility — each view or view model has one reason to change
    • Open/Closed — extend behavior via composition and protocols rather than modifying existing types
    • Liskov Substitution — protocol conformances must be substitutable without surprising callers
    • Interface Segregation — keep protocols small and focused rather than one large "do everything" interface
    • Dependency Inversion — depend on protocol abstractions, not concrete types, and inject dependencies via init
  • Implement protocol-oriented programming; prefer structs over classes for data models
  • Use extensions for code organization and separation of concerns

SwiftUI View Structure

  • Keep views small and focused on a single responsibility
  • Treat 50 lines as a practical ceiling for a body property — past that, extract subviews into small, reusable structs or private extension functions
  • Use @ViewBuilder for custom container views and complex conditional view logic
  • Implement proper view composition patterns

State Management

  • @State — local, value-type view state (Bool, Int, String, small structs)
  • @Binding — two-way data binding with child views
  • @StateObject — use only in the view that creates/owns the object's lifecycle
  • @ObservedObject — use in child views that react to changes but don't own the object
  • @EnvironmentObject / @Environment — use sparingly for broadly shared dependencies or system values; prefer explicit dependency injection via init when a dependency belongs to a specific view hierarchy rather than the whole app
  • @Published — for observable properties on ObservableObject classes (pre-iOS 17 or when ObservableObject is otherwise required)
  • @Observable macro (iOS 17+) — prefer this over ObservableObject/@Published for new view models; it removes the need for @Published on every property and only triggers view updates for properties actually read by that view, which reduces unnecessary redraws

Naming Conventions

  • camelCase for variables, functions, and methods; PascalCase for types (classes, structs, enums, protocols)
  • Use descriptive, verbose names — fetchUserData over getData
  • Prefix boolean variables with is, has, should, etc.
  • Use verb phrases for function names

SwiftUI Best Practices

  • Use SF Symbols for system icons; use semantic colors from the asset catalog for automatic dark mode support
  • Support Dynamic Type and implement proper keyboard avoidance
  • Use NavigationStack (iOS 16+) over the deprecated NavigationView
  • Prefer type-inferred shorthand dot syntax where available (e.g., .background(.blue))
  • Add .contentShape(Rectangle()) to HStack/VStack rows that have transparent backgrounds, so taps register across the whole row rather than only on opaque content

Layout and Styling

  • Use native SwiftUI layout containers (VStack, HStack, ZStack, Grid); use LazyVStack/LazyHStack for dynamic or long lists
  • Use GeometryReader sparingly — it expands to fill all available space and can hurt layout performance; prefer .background(GeometryReader { ... }) scoped to a single view, or the Layout protocol for custom layouts
  • Give list items stable, meaningful ids (from Identifiable) rather than \.self
  • Implement adaptive layouts for different screen sizes
  • Use ViewModifiers for reusable styling; create custom ButtonStyle, TextFieldStyle, etc.
Show full SKILL.md (405 more words)Show less

Animations and Transitions

  • Prefer .animation(_:value:) scoped to a specific state value over broad withAnimation calls, especially inside body
  • Reserve withAnimation for animations explicitly triggered by user interaction
  • Implement custom transitions using AnyTransition; use matchedGeometryEffect for hero animations
  • Use TimelineView for high-frequency, time-driven visual updates instead of a Timer + published property

Swift 6 Concurrency & Data Flow

  • Annotate view models with @MainActor; all UI updates must happen on the main actor
  • Prefer .task(id:) over .onAppear for starting async work — it automatically cancels the task when the view disappears or the id changes, avoiding orphaned work
  • Use async/await for asynchronous operations and Result (or typed throws) for error handling
  • Prefer actor types for shared mutable state or services accessed from multiple tasks
  • Mark pure logic functions nonisolated when they don't touch the main actor, to avoid unnecessary hops
  • Never block the main thread — move heavy computation to a detached Task
  • Handle loading, error, and success states explicitly rather than leaving implicit/undefined states

Memory Management & Safety

  • Default to [weak self] in closures that outlive the current scope; use guard let self else { return } at the start of async closures
  • Only use [unowned self] when the closure's lifetime is provably shorter than self's
  • Handle optionals safely — no force unwrapping; use guard for early returns
  • For remote images, use AsyncImage (with a caching layer, or a library like Nuke/Kingfisher for production apps) and apply .resizable() immediately

Performance Optimization

  • Minimize view body recalculations; adopt Equatable conformance where it helps SwiftUI skip redundant diffing
  • Implement proper list diffing with Identifiable items and stable ids
  • Profile with Instruments before optimizing; cache expensive computations rather than recomputing them in body

Accessibility

  • Add accessibility labels, hints, and traits appropriately; support VoiceOver
  • Assign distinct accessibilityIdentifier strings to interactive elements so UI tests can target them reliably
  • Test with accessibility features (Dynamic Type, VoiceOver, Reduce Motion) enabled

Testing and Previews

  • Always provide a preview using #Preview (Xcode 15+) or PreviewProvider on older toolchains, injecting realistic mock data
  • Preview in multiple color schemes and device sizes
  • Structure unit tests with Given-When-Then; generate protocol-based mocks for external dependencies so view models can be tested without hitting real services

Code Quality

  • Write self-documenting code; add comments only for non-obvious logic
  • Follow the Swift API Design Guidelines
  • Use MARK: - Section Name to organize longer files, and place private helpers in a private extension

Common Patterns

View with @Observable ViewModel (iOS 17+)
swift
@Observable
@MainActor
final class ContentViewModel {
    var items: [Item] = []
    var isLoading = false

    func loadItems() async {
        isLoading = true
        defer { isLoading = false }
        // Load items
    }
}

struct ContentView: View {
    @State private var viewModel = ContentViewModel()

    var body: some View {
        List(viewModel.items) { item in
            Text(item.name)
        }
        .task(id: viewModel.items.count) {
            await viewModel.loadItems()
        }
    }
}
View with ObservableObject ViewModel (pre-iOS 17 / legacy)
swift
struct ContentView: View {
    @StateObject private var viewModel = ContentViewModel()

    var body: some View {
        // View implementation
    }
}

@MainActor
class ContentViewModel: ObservableObject {
    @Published var items: [Item] = []
    @Published var isLoading = false

    func loadItems() async {
        isLoading = true
        // Load items
        isLoading = false
    }
}
Reusable View Modifier
swift
struct CardModifier: ViewModifier {
    func body(content: Content) -> some View {
        content
            .padding()
            .background(Color(.systemBackground))
            .cornerRadius(12)
            .shadow(radius: 4)
    }
}

extension View {
    func cardStyle() -> some View {
        modifier(CardModifier())
    }
}
</content>

© Mindrally, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in swiftui-development of Mindrally/skills.

Open the folder on GitHubat commit 9718410

Compare with similar skills

Swiftui Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Swiftui Development compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Swiftui Development this skillMindrally/skills267—~2.3kAutomated safety check: PassApache-2.0
Swiftui Expert SkillAFK-surf/OpenBridge4302 repos~3.9kAutomated safety check: PassMIT
Coding Best PracticesKartikLabhshetwar/better-shot2.4k2 repos~1.8kAutomated safety check: PassCustom licence
Appkit Swiftui BridgeKartikLabhshetwar/better-shot2.4k2 repos~1.1kAutomated safety check: PassCustom licence
Swiftui Expert Skillilyas-hallak/romm-ios-app1681 repos~2.9kAutomated safety check: PassMIT
macOS DevelopmentKartikLabhshetwar/better-shot2.4k2 repos~735Automated safety check: PassCustom licence

Similar skills

  • Swiftui Expert Skill

    AFK-surf/OpenBridge

    Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, modern APIs, Swift concurrency, and iOS 26+ Liquid Glass adoption.

    430 GitHub starsUsed in 2 repos~3.9k tokens
    MobileAuto-check passed
  • Coding Best Practices

    KartikLabhshetwar/better-shot

    Reviews macOS Swift 6+ code for modern idioms, SOLID principles, SwiftData patterns, and concurrency best practices.

    2.4k GitHub starsUsed in 2 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Appkit Swiftui Bridge

    KartikLabhshetwar/better-shot

    Expert guidance for hybrid AppKit-SwiftUI development. An agent skill from KartikLabhshetwar/better-shot.

    2.4k GitHub starsUsed in 2 repos~1.1k tokens
    MobileAuto-check passed
  • Swiftui Expert Skill

    ilyas-hallak/romm-ios-app

    Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, and iOS 26+ Liquid Glass adoption.

    168 GitHub starsUsed in 1 repo~2.9k tokens
    MobileAuto-check passed
  • macOS Development

    KartikLabhshetwar/better-shot

    Comprehensive macOS development guidance including Swift 6+, SwiftUI, SwiftData, architecture patterns, AppKit bridging, and macOS 26 Tahoe APIs.

    2.4k GitHub starsUsed in 2 repos~735 tokens
    MobileAuto-check passed
  • Implement Feature

    tddworks/SkillsManager

    Guide for implementing features following architecture-first design, TDD, rich domain models, and Swift 6.2 patterns.

    169 GitHub stars~2.6k tokensUpdated 4 mo ago
    MobileAuto-check passed

More from Mindrally/skills

All 34 skills in this repo
  • Analytics Data Analysis

    Mindrally/skills

    Best practices for analytics, data analysis, and visualization using Python, pandas, matplotlib, seaborn, and Jupyter notebooks.

    267 GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Best practices for AutoML and hyperparameter search with Optuna, Ray Tune, and PyCaret, covering search-space design, validation splits, and leakage prevention.

    267 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Blender Python Addon

    Mindrally/skills

    Best practices for writing Blender Python add-ons using the bpy API, covering operators, panels, properties, registration, and API-safe scripting.

    267 GitHub stars~2.2k tokensUpdated 1 mo ago
    Auto-check passed
  • Expert guidelines for Chrome extension development with Manifest V3, covering security, performance, and best practices.

    267 GitHub stars~1.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Clean Code

    Mindrally/skills

    Clean, maintainable, human-readable code principles combined with anti-over-engineering discipline: naming, single responsibility, DRY, and scoping changes to exactly what was requested.

    267 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed
  • Design Systems

    Mindrally/skills

    Comprehensive design system guidelines for building consistent, accessible, and scalable component libraries.

    267 GitHub stars~1.8k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about Swiftui Development

What does Swiftui Development do?

Guidelines for building SwiftUI applications with MVVM/Clean Architecture, Swift 6 strict concurrency, and modern state management. Swiftui Development is an agent skill from Mindrally/skills. Guidelines for building SwiftUI applications with MVVM/Clean Architecture, Swift 6 strict concurrency, and modern state management.

When should I use Swiftui Development?

Swiftui Development fits situations like: building SwiftUI views; structuring view models; managing state with @State/@Observable; handling async data flow.

How do I install Swiftui Development in Claude Code?

Run `npx skills add Mindrally/skills --skill swiftui-development -a claude-code`. Or copy the skill folder (swiftui-development in Mindrally/skills) into .claude/skills/swiftui-development in your project. Claude Code loads it when a task matches its description.

How do I install Swiftui Development in Codex?

Run `npx skills add Mindrally/skills --skill swiftui-development -a codex`. Or copy the skill folder (swiftui-development in Mindrally/skills) into .agents/skills/swiftui-development in your project. Codex loads it when a task matches its description.

Can I use Swiftui Development in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mindrally/skills --skill swiftui-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/swiftui-development, .gemini/skills/swiftui-development, .github/skills/swiftui-development and .opencode/skills/swiftui-development in your project.

What does Swiftui Development need to run?

SKILL.md names no scripts, command-line tools or credentials: Swiftui Development is instructions for the agent only.

Does Swiftui Development access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Swiftui Development safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Swiftui Development use?

Swiftui Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Swiftui Development use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Swiftui Development?

Skills that share tags, products or a category with Swiftui Development: Swiftui Expert Skill (AFK-surf/OpenBridge, 430 stars), Coding Best Practices (KartikLabhshetwar/better-shot, 2.4k stars), Appkit Swiftui Bridge (KartikLabhshetwar/better-shot, 2.4k stars) and Swiftui Expert Skill (ilyas-hallak/romm-ios-app, 168 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Swiftui Development?

Mindrally (a GitHub organization) maintains it in Mindrally/skills, which has 267 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 3, 2026.

Source: Mindrally/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.