Accompanist في Kotlin: دليل شامل مع أمثلة عملية
1. ما هي مكتبة Accompanist ولماذا تحتاجها؟
Accompanist هي مجموعة من المكتبات الإضافية (extensions) لـ Jetpack Compose، طورتها فريق Google. توفر حلولاً جاهزة للمهام التي إما لم تُضف بعد إلى واجهة Compose المستقرة، أو تتطلب تنفيذًا معقدًا من الصفر. تحل المكتبة المشكلات التي يواجهها كل مطور Compose: التعامل مع الإيماءات، أشرطة النظام، الرسوم المتحركة، WebView، التكيف مع الشاشات المختلفة، وغيرها الكثير.
لماذا تحتاجها؟ أولاً، Accompanist توفر وقتك. بدلاً من كتابة معالج إيماءات خاص بك أو معدّل مخصص لأشرطة النظام، تستخدم مكونًا جاهزًا ومختبرًا. ثانيًا، تتبع المكتبة التوصيات الرسمية من Google وغالبًا ما تكون نموذجًا أوليًا لواجهات Compose المستقبلية. على سبيل المثال، HorizontalPager من Accompanist أُضيف لاحقًا إلى Compose Foundation باسم HorizontalPager.
في وقت كتابة هذا المقال، تتضمن Accompanist وحدات مثل: systemuicontroller (التحكم في شريط الحالة والتنقل)، permissions (طلب الأذونات أثناء التشغيل)، webview (تضمين WebView)، pager (التمرير الأفقي/الرأسي للصفحات)، swiperefresh (إيماءة السحب للتحديث)، placeholder (تحميل الهيكل العظمي)، adaptive (تخطيطات متكيفة)، navigation-animation (رسوم متحركة للانتقال)، وغيرها.
2. طريقة التثبيت
Accompanist هي مكتبة لـ Gradle (Android/Kotlin Multiplatform). يتم التثبيت عبر إضافة التبعيات إلى ملف build.gradle.kts (أو build.gradle) الخاص بوحدتك. لا تُستخدم أوامر pip أو npm أو cargo أو go get، لأنها ليست Python أو JavaScript أو Rust أو Go.
الأمر الدقيق لإضافة وحدة معينة (مثل systemuicontroller):
// build.gradle.kts (Module)
dependencies {
implementation("com.google.accompanist:accompanist-systemuicontroller:0.34.0")
// للوحدات الأخرى:
// implementation("com.google.accompanist:accompanist-permissions:0.34.0")
// implementation("com.google.accompanist:accompanist-pager:0.34.0")
// implementation("com.google.accompanist:accompanist-swiperefresh:0.34.0")
// implementation("com.google.accompanist:accompanist-webview:0.34.0")
// implementation("com.google.accompanist:accompanist-placeholder:0.34.0")
}
هام: تحقق من أحدث إصدار على GitHub Releases. الإصدار 0.34.0 هو آخر إصدار مستقر وقت كتابة المقال. تأكد من توافق إصدار Kotlin و Compose مع إصدار Accompanist الذي تختاره.
3. بداية سريعة — مثال عملي مصغر
لننشئ شاشة تغير لون شريط الحالة عند الضغط على زر. سنستخدم وحدة systemuicontroller.
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import com.google.accompanist.systemuicontroller.rememberSystemUiController
@Composable
fun QuickStartExample() {
val systemUiController = rememberSystemUiController()
var isDark by remember { mutableStateOf(false) }
// تعيين لون شريط الحالة حسب الحالة
LaunchedEffect(isDark) {
if (isDark) {
systemUiController.setStatusBarColor