Skip to content

Latest commit

 

History

History
104 lines (75 loc) · 6.68 KB

File metadata and controls

104 lines (75 loc) · 6.68 KB

AppState

macOS Build Ubuntu Build Windows Build License Version

AppState es una biblioteca de Swift 6 diseñada para simplificar la gestión del estado de la aplicación de una manera segura para hilos, segura para tipos y compatible con SwiftUI. Proporciona un conjunto de herramientas para centralizar y sincronizar el estado en toda su aplicación, así como para inyectar dependencias en diversas partes de su aplicación.

Requisitos

  • iOS: 15.0+
  • watchOS: 8.0+
  • macOS: 11.0+
  • tvOS: 15.0+
  • visionOS: 1.0+
  • Swift: 6.0+
  • Xcode: 16.0+

Soporte para plataformas no Apple: Linux y Windows

🍎 Las características marcadas con este símbolo son específicas de las plataformas de Apple, ya que dependen de tecnologías de Apple como iCloud y el Llavero.

Características Clave

AppState incluye varias características potentes para ayudar a gestionar el estado y las dependencias:

  • State: Gestión centralizada del estado que le permite encapsular y transmitir cambios en toda la aplicación.
  • StoredState: Estado persistente utilizando UserDefaults, ideal para guardar pequeñas cantidades de datos entre lanzamientos de la aplicación.
  • FileState: Estado persistente almacenado usando FileManager, útil para almacenar grandes cantidades de datos de forma segura en el disco.
  • 🍎 SyncState: Sincronice el estado en múltiples dispositivos usando iCloud, asegurando la coherencia en las preferencias y configuraciones del usuario.
  • 🍎 SecureState: Almacene datos sensibles de forma segura usando el Llavero, protegiendo información del usuario como tokens o contraseñas.
  • Gestión de Dependencias: Inyecte dependencias como servicios de red o clientes de bases de datos en toda su aplicación para una mejor modularidad y pruebas.
  • Slicing: Acceda a partes específicas de un estado o dependencia para un control granular sin necesidad de gestionar todo el estado de la aplicación.
  • Constants: Acceda a porciones de solo lectura de su estado cuando necesite valores inmutables.
  • Observed Dependencies: Observe las dependencias de ObservableObject para que sus vistas se actualicen cuando cambien.

Empezando

Para integrar AppState en su proyecto de Swift, necesitará usar el Swift Package Manager. Siga la Guía de Instalación para obtener instrucciones detalladas sobre cómo configurar AppState.

Después de la instalación, consulte la Descripción General del Uso para una introducción rápida sobre cómo gestionar el estado e inyectar dependencias en su proyecto.

Ejemplo Rápido

A continuación se muestra un ejemplo mínimo que muestra cómo definir una porción de estado y acceder a ella desde una vista de SwiftUI:

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("Conteo: \(counter)")
            Button("Incrementar") { counter += 1 }
        }
    }
}

Este fragmento demuestra cómo definir un valor de estado en una extensión de Application y usar el property wrapper @AppState para enlazarlo dentro de una vista.

Documentación

Aquí hay un desglose detallado de la documentación de AppState:

Guías de Uso Detalladas:

Contribuciones

¡Aceptamos contribuciones! Consulte nuestra Guía de Contribuciones para saber cómo participar.

Próximos Pasos

Con AppState instalado, puede comenzar a explorar sus características clave consultando la Descripción General del Uso y guías más detalladas. ¡Comience a gestionar el estado y las dependencias de manera efectiva en sus proyectos de Swift! Para técnicas de uso más avanzadas, como la creación Justo a Tiempo y la precarga de dependencias, consulte la Guía de Uso Avanzado. También puede revisar las guías de Constantes y ObservedDependency para características adicionales.


Esta traducción fue generada automáticamente y puede contener errores. Si eres un hablante nativo, te agradecemos que contribuyas con correcciones a través de un Pull Request.