مكتبات Kotlin التي ستنقذ مشروعك في 2024

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا Kotlin ليس مجرد "لغة أخرى لـ JVM"؟



عندما أصدرت JetBrains لغة Kotlin في عام 2016، لم يتوقع الكثيرون أنه بعد بضع سنوات ستصبح هذه اللغة المعيار لتطوير Android وأحد المتنافسين الرئيسيين على عرش عالم backend. اليوم، Kotlin ليست مجرد سكر نحوي فوق Java. إنها نظام بيئي قوي، حيث تحل كل مكتبة مشكلة محددة بأناقة وبأقل قدر من الكود المتكرر.



في هذه المقالة، سنستعرض أشهر مكتبات Kotlin التي تبسط حياة المطور حقًا. لن نذكر كل شيء - فقط ما يستحق التعلم الآن. هيا بنا!



1. Ktor — عميل وخادم HTTP الجديد لك



إذا كنت تبحث عن عميل HTTP خفيف، غير متزامن وقابل للتكوين بالكامل (أو حتى خادم) - فإن Ktor سيكون أفضل صديق لك. على عكس Spring Boot الثقيل، لا يفرض Ktor أي بنية معمارية. أنت من يقرر أي الوحدات ستضيفها.



مثال: عميل HTTP لجلب البيانات



import io.ktor.client.*import io.ktor.client.engine.cio.*import io.ktor.client.request.*import io.ktor.client.statement.*

suspend fun main() { val client = HttpClient(CIO) val response: HttpResponse = client.get("https://api.github.com/repos/jetbrains/kotlin") println("الحالة: ${response.status}") println("المحتوى: ${response.bodyAsText()}") client.close()}


يدعم Ktor إضافات للتسلسل، الضغط، التسجيل والمصادقة. إنها واحدة من أكثر مكتبات Kotlin شيوعًا للعمل مع الشبكة.



2. Kotlinx.serialization — تسلسل بدون ألم



انسَ Gson و Jackson. يعمل Kotlinx.serialization على مستوى المترجم، وليس الانعكاس. وهذا يعطي زيادة في الأداء وأمانًا كاملاً للأنواع.



مثال: تسلسل class بيانات إلى JSON



import kotlinx.serialization.*import kotlinx.serialization.json.*

@Serializabledata class User(val name: String, val age: Int)

fun main() { val user = User("آنا", 28) val jsonString = Json.encodeToString(user) println(jsonString) // {"name":"آنا","age":28}

val decoded = Json.decodeFromString<User>(jsonString) println(decoded) // User(name=آنا, age=28)}


تدعم المكتبة تعدد الأشكال، المسلسلات المخصصة والعمل مع JSON، XML، CBOR وحتى YAML. إنها أداة لا غنى عنها لأي مشروع Kotlin.



3. Koin — حقن التبعيات بدون سحر



Dagger؟ Hilt؟ ثقيلة، الكثير من الكود. يقدم Koin DSL بسيط لـ DI، مكتوب بلغة Kotlin النقية. لا توليد كود، لا تعليقات توضيحية - فقط دوال.



مثال: وحدة بسيطة وحقن



import org.koin.core.context.startKoinimport org.koin.dsl.moduleimport org.koin.core.component.KoinComponentimport org.koin.core.component.inject

class Repositoryclass Service(private val repo: Repository) { fun doWork() = "أعمل مع ${repo}"}

val myModule = module { single { Repository() } factory { Service(get()) }}

fun main() { startKoin { modules(myModule) } val service: Service = object : KoinComponent {}.inject() println(service.doWork())}


Koin مثالي للمشاريع المتوسطة والصغيرة حيث لا تريد دفع ثمن التعقيد.



4. Exposed — ORM لمن لا يحب ORM



معظم أنظمة ORM تخفي SQL، لكن Exposed يعمل بشكل مختلف: يبقى قريبًا من SQL، لكنه يوفر DSL مريحًا بلغة Kotlin. تكتب بلغة Kotlin، وتحصل على SQL نقي مع الإكمال التلقائي.



مثال: إنشاء جدول واستعلام



import org.jetbrains.exposed.sql.*import org.jetbrains.exposed.sql.transactions.transaction

object Users : Table() { val id = integer("id").autoIncrement() val name = varchar("name", 50)\

المدونات

توصيات الكتب