خليك خفيف مع Koin💡
لو كنت شايف إن مكتبات DI زي Dagger أو Hilt معقدة شوية، خلي بالك مع Koin!
هي مكتبة خفيفة وسهلة الاستخدام تتيح لك إدارة الـ Dependencies في تطبيقات الأندرويد بأسلوب بسيط ومرن، وبدون الحاجة لتعقيد كبير أو إعدادات معقدة.
ا| Koin باختصار
Koin هي مكتبة Dependency Injection مبنية بالكامل باستخدام Kotlin، وتتميز بسهولة استخدامها ومرونتها في تنظيم Dependencies بدون الحاجة لتعقيد إضافي أو كتابة أكواد كثيرة.أبرز ميزات Koin
- خفيفة وسريعة الإعداد: ما تحتاج Annotations أو إعدادات مسبقة معقدة؛ كلها كود بسيط ومباشر.
- تدعم Kotlin بالكامل: مكتوبة بلغة Kotlin، مما يعني تكامل طبيعي وسلاسة في الاستخدام.
- مثالية للمشاريع الصغيرة والمتوسطة: بإمكانك إعدادها في وقت قياسي، وتمنحك تحكمًا عاليًا في إدارة الكائنات اللي تحتاجها.
كيف نستخدم Koin؟
تعريف Modules:
في Koin، نعتمد على مفهوم الـ Modules لتعريف الـ Dependencies اللي بنحتاجها. كل Module بيحتوي على تعريفات للكائنات اللي بدنا نستخدمها عبر التطبيق.
تهيئة Koin في التطبيق: بمجرد تعريفك للـ Modules، بنبدأ Koin في كلاس التطبيق.
حقن الـ Dependencies: في كود التطبيق، يمكنك استخدام Koin بسهولة لحقن الـ Dependencies، سواءً في Activities، Fragments، أو ViewModels.
أنواع Scope في Koin
- | Singleton: نفس الكائن يبقى موجودًا طوال مدة التطبيق.
- | Factory: يُنشئ كائن جديد في كل مرة يُطلب فيه.
- | Scopes: يمكنك إنشاء Scopes عند الحاجة، وهي مفيدة مثلاً لإدارة كائنات تتعلق بعمر معين مثل Session أو شاشة معينة.
| Koin ومجتمع Kotlin
بفضل اعتماد Koin على Kotlin بالكامل، بتوفر تجربة استخدام مريحة وسلسة مع قواعد الـ DSL (Domain Specific Language) الخاصة بلغة Kotlin. هذا يعني إنك بتكتب كود كأنه بيمثّل بنية طبيعية لإدارة Dependencies، وبيخليك تركز أكثر على تطوير منطق التطبيق بدون تعقيد إضافي.