Token导航 LogoToken导航TokenDH.com
开发需要联网github未标认证来源可访问许可证需确认审计通过

swiftui-developerSwiftUI 开发者

Agent Skill

swiftui-developer 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

424

周安装

17

GitHub Stars

2

下载量

137
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:swiftui-developer(SwiftUI 开发者)
来源仓库:https://github.com/beshkenadze/claude-skills-marketplace
仓库路径:skills/swiftui-developer
安装命令:
npx skills add https://github.com/beshkenadze/claude-skills-marketplace --skill swiftui-developer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/beshkenadze/claude-skills-marketplace --skill swiftui-developer

简介

swiftui-developer 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • 可结合来源仓库和原始 README 继续核验具体用法。

SKILL.md

SwiftUI Developer

Overview

Expert guidance for building professional SwiftUI applications targeting iOS 17+/macOS 14+ with modern patterns, accessibility compliance, and optimal performance.

Instructions

When writing SwiftUI code, follow this workflow:

1. Assess Requirements

  • Target platform (iOS, macOS, visionOS, watchOS)
  • Minimum OS version (determines available APIs)
  • Complexity level (simple view vs. full feature)

2. Choose Architecture

For simple views:

  • Use @State for local state
  • No ViewModel needed for pure display views

For complex features:

  • Use MVVM with @Observable macro (iOS 17+)
  • Keep ViewModel logic separate from View
  • Use @Environment for shared data

3. Apply State Management

// iOS 17+ Modern Pattern
@Observable
class FeatureViewModel {
    var items: [Item] = []
    @ObservationIgnored var cache: Cache? // Non-observed
}

struct FeatureView: View {
    @State private var viewModel = FeatureViewModel()
    var body: some View { ... }
}

Property Wrapper Selection:

WrapperUse Case
@StateLocal value types, simple state, @Observable objects
@BindingTwo-way connection to parent state
@EnvironmentShared app-wide data, system values
@ObservableModern observable objects (iOS 17+)

4. Follow HIG Principles

  • Touch targets: minimum 44×44 points
  • Text: 17pt body minimum, support Dynamic Type
  • Colors: use semantic colors (.primary, .secondary)
  • Accessibility: add .accessibilityLabel, .accessibilityHint

5. Optimize Performance

  • Extract reusable subviews
  • Use LazyVStack/LazyHStack for lists
  • Avoid heavy computation in body
  • Keep state minimal and locally scoped

Examples

Example: Settings Screen with Toggle

Input: "Create a settings view with dark mode toggle and notification preferences"

Output:

import SwiftUI

@Observable
class SettingsViewModel {
    var isDarkMode: Bool {
        didSet { UserDefaults.standard.set(isDarkMode, forKey: "darkMode") }
    }
    var notificationsEnabled: Bool {
        didSet { UserDefaults.standard.set(notificationsEnabled, forKey: "notifications") }
    }

    init() {
        isDarkMode = UserDefaults.standard.bool(forKey: "darkMode")
        notificationsEnabled = UserDefaults.standard.bool(forKey: "notifications")
    }
}

struct SettingsView: View {
    @State private var viewModel = SettingsViewModel()

    var body: some View {
        Form {
            Section("Appearance") {
                Toggle("Dark Mode", isOn: $viewModel.isDarkMode)
                    .accessibilityHint("Switches between light and dark appearance")
            }

            Section("Notifications") {
                Toggle("Enable Notifications", isOn: $viewModel.notificationsEnabled)
                    .accessibilityHint("Allows the app to send you notifications")
            }
        }
        .navigationTitle("Settings")
    }
}

Example: List with Navigation

Input: "Create a list of items with detail navigation"

Output:

import SwiftUI

struct Item: Identifiable {
    let id = UUID()
    let title: String
    let subtitle: String
}

struct ItemListView: View {
    let items: [Item]

    var body: some View {
        List(items) { item in
            NavigationLink(value: item) {
                VStack(alignment: .leading, spacing: 4) {
                    Text(item.title)
                        .font(.headline)
                    Text(item.subtitle)
                        .font(.subheadline)
                        .foregroundStyle(.secondary)
                }
                .padding(.vertical, 4)
            }
            .accessibilityLabel("\(item.title), \(item.subtitle)")
        }
        .navigationTitle("Items")
        .navigationDestination(for: Item.self) { item in
            ItemDetailView(item: item)
        }
    }
}

Example: Async Data Loading

Input: "Create a view that loads data from an API"

Output:

import SwiftUI

@Observable
class DataViewModel {
    var items: [Item] = []
    var isLoading = false
    var errorMessage: String?

    func loadData() async {
        isLoading = true
        errorMessage = nil

        do {
            items = try await APIService.shared.fetchItems()
        } catch {
            errorMessage = error.localizedDescription
        }

        isLoading = false
    }
}

struct DataView: View {
    @State private var viewModel = DataViewModel()

    var body: some View {
        Group {
            if viewModel.isLoading {
                ProgressView("Loading...")
            } else if let error = viewModel.errorMessage {
                ContentUnavailableView(
                    "Error",
                    systemImage: "exclamationmark.triangle",
                    description: Text(error)
                )
            } else {
                List(viewModel.items) { item in
                    Text(item.title)
                }
            }
        }
        .task {
            await viewModel.loadData()
        }
        .refreshable {
            await viewModel.loadData()
        }
    }
}

Guidelines

Do

  • Use @Observable for iOS 17+ projects (better performance)
  • Support Dynamic Type with .font(.body) etc.
  • Add accessibility labels to interactive elements
  • Use LazyVStack/LazyHStack for large collections
  • Extract complex subviews to prevent unnecessary redraws
  • Use semantic colors for automatic dark mode support

Don't

  • Use @State with reference types (causes memory leaks)
  • Use @ObservedObject to create objects in view (use @StateObject or @State)
  • Put heavy computation in body property
  • Hardcode colors/sizes (breaks accessibility)
  • Ignore the 44×44pt minimum touch target
  • Skip accessibility labels on buttons/images

iOS 18+ Features

  • Floating tab bar with sidebar flexibility
  • .presentationSizing(.form) for sheets
  • Zoom navigation transitions
  • Control Center widgets
  • @Entry macro for environment keys
  • Mesh gradients

Additional Resources

See reference/ directory for:

  • state-management.md - Property wrapper decision guide
  • hig-checklist.md - HIG compliance checklist

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

39.97%
按下载量换算55

Claude

30.14%
按下载量换算41

Cursor

18.49%
按下载量换算25

Gemini CLI

8.83%
按下载量换算12

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills