Extensions في Jetpack Compose الميزة التي ستغير طريقة تفكيرك في البرمجة

 

كيفية جعل تصميم التطبيقات أسهل مع Extensions في Kotlin Compose
أفضل طرق استخدام Extensions في Kotlin لزيادة الإنتاجية

كيفية جعل تصميم التطبيقات أسهل مع Extensions في Kotlin Compose

يعد استخدام الامتدادات في Kotlin أحد أقوى الميزات التي تجعل اللغة مرنة وقابلة للتخصيص. فهو يسمح بإضافة وظائف جديدة للأنواع الموجودة دون الحاجة إلى تغيير الشيفرة المصدرية أو استخدام التوريث. تعد هذه الميزة مفيدة جدًا عند العمل مع Jetpack Compose، مما يجعل من السهل تحسين مظهر الواجهة الرسومية وإضافة المؤثرات البصرية.

تقدم هذه المقالة شرحًا شاملًا لمفهوم الامتداد في Kotlin Compose، مع أمثلة عملية لتحسين تصميم تطبيقك


فوائد استخدام Extensions

تحسين قابلية قراءة الكود: بدلاً من كتابة دوال مساعدة في كل مكان وهذا الشيئ يقلل من سرعه انتاجيه التطبيقات، يمكنك بشكل بساطه إضافة الوظائف مباشرة إلى الفئات ذات الصلة، مما يجعل الكود أكثر تنظيماً وسهولة في الفهم.

تقليل التكرار: يمكنك إعادة استخدام الدوال المضافة في مشروعك عبر Extensions في أي مكان في المشروع الذي تعمل عليه دون الحاجة إلى إعادة كتابتها.

التوافق مع الفئات الخارجية: يمكنك إضافة وظائف إلى فئات من مكتبات خارجية دون الحاجة إلى تعديل الكود الاصلي الخاص بها.

زيادة الإنتاجية: توفر Extensions طريقة سهله وسريعة لإضافة وظائف جديدة لمشروعك، مما يقلل من الوقت المطلوب لتطوير تطبيقات الاندرويد.

شرح Extensions في Kotlin؟

الامتدادات هي الدوال التي يمكن إضافتها إلى أنواع البيانات الموجودة مثل String أو Int أو Modifier دون تغيير الفئة الأصلية. تساعد هذه الدوال على إضافة وظائف جديدة أو تغيير سلوك النوع الأساسي بطريقة مبسطة.

fun String.firstChar(): Char {
    return this[0]
}

الكود السابق عند استخدامه سوف يعيد اول حرف من النص فقط .

@Stable
fun Modifier.myColor(color: Color = Color.Blue): Modifier {
    return then(Modifier.background(color))
}

الكود السابق سوف يقوم باضافة لون ازرق في حالة عدم اختيار اي لون من القائمه

شرح الكود
@Stable: هذه التعليمة تشير إلى أن الدالة مستقرة، مما يعني أن القيم لا تتغير خلال إعادة بناء Compose.
fun Modifier.myColor: هنا نضيف دالة Extension لنوع Modifier لتخصيص لون الخلفية.
color: Color = Color.Blue: قمنا بتعيين اللون الأزرق كلون افتراضي إذا لم يتم تحديد لون.
then(Modifier.background(color)): هذا الجزء يُعيد Modifier يحتوي على خلفية باللون المحدد.

مثال حول تخصيص مساحه داخليه للنص


هنا، تمت إضافة امتداد آخر إلى نوع المعدل لتخصيص مساحه داخليه عناصر النص.
@Stable
fun Modifier.textWithPadding(padding: Dp = 16.dp): Modifier {
    return this.then(
        Modifier.padding(padding)
    )
}


الاستخدام

Text(
    text = "Hello Compose",
    modifier = Modifier.textWithPadding(24.dp)
)

مثال حول عمل ظل للنص عند استخدامه

@Stable
fun Modifier.addShadow(elevation: Dp = 8.dp, color: Color = Color.Gray): Modifier {
    return this.then(
        Modifier.shadow(elevation, shape = RectangleShape, clip = false)
            .background(color)
    )
}

استخدام الظل المخصص في التصميم

Box(
    modifier = Modifier
        .size(100.dp)
        .addShadow()
)

تاثير دوران للصوره

@Stable
fun Modifier.rotateWithAngle(angle: Float = 45f): Modifier {
    return this.then(
        Modifier.rotate(angle)
    )
}

استخدام تاثير الدوران للصوره


Image(
    painter = painterResource(id = R.drawable.my_image),
    contentDescription = null,
    modifier = Modifier
        .size(100.dp)
        .rotateWithAngle(90f)
)

فوائد الإضافات في Jetpack Compose ؟

إمكانية التخصيص: تتيح لك إضافات المُعدِّل تخصيص شكل ومظهر تطبيقك بشكل ديناميكي.
إعادة استخدام التعليمات البرمجية: يمكن استخدام الدوال المخصصة في مواقع متعددة داخل المشروع دون تكرار التعليمات البرمجية.
تحسين الأداء: يمكن استخدام توجيهات مثل Stable لتحسين أداء التطبيق من خلال تقليل عدد مرات إعادة بناء الواجهة.

تُعد إضافة ملحقات Kotlin Modifier Compose طريقة فعالة لتخصيص وتصميم واجهات المستخدم بطريقة سهلة وقابلة للتوسيع. استخدم الأمثلة المعروضة هنا لفهم كيفية إنشاء ملحقاتك الخاصة للتطبيقات المستقبلية التي تطورها في Compose.

Extensions في Kotlin هي أداة قوية تتيح لك تحسين الكود وزيادة الإنتاجية بشكل كبير. من خلال إضافة وظائف جديدة إلى الفئات الموجودة، يمكنك جعل الكود أكثر تنظيماً وقابلية للقراءة. ومع ذلك، يجب استخدامها بحكمة وتجنب الإفراط في الاستخدام للحفاظ على جودة الكود.

أفضل الممارسات لاستخدام Extensions

تجنب الإفراط في الاستخدام:
على الرغم من أن Extensions مفيدة، إلا أن الإفراط في استخدامها قد يجعل الكود صعب التتبع. استخدمها فقط عندما تكون هناك فائدة واضحة.

اختر أسماء واضحة:
تأكد من أن أسماء الدوال أو الخصائص المضافة تعبر بوضوح عن وظيفتها.

استخدم Packages لتجميع Extensions:
يمكنك تنظيم Extensions في ملفات منفصلة وتجميعها في حزم (Packages) لتسهيل إدارتها.

تجنب التضارب:
إذا أضفت Extension يحمل نفس اسم دالة موجودة بالفعل في الفئة، سيتم استخدام الدالة الأصلية. لذلك، تأكد من عدم وجود تضارب في الأسماء.
تعليقات