Apple의 simctl 도구를 감싼 GUI로 iOS, tvOS, watchOS 시뮬레이터를 제어하는 macOS 앱입니다.
hmlongco/Factory
스코프와 컨텍스트, 테스트용 모킹을 지원하며 팩토리를 간단한 계산 프로퍼티로 등록하는 Swift 및 SwiftUI용 의존성 주입 컨테이너입니다.
- 스타
- 2,929
- 포크
- 193
- 열린 이슈
- 1
- 마지막 커밋
- 8일 전
어떤 프로젝트인가요?
Factory는 Swift와 SwiftUI를 위한 컨테이너 기반 의존성 주입 라이브러리입니다. Container에 Factory를 반환하는 계산 프로퍼티를 정의한 뒤, @Injected 프로퍼티 래퍼나 직접 함수 호출, 전역 의존성 함수를 통해 요청합니다. 컴파일러가 주입되는 각 타입에 해당하는 팩토리가 있는지 확인하므로, 등록 누락은 런타임이 아니라 빌드 시점에 발견됩니다.
이 라이브러리는 일반적인 DI 시스템에 필요한 기능을 제공합니다. 싱글톤, 캐시, 공유, 사용자 지정 세션 스코프 등의 스코프로 인스턴스의 수명을 제어할 수 있고, 컨텍스트를 이용해 디버그 빌드, 단위 테스트, SwiftUI 미리보기 또는 UI 테스트에서 구현을 바꿀 수 있습니다. 한 번의 호출로 등록을 모킹 객체로 재정의할 수 있어 미리보기와 XCTest 또는 Swift Testing 테스트를 간편하게 준비할 수 있습니다.
Factory는 Observation, @MainActor, Swift 동시성 격리와도 함께 사용할 수 있으며, 의존성 해석 트리를 추적하는 디버그 모드를 제공합니다. MIT 라이선스로 Swift Package Manager를 통해 배포됩니다.
핵심 기능
- 01Container의 계산 프로퍼티로 서비스를 등록하며, 팩토리 누락을 컴파일 시점에 검사합니다.
- 02해석에 사용할 프로퍼티 래퍼, 직접 팩토리 호출, 전역 의존성 함수를 제공합니다.
- 03싱글톤, 캐시, 공유, 사용자 지정 스코프 등을 지원합니다.
- 04디버그, 단위 테스트, SwiftUI 미리보기, UI 테스트에서 구현을 바꿀 수 있는 컨텍스트를 제공합니다.
- 05SwiftUI 씬 기반 컨테이너, Observation, @MainActor 격리와 함께 사용할 수 있습니다.
- 06의존성 해석 트리를 출력하는 디버그 추적 기능을 제공합니다.
활용 사례
- SwiftUI 뷰와 뷰 모델에 서비스 및 리포지토리를 주입할 때.
- SwiftUI 미리보기에서 네트워크 또는 분석 서비스를 모킹 객체로 대체할 때.
- 의존성을 재정의해 로딩, 빈 화면, 오류 상태를 테스트하는 단위 테스트를 작성할 때.
- MVVM, MVP, Clean, VIPER 아키텍처로 iOS 앱을 구성할 때.
사용 전 알아둘 점
- Swift 프로젝트 전용이므로 다른 언어에는 적용되지 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- Factory은(는) 무엇인가요?
- 스코프와 컨텍스트, 테스트용 모킹을 지원하며 팩토리를 간단한 계산 프로퍼티로 등록하는 Swift 및 SwiftUI용 의존성 주입 컨테이너입니다. Factory는 Swift와 SwiftUI를 위한 컨테이너 기반 의존성 주입 라이브러리입니다. Container에 Factory를 반환하는 계산 프로퍼티를 정의한 뒤, @Injected 프로퍼티 래퍼나 직접 함수 호출, 전역 의존성 함수를 통해 요청합니다. 컴파일러가 주입되는 각 타입에 해당하는 팩토리가 있는지 확인하므로, 등록 누락은 런타임이 아니라 빌드 시점에 발견됩니다.
- Factory은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- Factory은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- Factory은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. Factory의 마지막 커밋은 2026년 10월 28일입니다.
- Factory은(는) 어디에 사용할 수 있나요?
- SwiftUI 뷰와 뷰 모델에 서비스 및 리포지토리를 주입할 때. SwiftUI 미리보기에서 네트워크 또는 분석 서비스를 모킹 객체로 대체할 때. 의존성을 재정의해 로딩, 빈 화면, 오류 상태를 테스트하는 단위 테스트를 작성할 때. MVVM, MVP, Clean, VIPER 아키텍처로 iOS 앱을 구성할 때.
- Factory은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/hmlongco/Factory
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Swift 및 Objective-C 프로젝트에 코드 자동 완성, 채팅, 에이전트 모드, 코드 리뷰를 제공하는 Xcode용 GitHub Copilot 통합 도구입니다.
하나의 Mac에서 더 많은 시뮬레이터를 메모리에 띄울 수 있도록 iOS, tvOS, watchOS, visionOS 시뮬레이터의 백그라운드 데몬을 끄는 macOS CLI 및 앱입니다.
애플리케이션에서 객체를 생성하고 서로 연결하는 방식을 표준화하고 한곳에서 관리하는 PHP 컴포넌트입니다.
일관된 상태 관리와 조합 가능한 기능, 사이드 이펙트 제어, 강력한 테스트 지원을 제공하는 Apple 플랫폼 앱 개발용 Swift 라이브러리입니다.
그래픽 인터페이스에서 여러 Xcode 버전을 설치하고 전환할 수 있는 macOS 앱입니다.