Azmi Radi Azmi
20/07/2025
خد بالك من ال platform type
كلنا عارفين إن كوتلن فيها نوعين أساسيين: ☑️ Nullable
☑️ Non-nullable
لكن في نوع ثالث ناس كتير مش واخدة بالها منه، اسمه: ➡️ Platform Type
وشكله بيكون كده: Type!
🤔 إيه هو الـ Platform Type؟
لو بتشتغل بـ Kotlin وبتستخدم كود قديم مكتوب بـ Java
أو مكتبة جافا في كود كوتلن، فهتلاقي المتغيرات اللي جايه من جافا مش متحدد هل هي nullable ولا لأ.
كوتلن بتحب تبقى واضحة وأمينة بالنسبة للـ null،
لكن جافا مش بتديها أي معلومة،
فكوتلن بتقولك:
"أنا مش هفترض حاجة… إنت اللي هتقرر!" 😅
📌 مثال عملي:
val name = JavaApi.getName()
تفتكر name هنا نوعه إيه؟
String ولا String? ؟
في الحقيقة هو لا ده ولا ده…
ده بيكون:
➡️ String! ← ده اسمه Platform Type
يعني ممكن تتعامل معاه كأنه String أو String?،
بس لو خمنت غلط؟
💥 هيجيلك NullPointerException وانت مش واخد بالك!
💡 إزاي تتعامل مع الـ Platform Type؟
✅ لو انت كاتب كود جافا: استخدم
أو علشان تساعد كوتلن تفهم.
✅ في كوتلن:
تعامل مع المتغيرات دي بحذر،
واستخدم ?., ?:, أو !! حسب الحالة.
12/10/2024
يا هلا بال Kotlin Developers تعالى يا صديقي أقولك على تريكة جامدة هتفرق معاك لو بتستخدم Kotlin Coroutines
تخيل ياصديقي عندك Coroutine شغال، وفيه أكتر من طريقة تتحكم بيها في توقيت تشغيله، وكل طريقة ليها فايدة خاصة جدًا. وده اللي هنتكلم عليها الـ CoroutineStart
يعني إيه بقى؟ وازاي اعمل كده؟ تعالوا نشوف سوا
ممكن نحدد الـ CoroutineStart لنوع من دول
1- DEFAULT:
الكوروتين هيبدأ شغله فورًا أول ما تستدعيه! مفيش تأخير، مفيش انتظار. ده الوضع العادي اللي كلنا عارفينه.
2- LAZY:
الكوروتين مش هيشتغل غير لما تطلب منه بنفسك. يعني لو مش مستعجل وعايز تتحكم إمتى الكوروتين يتشغل، دي الطريقة المناسبة. ليك زي الـ lazy في Kotlin، مش بيشتغل غير لما تنادي عليه او ممكن تقوله start() زي ما هتشوف في المثال اللي في الصور، أو ممكن تشغل async وتخليه ينتظر لحد ما تقوله await()!
3- ATOMIC:
تخيل إن الكوروتين بدأ شغله ومفيش حاجة تقدر توقّفه قبل ما يوصل لأول نقطة إيقاف (أول suspension point). يعني مضمون إنه هينفذ أول جزء منه مهما حصل. لو محتاج تأكيد إن الكوروتين يبدأ ويكمل لحد نقطة معينة، دي التريكة.
4- UNDISPATCHED:
دي تريكة لو عايز الكوروتين يبدأ على نفس الثريد اللي انت شغال عليه، ولما يوصل لأول نقطة إيقاف، يغير الثريد لو احتاج. دي طريقة ذكية لتقليل استهلاك الموارد وتوزيع الشغل بشكل أنيق.
طيب ليه الموضوع ده مهم؟
لأنك دلوقتي تقدر تتحكم في إمتى الكوروتين يشتغل وإزاي يتصرف في ظروف مختلفة. سواء كنت عايز تؤجل شغله شوية، أو تتأكد إنه يشتغل لحد نقطة معينة من غير مشاكل، أو تقلل استهلاك الموارد. CoroutineStart هي مفتاح التحكم ده!
متنساش تبص علي الصور اللي في البوست هتساعدك اكتر في انك تفهم الـ CoroutineStart
دمتم متفوقين
Click here to claim your Sponsored Listing.
Category
Contact the school
Telephone
Address
Cairo