AppState

June 11, 2026 · View on GitHub

macOS Build Ubuntu Build Windows Build License Version

Читайте это на других языках: French | German | Hindi | Portuguese | Russian | Simplified Chinese | Spanish

AppState — это библиотека Swift 6 для управления состоянием приложения в поточно-безопасном, типобезопасном и дружественном к SwiftUI виде. Централизуйте и синхронизируйте состояние в вашем приложении; внедряйте зависимости где угодно.

Требования

  • iOS: 17.0+
  • watchOS: 10.0+
  • macOS: 14.0+
  • tvOS: 17.0+
  • visionOS: 1.0+
  • Swift: 6.0+
  • Xcode: 16.0+

Поддержка платформ, не относящихся к Apple: Linux и Windows

🍎 Функции, отмеченные этим символом, специфичны для платформ Apple, так как они зависят от технологий Apple, таких как iCloud и Keychain.

Ключевые особенности

AppState включает в себя несколько мощных функций для управления состоянием и зависимостями:

  • State: Централизованное управление состоянием, которое позволяет инкапсулировать и транслировать изменения по всему приложению.
  • StoredState: Постоянное состояние с использованием UserDefaults, идеально подходящее для сохранения небольших объемов данных между запусками приложения.
  • FileState: Постоянное состояние, хранящееся с использованием FileManager, полезное для безопасного хранения больших объемов данных на диске.
  • 🍎 SwiftData (ModelState): Управляйте объектами SwiftData @Model через AppState, внедряя общий ModelContainer и читая/записывая модели с помощью ModelState.
  • 🍎 SyncState: Синхронизация состояния между несколькими устройствами с использованием iCloud, обеспечивающая согласованность пользовательских предпочтений и настроек.
  • 🍎 SecureState: Безопасное хранение конфиденциальных данных с использованием Keychain, защита информации пользователя, такой как токены или пароли.
  • Управление зависимостями: Внедряйте зависимости, такие как сетевые службы или клиенты баз данных, по всему вашему приложению для лучшей модульности и тестирования.
  • Slicing: Доступ к определенным частям состояния или зависимости для гранулярного контроля без необходимости управлять всем состоянием приложения.
  • Constants: Доступ к срезам вашего состояния только для чтения, когда вам нужны неизменяемые значения.
  • Observed Dependencies: Наблюдайте за зависимостями ObservableObject, чтобы ваши представления обновлялись при их изменении.

Начало работы

Добавьте AppState через Swift Package Manager — см. Руководство по установке. Затем ознакомьтесь с Обзором использования для быстрого введения.

Краткий пример

import AppState
import SwiftUI

private extension Application {
    var counter: State<Int> {
        state(initial: 0)
    }
}

struct ContentView: View {
    @AppState(\.counter) var counter: Int

    var body: some View {
        VStack {
            Text("Count: \(counter)")
            Button("Increment") { counter += 1 }
        }
    }
}

Документация

Вот подробная разбивка документации AppState:

Подробные руководства по использованию:

Вклад

Мы приветствуем вклад! Пожалуйста, ознакомьтесь с нашим Руководством по участию, чтобы узнать, как принять участие.

Следующие шаги

Начните с Обзора использования. Для создания «точно в срок» и предварительной загрузки зависимостей см. Руководство по расширенному использованию. Руководства Constant и ObservedDependency описывают дополнительные возможности.


Это было сгенерировано с использованием Jules, могут возникнуть ошибки. Пожалуйста, сделайте Pull Request с любыми исправлениями, которые должны произойти, если вы носитель языка.