Compétences swiftui-expert-skill
📱

swiftui-expert-skill

Sûr

Criar melhores aplicativos SwiftUI

Également disponible depuis: sickn33

Escrever aplicativos SwiftUI requer entender padrões modernos, otimização de desempenho e diretrizes de design da Apple. Esta habilidade fornece orientação especializada sobre gerenciamento de estado, composição de visualizações e adoção do Liquid Glass do iOS 26+ para ajudá-lo a criar aplicativos iOS de alta qualidade.

Prend en charge: Claude Codex Code(CC)
📊 70 Adéquat
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "swiftui-expert-skill". Review this SwiftUI code: ```swift struct ContentView: View { @StateObject var viewModel = MyViewModel() @State private var selectedItem: Item? var body: some View { List(items) { item in Text(item.name) .onTapGesture { selectedItem = item } } .sheet(isPresented: $selectedItem != nil) { DetailView(item: selectedItem!) } } } ```

Résultat attendu:

## Resultados da Revisão de Código

### Problemas Encontrados:

1. **Prefira @Observable sobre @StateObject** (Alta prioridade)
- @StateObject é obsoleto. Use @Observable com @State para código novo.

2. **Use .sheet(item:) em vez de .sheet(isPresented:)**
- O código atual usa binding opcional que é propenso a erros.

3. **Substitua onTapGesture por Button**
- Button é mais semântico e acessível.

### Alterações Recomendadas:
```swift
@Observable
class MyViewModel {
// model properties
}

struct ContentView: View {
@State private var viewModel = MyViewModel()
@State private var selectedItem: Item?

var body: some View {
List(items) { item in
Button {
selectedItem = item
} label: {
Text(item.name)
}
}
.sheet(item: $selectedItem) { item in
DetailView(item: item)
}
}
}
```

Utilisation de "swiftui-expert-skill". How do I add Liquid Glass to my iOS 26 app?

Résultat attendu:

## Implementação do Liquid Glass no iOS 26

### Efeito Glass Básico:
```swift
if #available(iOS 26, *) {
content
.padding()
.glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16))
} else {
content
.padding()
.background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 16))
}
```

### Diretrizes Principais:
1. Aplique `.glassEffect()` após modificadores de layout e aparência
2. Envolva múltiplos elementos glass em `GlassEffectContainer`
3. Use `.interactive()` apenas em elementos clicáveis
4. Sempre forneça fallbacks para versões mais antigas do iOS

Audit de sécurité

Sûr
v1 • 1/31/2026

All static findings are false positives. The 'Ruby/shell backtick execution' detections are markdown code block delimiters in documentation files. The 'weak cryptographic algorithm' and 'system reconnaissance' patterns are false positives from documentation text and file paths. No actual code execution, network calls, or prompt injection attempts exist. This is a pure documentation skill containing SwiftUI best practices and reference guides.

12
Fichiers analysés
3,785
Lignes analysées
2
résultats
1
Total des audits

Problèmes à risque élevé (1)

Problèmes à risque faible (1)
Hardcoded URL in Documentation
Scanner detected a URL reference in text-formatting.md. This is a legitimate documentation link, not a security risk.
Audité par: claude

Score de qualité

45
Architecture
100
Maintenabilité
87
Contenu
23
Communauté
93
Sécurité
91
Conformité aux spécifications

Ce que vous pouvez construire

Revisão de código para equipes iOS

Revisar pull requests contendo alterações SwiftUI. Obter feedback sobre padrões de gerenciamento de estado, uso de APIs e problemas de performance antes de fazer merge.

Modernização de código SwiftUI legado

Refatorar bases de código SwiftUI mais antigas para usar padrões modernos como @Observable, NavigationStack e modificadores contemporâneos.

Aprendendo SwiftUI moderno

Entender melhores práticas e padrões modernos ao criar novos recursos SwiftUI. Obter orientação sobre seleção de property wrappers e composição de visualizações.

Essayez ces prompts

Revisão de código básica
Revise este código SwiftUI e verifique se segue as melhores práticas modernas. Observe o gerenciamento de estado, uso de APIs e performance: {{code}}
Migração para API moderna
Ajude-me a substituir padrões SwiftUI obsoletos neste código por alternativas modernas. Especificamente atualize: {{code}}
Otimização de performance
Analise esta visualização SwiftUI em busca de problemas de performance. Identifique redraws desnecessários, atualizações de estado ineficientes ou problemas de layout: {{code}}
Implementação de novo recurso
Ajude-me a projetar e implementar um novo recurso SwiftUI. Preciso de uma visualização que mostre uma lista de itens com detalhes ao tocar, usando padrões modernos. Requisitos: {{requirements}}

Bonnes pratiques

  • Prefira @Observable sobre ObservableObject para novo gerenciamento de estado. Marque classes @Observable com @MainActor a menos que use isolamento de ator padrão.
  • Aplique efeitos glass após modificadores de layout. Envolva múltiplos elementos glass em GlassEffectContainer e forneça verificações de disponibilidade do iOS 26+ com fallbacks.
  • Extraia visualizações complexas em subvisualizações menores para melhor performance e manutenibilidade. Use modificadores sobre visualizações condicionais para preservar identidade de visualização.

Éviter

  • Usar @State ou @StateObject para valores passados de visualizações pai - estes apenas aceitam valores iniciais e não atualizarão reativamente.
  • Usar .indices em ForEach para conteúdo dinâmico - isso quebra identidade e causa problemas de rendering. Use identificadores únicos estáveis em vez disso.
  • Criar objetos ou realizar computações pesadas no corpo da visualização - body deve ser puro e rápido, com toda lógica movida para modelos ou propriedades computadas.

Foire aux questions

Quando devo usar @State vs @Binding?
Use @State para estado interno da visualização que a visualização possui e modifica. Use @Binding quando uma visualização filha precisa modificar estado que pertence a uma visualização pai. @Binding cria uma conexão bidirecional com o @State do pai.
Como migrar de ObservableObject para @Observable?
Substitua propriedades @Published com propriedades regulares em uma classe marcada com @Observable. Altere @StateObject para @State e @ObservedObject para padrões let/binding. @Observable lida com objetos aninhados automaticamente.
Qual é o impacto de performance de hierarquias de visualizações profundas?
Hierarquias profundas aumentam o tempo de diffing durante atualizações de visualização. Extraia subvisualizações cedo, mantenha visualizações pequenas e evite GeometryReader quando alternativas existam. Use LazyVStack para listas grandes e identidade estável em ForEach.
Como implementar navegação type-safe?
Use NavigationStack com navigationDestination(for:destination:). Isso fornece verificação em tempo de compilação para caminhos de navegação. Evite NavigationView e use dismiss programático com @Environment(\.dismiss) em vez de apresentar sheets com bindings booleanos.
Quais são os requisitos do Liquid Glass para iOS 26?
iOS 26+ obrigatório. Use glassEffect nativo, GlassEffectContainer e estilos de botão glass. Aplique efeitos glass após modificadores de layout. Sempre forneça verificações #available com materiais de fallback para versões mais antigas do iOS.
Como depurar atualizações de visualização inesperadas?
Use Self._printChanges() no corpo da sua visualização para logar quais propriedades causaram redraws. Verifique atualizações @State desnecessárias em manipuladores onReceive e onChange. Certifique-se de que tipos de valor estão realmente mudando antes de atribuir ao estado.