AppState
June 11, 2026 · View on GitHub
Читайте это на других языках: 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:
- Руководство по установке: Как добавить AppState в ваш проект с помощью Swift Package Manager.
- Обзор использования: Обзор ключевых функций с примерами реализации.
Подробные руководства по использованию:
- Управление состоянием и зависимостями: Централизуйте состояние и внедряйте зависимости по всему вашему приложению.
- Нарезка состояния: Доступ и изменение определенных частей состояния.
- Руководство по использованию StoredState: Как сохранять легковесные данные с помощью
StoredState. - Руководство по использованию FileState: Узнайте, как безопасно хранить большие объемы данных на диске.
- 🍎 Руководство по использованию ModelState: Управляйте объектами SwiftData
@Modelчерез общийModelContainer. - Использование SecureState с Keychain: Безопасное хранение конфиденциальных данных с использованием Keychain.
- Синхронизация с iCloud с помощью SyncState: Поддерживайте синхронизацию состояния на всех устройствах с помощью iCloud.
- Обновление до AppState 3.0: Критические изменения и способы миграции с линейки выпусков 2.x.
- Часто задаваемые вопросы: Ответы на часто задаваемые вопросы при использовании AppState.
- Руководство по использованию констант: Доступ к значениям только для чтения из вашего состояния.
- Руководство по использованию ObservedDependency: Работа с зависимостями
ObservableObjectв ваших представлениях. - Расширенное использование: Такие методы, как создание «точно в срок» и предварительная загрузка зависимостей.
- Лучшие практики: Советы по эффективной структуре состояния вашего приложения.
- Рекомендации по миграции: Руководство при обновлении сохраненных моделей.
Вклад
Мы приветствуем вклад! Пожалуйста, ознакомьтесь с нашим Руководством по участию, чтобы узнать, как принять участие.
Следующие шаги
Начните с Обзора использования. Для создания «точно в срок» и предварительной загрузки зависимостей см. Руководство по расширенному использованию. Руководства Constant и ObservedDependency описывают дополнительные возможности.
Это было сгенерировано с использованием Jules, могут возникнуть ошибки. Пожалуйста, сделайте Pull Request с любыми исправлениями, которые должны произойти, если вы носитель языка.