كيفية استخدام ArabicKit
مكتبة Jetpack Compose جاهزة للتطبيقات العربية RTL-first
ما هو ArabicKit Android؟
مجموعة مكونات Jetpack Compose مبنية من الصفر للتطبيقات العربية.
كل مكوّن يدعم RTL تلقائياً بمجرد تغليف تطبيقك بـ
ArabicKitTheme.
لا حاجة لإعدادات إضافية - الأرقام العربية، الخطوط، والاتجاه كلها جاهزة.
١
نسخ المجلد إلى مشروعك
انسخ مجلد arabickit/ إلى داخل app/src/main/java/ في مشروعك.
app/src/main/java/
├── com/yourapp/
│ └── arabickit/ ← انسخه هنا
│ ├── theme/
│ ├── components/
│ └── utils/
٢
غلّف تطبيقك بـ ArabicKitTheme
في MainActivity.kt أو أي Composable جذري، استخدم الثيم:
// MainActivity.kt
setContent {
ArabicKitTheme(
isArabic = true, // RTL تلقائي
numeralStyle = NumeralStyle.Arabic,
) {
MyApp()
}
}
٣
استخدم المكونات مباشرة
كل المكونات تبدأ بـ Ak - اكتبها واضغط Tab لإكمالها تلقائياً في Android Studio.
AkButton(
label = "تسجيل الدخول",
onClick = { /* ... */ },
variant = ButtonVariant.Filled,
)
AkTextField(
value = name,
onValueChange = { name = it },
label = "الاسم الكامل",
)
AkPrice(amount = 249.99, currency = "ر.س")
// الناتج: ر.س ٢٤٩.٩٩ (أرقام عربية)
٤
أضف الخطوط إلى مشروعك
ضع ملفات الخط في app/src/main/res/font/ - الملفات مرفقة في المجلد المشتراة.
ibm_plex_arabic_regular.ttf
ibm_plex_arabic_medium.ttf
ibm_plex_arabic_bold.ttf
noto_naskh_arabic_regular.ttf
ما يشمله المنتج
٤٢ مكوّن
Buttons · Inputs · Cards · Nav · Dialogs · Lists · Typography
RTL-First
كل مكوّن يعكس اتجاهه تلقائياً - لا حاجة لـ Modifier.rtl
أرقام عربية
ArabicUtils يحوّل الأرقام والعملات والتاريخ الهجري
الأزرار - AkButton
تفاعل مع كل زر لاختبار حالاته
الأنواع الأساسية - variant
AkButton(label="تأكيد", onClick={}, variant=ButtonVariant.Filled)
AkButton(label="إلغاء", onClick={}, variant=ButtonVariant.Ghost)
AkButton(label="حذف", onClick={}, variant=ButtonVariant.Destructive)
الأحجام - size
مع أيقونة + حالة التحميل - اضغط "حفظ" لترى التسلسل
عرض كامل - fullWidth
AkButton(
label = "تسجيل الدخول",
onClick = { viewModel.login() },
fullWidth = true,
loading = uiState.isLoading, // مؤشر تحميل تلقائي
)
أزرار الأيقونات - AkIconButton
حقول الإدخال - AkTextField
كل الحقول RTL - اكتب فيها لاختبار الحالات
الحقول الأساسية مع التحقق الفوري
حقل البحث - AkSearchField
حقل نصي متعدد الأسطر - minLines/maxLines
٠ / ٢٠٠ حرف
AkTextField(
value = note, onValueChange = { note = it },
label = "ملاحظات الطلب",
singleLine = false,
minLines = 3, maxLines = 6,
)
البطاقات - AkCard
مرّر فوق البطاقات لرؤية التأثيرات
بطاقات KPI - AkStatCard
إجمالي المبيعات
١٢٬٤٥٠
▲ ٨.٣٪ هذا الشهر
الطلبات الجديدة
٣٤٨
▲ ١٢٪
نسبة الرضا
٩٤٪
▲ ٢٪
الأنواع الثلاثة - Elevated · Outlined · Filled
Elevated
بطاقة مرفوعة
تظهر ظلاً عند التمرير
Outlined
بطاقة محددة
حدود بدون ظل
Filled
بطاقة ممتلئة
خلفية سطحية
بطاقة محتوى - AkContentCard
👨💻
أحمد الغامدي
مطور Android · الرياض
٥ سنوات خبرة في Jetpack Compose وتطوير تطبيقات RTL
طلب #٢٠٢٤-٠٠١٢
٣ منتجات · بانتظار الموافقة
المجموع
ر.س ٢٤٩.٩٩
الطباعة - ArabicKitTypography
IBM Plex Arabic للعناوين · Noto Naskh للنص الطويل
مقياس النصوص الكامل
مرحباً
عنوان رئيسي
عنوان القسم
عنوان البطاقة
عنوان العنصر
نص عادي للقراءة - خط Noto Naskh للمحتوى الطويل والمقالات
وصف مختصر أو محتوى ثانوي للعنصر
ملصق · تسمية · وصف حقل
AkPrice - عرض الأسعار بأرقام عربية
SAR
ر.س ٢٤٩.٩٩
AED
د.إ ٣٤٥.٠٠
مخفّض
ر.س ١٤٩.٠٠ ر.س ٢٤٩
AkPrice(amount=249.99, currency="ر.س") // → ر.س ٢٤٩.٩٩
AkNumber(value=12450) // → ١٢٤٥٠
القوائم والشرائح
اضغط على عناصر القائمة · بدّل الشرائح
AkListItem - قابل للنقر مع تأثير hover
👨💻
أحمد الغامدي
مطور Android · ٥ سنوات خبرة
الرياض
👩🎨
نورة العتيبي
مصممة UI/UX · Material Design
جدة
📊
محمد الزهراني
محلل بيانات · Python/Kotlin
الدمام
🚀
سارة الشمري
مدير منتج · B2B SaaS
أبوظبي
Chips - اختيار فردي ومتعدد
اختيار فردي - Filter
اختيار متعدد - Multi-select
الأرقام العربية - ArabicUtils
تحويل تلقائي بين الأرقام الغربية والعربية-الهندية
أمثلة الأرقام والعملات والتاريخ
١٢٬٤٥٠
أرقام مع فاصل آلاف
12,450
Western (LTR mode)
ر.س ٢٤٩.٩٩
تنسيق العملة
١٥ رمضان ١٤٤٦ هـ
التاريخ الهجري
محوّل فوري - جرّب الكتابة
-
// ArabicUtils.kt
"١٢٣٤٥".toWesternNumerals() // → "12345"
"12345".toArabicNumerals() // → "١٢٣٤٥"
12345.toArabicString() // → "١٢٬٣٤٥"
249.99.formatArabicCurrency() // → "ر.س ٢٤٩.٩٩"
gregorianToHijri(2025,3,15) // → HijriDate(15,9,1446)
التنبيهات والحوارات
اضغط الأزرار لرؤية Dialog وBottomSheet حقيقيين
AkAlert - 4 مستويات
تم حفظ التغييرات بنجاح - ستظهر في التطبيق خلال لحظات.
سيتوقف دعم هذه الواجهة في v2.0. يُرجى الترحيل قبل يونيو.
فشل الاتصال بالخادم. تحقق من اتصال الإنترنت وأعد المحاولة.
تحديث جديد متاح - ArabicKit v1.1.0 يضيف DatePicker هجري.
AkAlertDialog - اضغط لفتح النافذة
AkBottomSheet - اضغط لفتح الشريحة