Skip to content

WeaveDISwift를 위한 현대적 의존성 주입

Swift Concurrency 지원을 갖춘 고성능 DI 프레임워크

WeaveDI

빠른 예제

swift
import WeaveDI

// 1. 앱 시작 시 의존성 부트스트랩
await WeaveDI.Container.bootstrap { container in
    container.register(UserServiceProtocol.self) {
        UserService()
    }

    container.register(\.userRepository) {
        UserRepositoryImpl()
    }
}

// 2. 주입을 위한 프로퍼티 래퍼 사용
class ViewController {
    @Inject var userService: UserServiceProtocol?
    @Factory var dataProcessor: DataProcessor

    func loadUserData() async {
        guard let service = userService else { return }
        let userData = await service.fetchUser()
        updateUI(with: userData)
    }
}

// 3. 현대적인 async/await 지원
let userService = await UnifiedDI.resolve(UserService.self)
let userData = await userService?.fetchUserData()

성능 지표

시나리오기존 DIWeaveDI 3.2개선율
단일 의존성 해결0.8ms0.2ms75%
복잡한 의존성 그래프15.6ms3.1ms80%
MainActor UI 업데이트3.1ms0.6ms81%

왜 WeaveDI인가?

WeaveDI 3.2.0는 다음을 제공하는 현대적인 Swift 애플리케이션을 위해 설계되었습니다:

  • iOS 15.0+, macOS 14.0+, watchOS 8.0+, tvOS 15.0+ 지원
  • Swift Concurrency 일급 통합
  • Actor 모델 최적화
  • 릴리스 빌드에서 제로 비용 추상화
  • 포괄적인 테스팅 지원

Swift 개발자를 위한 프레임워크

MIT 라이선스 하에 릴리스됨.