App para macOS que oferece uma interface gráfica para controlar simuladores de iOS, tvOS e watchOS usando a ferramenta simctl da Apple.
hmlongco/Factory
Um container de injeção de dependências para Swift e SwiftUI que registra factories como propriedades computadas simples e oferece escopos, contextos e mocks para testes.
- Estrelas
- 2,929
- Forks
- 193
- Issues abertas
- 1
- Último commit
- há 9 dias
O que é?
Factory é uma biblioteca de injeção de dependências baseada em containers para Swift e SwiftUI. Você define um serviço como uma propriedade computada em um Container que retorna uma Factory e, em seguida, solicita esse serviço com um wrapper de propriedade @Injected, uma chamada direta de função ou uma função global de dependência. O compilador verifica se existe uma factory para cada tipo injetado, então registros ausentes são identificados na compilação, e não em tempo de execução.
A biblioteca atende às necessidades comuns de sistemas de DI: escopos como singleton, cached, shared e escopos de sessão personalizados controlam por quanto tempo as instâncias vivem; os contextos permitem alternar implementações em builds de debug, testes unitários, previews do SwiftUI ou testes de UI. Substituir um registro por um mock exige apenas uma chamada, facilitando a configuração de previews e casos com XCTest ou Swift Testing.
Factory também funciona com Observation, @MainActor e o isolamento da concorrência do Swift, além de incluir um modo de debug que rastreia a árvore de resolução. A biblioteca é distribuída pelo Swift Package Manager sob a licença MIT.
Recursos principais
- 01Registra serviços como propriedades computadas em um Container, com verificações em tempo de compilação para factories ausentes.
- 02Oferece wrappers de propriedade, chamadas diretas de factory e funções globais de dependência para resolver dependências.
- 03Oferece escopos como singleton, cached, shared e escopos personalizados.
- 04Disponibiliza contextos para debug, testes unitários, previews do SwiftUI e testes de UI, permitindo alternar implementações.
- 05Funciona com containers baseados em cenas do SwiftUI, Observation e isolamento de @MainActor.
- 06Inclui um rastreamento de debug que imprime a árvore de resolução de dependências.
Casos de uso
- Injetar serviços e repositórios em views e view models do SwiftUI.
- Substituir serviços de rede ou analytics por mocks em previews do SwiftUI.
- Escrever testes unitários que cubram estados de carregamento, vazio e erro, substituindo dependências.
- Estruturar um app para iOS com as arquiteturas MVVM, MVP, Clean ou VIPER.
Antes de usar
- É exclusivo para projetos Swift, portanto não se aplica a outras linguagens.
Em coleções
Tópicos
Perguntas frequentes
- O que é Factory?
- Um container de injeção de dependências para Swift e SwiftUI que registra factories como propriedades computadas simples e oferece escopos, contextos e mocks para testes. Factory é uma biblioteca de injeção de dependências baseada em containers para Swift e SwiftUI. Você define um serviço como uma propriedade computada em um Container que retorna uma Factory e, em seguida, solicita esse serviço com um wrapper de propriedade @Injected, uma chamada direta de função ou uma função global de dependência. O compilador verifica se existe uma factory para cada tipo injetado, então registros ausentes são identificados na compilação, e não em tempo de execução.
- Factory é gratuito? Qual é a licença?
- Factory é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- Factory ainda é mantido?
- Manutenção ativa. O último commit de Factory foi em 28 de out. de 2026.
- Para que posso usar Factory?
- Injetar serviços e repositórios em views e view models do SwiftUI. Substituir serviços de rede ou analytics por mocks em previews do SwiftUI. Escrever testes unitários que cubram estados de carregamento, vazio e erro, substituindo dependências. Estruturar um app para iOS com as arquiteturas MVVM, MVP, Clean ou VIPER.
- Onde consigo Factory?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/hmlongco/Factory
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Integração do GitHub Copilot ao Xcode que adiciona preenchimento de código, chat, modo agente e revisão de código para projetos Swift e Objective-C.
CLI e app para macOS que desativam daemons em segundo plano nos simuladores de iOS, tvOS, watchOS e visionOS, liberando memória para executar mais simuladores em um Mac.
Componente PHP para padronizar e centralizar a criação e a conexão de objetos em uma aplicação.
Uma biblioteca Swift para criar apps nas plataformas Apple com gerenciamento de estado consistente, funcionalidades compostas, controle de efeitos colaterais e forte suporte a testes.
App para macOS que instala e alterna entre várias versões do Xcode por meio de uma interface gráfica.