swiftui-ui-patterns
Faz seu agente aplicar padrões de interface SwiftUI para navegação e telas. Ele ajuda a criar interfaces de usuário eficientes e reutilizáveis.
O que ela faz
Este guia ajuda você a organizar o código de aplicativos feitos com SwiftUI. Ele mostra como gerenciar a navegação entre telas, apresentar janelas extras (sheets), lidar com tarefas que levam tempo para carregar e criar partes reutilizáveis da interface.
Quando usar
- ✓Ao criar novas telas ou partes de um app SwiftUI.
- ✓Ao precisar organizar como o usuário navega entre as telas.
- ✓Ao querer criar componentes de interface que podem ser usados em vários lugares.
Exemplo do que pedir para a IA
“Como posso organizar a navegação entre minhas telas no SwiftUI?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O guia oferece exemplos e regras para usar as ferramentas de organização do SwiftUI, como @State e @Binding, e sugere como estruturar seu código para facilitar a manutenção e a leitura.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill swiftui-ui-patternsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/swiftui-ui-patterns/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões de UI do SwiftUI
Início rápido
Quando Usar
- Ao criar ou refatorar telas, fluxos ou componentes de UI reutilizáveis no SwiftUI.
- Quando precisar de orientação sobre navegação, sheets, estado assíncrono, previews ou padrões de componentes.
Escolha um caminho com base no seu objetivo:
Projeto existente
- Identifique o recurso ou tela e o modelo de interação principal (lista, detalhe, editor, configurações, com abas).
- Encontre um exemplo próximo no repositório com
rg "TabView\("ou similar, e então leia a view SwiftUI mais próxima. - Aplique convenções locais: prefira estado nativo do SwiftUI, mantenha o estado local quando possível e use injeção de ambiente para dependências compartilhadas.
- Escolha a referência de componente relevante em
references/components-index.mde siga suas orientações. - Se a interação revelar conteúdo secundário arrastando ou rolando o conteúdo principal para fora, leia
references/scroll-reveal.mdantes de implementar gestos manualmente. - Construa a view com subviews pequenas e focadas e fluxo de dados nativo do SwiftUI.
Estrutura de novo projeto
- Comece com
references/app-wiring.mdpara conectar TabView + NavigationStack + sheets. - Adicione um
AppTabeRouterPathmínimos com base nos esqueletos fornecidos. - Escolha a próxima referência de componente com base na UI que você precisa primeiro (TabView, NavigationStack, Sheets).
- Expanda os enums de rota e sheet à medida que novas telas são adicionadas.
Pré-requisitos de exemplo
As referências contêm esboços de aplicativos, não um aplicativo completo. Forneça as views, modelos, adaptadores e tokens de tema nomeados do projeto; verifique as importações, contratos de erro reais e o sistema operacional mínimo com o SDK instalado antes de adaptá-los. Vincule toda ação visível a um manipulador testado real, torne as falhas de persistência observáveis e use dados de preview inertes. Um exemplo de código bem-sucedido não é evidência de uma tela testada ou serviço implantado.
Regras gerais a seguir
- Use estado moderno do SwiftUI (
@State,@Binding,@Observable,@Environment) e evite view models desnecessários. - Se o alvo de implantação incluir iOS 16 ou anterior e não puder usar a API de Observação introduzida no iOS 17, use
ObservableObjectcom@StateObjectpara propriedade raiz,@ObservedObjectpara observação injetada e@EnvironmentObjectapenas para estado de nível de aplicativo verdadeiramente compartilhado. - Prefira composição; mantenha as views pequenas e focadas.
- Use async/await com
.taske estados explícitos de carregamento/erro. Para orientação sobre reinício, cancelamento e debouncing, leiareferences/async-state.md. - Mantenha serviços de aplicativo compartilhados em
@Environment, mas prefira injeção explícita de inicializador para dependências e modelos locais de recursos. Para padrões de conexão raiz, leiareferences/app-wiring.md. - Prefira a API mais recente do SwiftUI que se encaixe no alvo de implantação e indique o sistema operacional mínimo sempre que um padrão depender dela.
- Mantenha padrões legados existentes apenas ao editar arquivos legados.
- Siga o formatador e o guia de estilo do projeto.
- Sheets: Prefira
.sheet(item:)em vez de.sheet(isPresented:)quando o estado representa um modelo selecionado. Eviteif letdentro do corpo de um sheet. Sheets devem possuir suas ações e chamardismiss()internamente em vez de encaminhar closuresonCancel/onConfirm. - Revelações acionadas por scroll: Prefira derivar um valor de progresso normalizado a partir do deslocamento do scroll e controlar o estado visual a partir dessa única fonte de verdade. Evite máquinas de estado de gestos paralelas, a menos que o scroll sozinho não possa expressar a interação.
Resumo de propriedade de estado
Use a ferramenta de estado mais restrita que corresponda ao modelo de propriedade:
| Cenário | Padrão preferido |
|---|---|
| Estado de UI local de propriedade de uma view | @State |
| Filho modifica estado de valor de propriedade do pai | @Binding |
| Modelo de referência de propriedade raiz no iOS 17+ | @State com um tipo @Observable |
Filho lê ou modifica um modelo @Observable injetado no iOS 17+ |
Passe-o explicitamente como uma propriedade armazenada |
| Serviço ou configuração de aplicativo compartilhado | @Environment(Type.self) |
| Modelo de referência legado no iOS 16 e anterior | @StateObject na raiz, @ObservedObject quando injetado |
Escolha primeiro o local de propriedade, depois selecione o wrapper. Não introduza um modelo de referência quando um estado de valor simples for suficiente.
Referências transversais
references/navigationstack.md: propriedade de navegação, histórico por aba e roteamento por enum.references/sheets.md: apresentação centralizada de modais e sheets controlados por enum.references/deeplinks.md: tratamento de URL e roteamento de links externos para destinos do aplicativo.
…
Perguntas frequentes
O que são 'sheets'?
São janelas menores que aparecem sobre a tela principal, usadas para tarefas rápidas como preencher um formulário ou mostrar detalhes sem sair da tela atual.
O que significa 'async state'?
Refere-se a como lidar com tarefas que demoram para serem concluídas, como buscar dados da internet, mostrando um indicador de carregamento e tratando possíveis erros.
Posso usar isso em projetos antigos?
Sim, o guia oferece alternativas para versões mais antigas do SwiftUI, mas recomenda usar as ferramentas mais novas quando possível.
Detalhes
Descrição original do autor
Apply proven SwiftUI UI patterns for navigation, sheets, async state, and reusable screens.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4300
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
angular-developer
Ajuda seu agente a criar código Angular e a dar conselhos sobre a estrutura do projeto. É útil para iniciar novos projetos, criar partes do código ou melhorar a performance e acessibilidade.
affaan-m/ECC
frontend-a11y
Ajuda seu agente a tornar interfaces web acessíveis para todos. Ele garante que sites e apps funcionem bem com leitores de tela e navegação por teclado.
affaan-m/ECC
frontend-patterns
Faz seu agente aplicar padrões modernos no desenvolvimento frontend. Ele otimiza performance, gerencia estado e segue boas práticas em React e Next.js.
affaan-m/ECC