AppState בארגז הכלים Android Jetpack.
Jetpack AppState היא קבוצה של ספריות שעוזרות להרחיב את Jetpack Compose State מעבר לשכבת ממשק המשתמש, כדי שתוכלו לשנות ולשתף מצב תגובתי בכל שכבה באפליקציה. AppState מורכבת משתי ספריות עיקריות:
- Transform: ספרייה שמבוססת על סביבת זמן הריצה של Compose, שמריצה בלוק
@Composableבלי ממשק משתמש כדי לשלב מקורות של מצבים ולהמיר אותם ל-Stateשל Compose. - StateStore: קונטיינר למניעת שגיאות הקלדה שמאחסן וחושף את מצב האפליקציה המשותף בתור
Stateשל Compose. בדרך כלל משתמשים בו כדי לשתף מצב בין כמה רכיבים באפליקציה.
כדי ללמוד איך Compose State פועל מחוץ לרכיבים קומפוזביליים של ממשק המשתמש, ואיך Transform ו-StateStore משתלבים לצד ממשקי API קיימים של Compose כמו mutableStateOf ו-SavedStateHandle.saveable בארכיטקטורה, קראו את המאמר שימוש ב-Compose State מחוץ לממשק המשתמש.
פריטי מידע
כדי להתחיל להשתמש ב-AppState, מוסיפים את פריטי המידע שדרושים לפרויקט, יחד עם ספריות תומכות:
| שם | תיאור | פריט מידע שנוצר בתהליך פיתוח (Artifact) |
|---|---|---|
| שדרוג הטקסט והסגנון | יוצר וצופה ב-State של Compose מחוץ לממשק המשתמש (transform ו-listener). |
androidx.appstate.transform:transform |
| בדיקת טרנספורמציה | כלי בדיקה לטרנספורמציה (transformTest ו-TransformTestScope). |
androidx.appstate.transform:transform-testing |
| StateStore | מאגר מצבים בסיסי למניעת שגיאות הקלדה והגדרות של StateStoreKey. |
androidx.appstate.statestore:statestore |
| שילוב של StateStore DataStore | שומר ומשחזר מפתחות StateStore בדיסק באמצעות Jetpack DataStore. |
androidx.appstate.statestore:statestore-datastore |
| פלאגין Compose Compiler | הידור של פונקציות ובלוקים של @Composable במודולים שמשתמשים ב-transform או ב-listener. |
org.jetbrains.kotlin.plugin.compose |
| הפלאגין KotlinX Serialization | יוצר סריאליזטורים ל-@Serializable StateStoreKey ולסוגי מצבים בהתאמה אישית כשמשתמשים ב-statestore-datastore. |
org.jetbrains.kotlin.plugin.serialization |
| ספריית KotlinX Serialization | ספריית סריאליזציה של זמן ריצה ל-@Serializable StateStoreKey ולסוגי מצבים בהתאמה אישית כשמשתמשים ב-statestore-datastore. |
org.jetbrains.kotlinx:kotlinx-serialization-core |
הגדרת הפרויקט
כדי להוסיף את ספריות AppState לפרויקט, צריך להצהיר על הגרסאות, הספריות והפלאגינים של Gradle בקובץ libs.versions.toml:
[versions]
appstate = "1.0.0-alpha01"
kotlin = "2.4.10"
kotlinxSerializationCore = "1.11.0"
[libraries]
# Transform library for producing and observing Compose State
androidx-appstate-transform = { module = "androidx.appstate.transform:transform", version.ref = "appstate" }
# Testing utilities for Transform
androidx-appstate-transform-testing = { module = "androidx.appstate.transform:transform-testing", version.ref = "appstate" }
# Core StateStore library
androidx-appstate-statestore = { module = "androidx.appstate.statestore:statestore", version.ref = "appstate" }
# DataStore integration for StateStore (and required serialization runtime)
androidx-appstate-statestore-datastore = { module = "androidx.appstate.statestore:statestore-datastore", version.ref = "appstate" }
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinxSerializationCore" }
[plugins]
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
# Required only when using statestore-datastore
jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
בשלב הבא, מגדירים את קובץ build.gradle.kts של המודול:
plugins {
...
alias(libs.plugins.compose.compiler)
// Required only when using statestore-datastore
alias(libs.plugins.jetbrains.kotlin.serialization)
}
android {
...
buildFeatures {
compose = true
}
}
dependencies {
...
implementation(libs.androidx.appstate.transform)
implementation(libs.androidx.appstate.statestore)
// Optional: DataStore integration for StateStore
implementation(libs.androidx.appstate.statestore.datastore)
implementation(libs.kotlinx.serialization.core)
...
testImplementation(libs.androidx.appstate.transform.testing)
}
דוגמאות קוד
מאגר המתכונים של AppState מכיל דוגמאות פעילות שמדגימות איך להשתמש ב-Transform וב-StateStore בתבניות נפוצות של ארכיטקטורת Android ובגורמי צורה נפוצים.
שליחת משוב
אתם יכולים לשלוח משוב, לדווח על באגים או לבקש תכונות באמצעות Issue Tracker של Transform או Issue Tracker של StateStore.