Stitch - инъекция зависимостей для SwiftUI
Stitch — это лёгкая библиотека внедрения зависимостей (DI), вдохновлённая SwiftUI и обеспечивающая безопасность на этапе компиляции. Она позволяет описывать карту зависимостей без необходимости использовать инструменты генерации кода.
Безопасность Stitch на этапе компиляции даёт уверенность в корректности настройки: если проект компилируется, значит зависимости сконфигурированы правильно. В отличие от типичных контейнеров зависимостей, здесь не возникает ошибок в рантайме из-за того, что какая-либо зависимость не была зарегистрирована.
Для описания карты зависимостей Stitch использует новые макросы Swift 5.9+, что делает API более удобным, а для получения объектов из карты предоставляет соответствующие реализации @propertyWrapper.
Stitch предлагает следующие ключевые возможности:
1. Интеграция в жизненный цикл SwiftUI и привычный для SwiftUI стиль работы — использовать Stitch можно так же, как другие оболочки свойств SwiftUI.
2. Внедрение зависимостей через протоколы внутри представлений SwiftUI. Библиотека расширяет возможности ObservableObject, позволяя работать с протокольными типами и при этом корректно обновлять представления.
3. Доступ к Combine-издателям для свойств протокольных типов без необходимости добавлять в протокол переменные вида Publisher и вручную проксировать их в реализации.
Stitch на GitHub: https://github.com/entrhq/stitch
Платформа: iOS
⭐️: 19
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Stitch — это лёгкая библиотека внедрения зависимостей (DI), вдохновлённая SwiftUI и обеспечивающая безопасность на этапе компиляции. Она позволяет описывать карту зависимостей без необходимости использовать инструменты генерации кода.
Безопасность Stitch на этапе компиляции даёт уверенность в корректности настройки: если проект компилируется, значит зависимости сконфигурированы правильно. В отличие от типичных контейнеров зависимостей, здесь не возникает ошибок в рантайме из-за того, что какая-либо зависимость не была зарегистрирована.
Для описания карты зависимостей Stitch использует новые макросы Swift 5.9+, что делает API более удобным, а для получения объектов из карты предоставляет соответствующие реализации @propertyWrapper.
Stitch предлагает следующие ключевые возможности:
1. Интеграция в жизненный цикл SwiftUI и привычный для SwiftUI стиль работы — использовать Stitch можно так же, как другие оболочки свойств SwiftUI.
2. Внедрение зависимостей через протоколы внутри представлений SwiftUI. Библиотека расширяет возможности ObservableObject, позволяя работать с протокольными типами и при этом корректно обновлять представления.
3. Доступ к Combine-издателям для свойств протокольных типов без необходимости добавлять в протокол переменные вида Publisher и вручную проксировать их в реализации.
Stitch на GitHub: https://github.com/entrhq/stitch
Платформа: iOS
⭐️: 19
👨🦯➡️ AppFiles: код, инструменты, практики, производительность