Kotlin Academy · درس

مشاركة منطق الأعمال

أعيدوا الاستخدام عبر iOS وAndroid

الدرس 3 من 413 خطوة

مشاركة منطق الأعمال درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

لماذا نشارك منطق الأعمال؟

تختلف واجهة المستخدم من منصة إلى أخرى، لكن قواعد مثل التحقق والتسعير وتدفق البيانات متطابقة. تؤدي مشاركتها في commonMain إلى إزالة التكرار والأخطاء.

نماذج البيانات المشتركة

عرّفوا نماذج المجال مرة واحدة في الشيفرة المشتركة. وباستخدام kotlinx.serialization، يمكن أيضًا إجراء تسلسل لها بالطريقة نفسها على كلتا المنصتين.

import kotlinx.serialization.Serializable

@Serializable
data class Product(val id: Int, val name: String, val price: Double)

حالات الاستخدام المشتركة

توجد قواعد الأعمال البحتة في الشيفرة المشتركة ولا تحتاج إلى واجهات برمجة تطبيقات خاصة بالمنصة.

class CartTotal {
    fun total(items: List<Product>): Double =
        items.sumOf { it.price }
}

الشبكات المشتركة باستخدام Ktor

عميل Ktor متعدد المنصات. تكتبون طبقة API مرة واحدة، وتوفر كل منصة محرك HTTP.

import io.ktor.client.HttpClient

class Api(private val client: HttpClient) {
    // suspend fun products(): List<Product> = client.get(...)
}

Coroutines المشتركة

تعمل Coroutines في الشيفرة المشتركة، ولذلك يمكن أيضًا مشاركة المستودعات غير المتزامنة. وتُعرض الدوال المعلّقة لكلتا المنصتين.

class Repository(private val api: Api) {
    suspend fun load(): List<Product> = api.products()
}

نمط Repository

من الأنماط الشائعة أن ينسّق Repository بين الشبكة وذاكرة التخزين المؤقت، مع توفير أساليب واضحة. ويستدعي كلا التطبيقين المستودع نفسه.

ViewModels المشتركة

باستخدام مكتبات مثل Decompose أو ViewModel مشتركة، يمكن أيضًا مشاركة منطق العرض والحالة، مع إبقاء العرض وحده أصليًا.

تعريض الحالة باعتبارها Flow

عرّضوا الحالة باستخدام StateFlow لكي يجمعها Android مباشرةً ويراقبها iOS عبر غلاف.

import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow

class ProductState {
    private val _items = MutableStateFlow<List<Product>>(emptyList())
    val items: StateFlow<List<Product>> = _items
}

الدوال المعلّقة وiOS

تُعرَض دوال Kotlin المعلّقة إلى Swift باعتبارها أساليب ذات معالج إكمال أو أساليب غير متزامنة. ويستدعيها iOS باستخدام async/await في Swift.

// Swift
// let products = try await repository.load()

أبقوا واجهة المستخدم خارج الشيفرة المشتركة

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

مثال قابل للتشغيل على المنطق

حالة الاستخدام المشتركة هي Kotlin عادي. وهنا تعمل بصورة مستقلة لحساب إجمالي سلة.

data class Product(val name: String, val price: Double)

fun total(items: List<Product>): Double = items.sumOf { it.price }

fun main() {
    val cart = listOf(Product("Pen", 2.5), Product("Book", 12.0))
    println("Total: " + total(cart))
}

تحقق سريع

في تطبيق KMM منظم جيدًا، أيّ مما يلي هو المرشح الأفضل للمشاركة، وأيّه ينبغي أن يبقى أصليًا؟

مراجعة

يمكنكم مشاركة طبقة المنطق:

  • النماذج وحالات الاستخدام والمستودعات والشبكات باستخدام Ktor وCoroutines
  • تعريض الحالة عبر StateFlow؛ ويستخدم iOS ‏async/await للدوال المعلّقة
  • إبقاء واجهة المستخدم والتنقل أصليين

التالي: الوصول إلى واجهات برمجة تطبيقات المنصة.

البدء مجانًا

تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
51
الدروس
203

الأسئلة الشائعة

هل درس «مشاركة منطق الأعمال» مجاني؟

نعم — نص درس «مشاركة منطق الأعمال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.

ماذا ستتعلم في «مشاركة منطق الأعمال»؟

أعيدوا الاستخدام عبر iOS وAndroid تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟

لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «مشاركة منطق الأعمال»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟

نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بنية مشروع KMM
  2. expect وactual
  3. مشاركة منطق الأعمال
  4. واجهات API للمنصة
← العودة إلى Kotlin Academy