Repolode
pointfreeco

pointfreeco/swift-composable-architecture

Библиотека Swift для разработки приложений на платформах Apple с согласованным управлением состоянием, композиционными функциями, контролем побочных эффектов и широкими возможностями тестирования.

Звёзды
14,979
Форки
1,678
Открытые issues
26
Последний коммит
14 дней назад

Что это?

Composable Architecture (TCA) — библиотека Swift для последовательной и удобной для тестирования разработки приложений. В её основе — функция со State, Action, Reducer, который изменяет состояние и возвращает эффекты, и Store, который выполняет логику и управляет интерфейсом в SwiftUI или UIKit.

Крупные функции можно разбивать на небольшие изолированные компоненты, а затем собирать обратно. Это позволяет создавать модульные кодовые базы с несколькими целями Xcode или пакетами Swift. Побочные эффекты, например сетевые запросы, редьюсеры возвращают в виде значений, поэтому в тестах их можно заменить mock-зависимостями. В библиотеку входит TestStore: он позволяет пошагово проверять изменения состояния при отправке действий и возврате данных через эффекты.

Проект поддерживает iOS, macOS, iPadOS, visionOS, tvOS и watchOS. В него также входят примеры приложений — Todos, Tic-Tac-Toe, Voice Memos и SyncUps — и документация со статьями о навигации, зависимостях и тестировании.

Ключевые возможности

  • 01Представляет состояние функции простыми типами-значениями, а обновляет его в ответ на Action.
  • 02Позволяет собирать крупные функции из небольших редьюсеров, которые можно размещать в отдельных модулях.
  • 03Редьюсеры возвращают побочные эффекты, поэтому в тестах их можно подменять.
  • 04Предоставляет TestStore для пошаговых проверок состояния и эффектов.
  • 05Включает систему зависимостей для внедрения рабочих и тестовых реализаций.
  • 06Работает со SwiftUI и UIKit на платформах Apple.

Сценарии использования

  • Разработка приложения для iOS на SwiftUI с множеством экранов, использующих общее состояние.
  • Разбиение крупного проекта Xcode на модули функций с чёткими границами.
  • Написание модульных и интеграционных тестов для логики приложения с сетевыми запросами.
  • Постепенный переход приложения на UIKit к однонаправленной архитектуре, удобной для тестирования.

Быстрый старт

  1. 1

    Добавьте зависимость пакета в Xcode или Package.swift

  2. 2

    Импортируйте библиотеку в код

    import ComposableArchitecture
  3. 3

    Определите @Reducer с State, Action и body, затем создайте Store в приложении

Что важно знать

  • Поддерживаются только платформы Apple (iOS, macOS, iPadOS, visionOS, tvOS, watchOS).
  • Чтобы пользоваться библиотекой естественно, сначала нужно освоить её собственные понятия (state, actions, reducers, effects, stores).

Темы

Частые вопросы

Что такое swift-composable-architecture?
Библиотека Swift для разработки приложений на платформах Apple с согласованным управлением состоянием, композиционными функциями, контролем побочных эффектов и широкими возможностями тестирования. Composable Architecture (TCA) — библиотека Swift для последовательной и удобной для тестирования разработки приложений. В её основе — функция со State, Action, Reducer, который изменяет состояние и возвращает эффекты, и Store, который выполняет логику и управляет интерфейсом в SwiftUI или UIKit.
swift-composable-architecture можно использовать бесплатно? Какая у него лицензия?
swift-composable-architecture распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
swift-composable-architecture всё ещё поддерживается?
Активно поддерживается. Последний коммит в swift-composable-architecture — 6 окт. 2026 г..
Для чего можно использовать swift-composable-architecture?
Разработка приложения для iOS на SwiftUI с множеством экранов, использующих общее состояние. Разбиение крупного проекта Xcode на модули функций с чёткими границами. Написание модульных и интеграционных тестов для логики приложения с сетевыми запросами. Постепенный переход приложения на UIKit к однонаправленной архитектуре, удобной для тестирования.
Как установить swift-composable-architecture?
Добавьте зависимость пакета в Xcode или Package.swift Импортируйте библиотеку в код: import ComposableArchitecture Определите @Reducer с State, Action и body, затем создайте Store в приложении
Где скачать swift-composable-architecture?
Исходный код и инструкции по установке — на GitHub: https://github.com/pointfreeco/swift-composable-architecture

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты