الصور والخطوط والسلاسل المشتركة
استخدام compose-resources عبر جميع المنصات
الصور والخطوط والسلاسل المشتركة درس مجاني في Kotlin Multiplatform Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Multiplatform Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Assets Should Be Shared Too
Your logo, your fonts, your labels: why ship them twice? compose-resources lets every platform load the same assets. 🖼️
One Resources Folder
You drop assets into a shared composeResources directory. Images, fonts and strings all live in one place for every target.
Add the Resources Setup
Enabling resources generates a typed Res object. You reference assets through it instead of raw file paths.
commonMain.dependencies {
implementation(compose.components.resources)
}Folders by Asset Type
Resources are grouped into folders like drawable, font and values. The names tell the toolkit how to treat each file.
Show a Shared Image
Load a drawable with painterResource and the generated Res handle. The same picture renders on both apps.
Image(
painter = painterResource(Res.drawable.logo),
contentDescription = "Logo"
)Bundle a Custom Font
Place a font file in the font folder, then load it with Font and the Res handle to build a FontFamily.
val brand = FontFamily(Font(Res.font.inter_bold))Strings in One File
Define your text in a shared strings.xml. Each label gets a key, and the Res object exposes it to your UI.
<string name="welcome">Welcome back!</string>Read a Shared String
You fetch text with stringResource and the generated key. No more hardcoded labels scattered across screens.
Text(stringResource(Res.string.welcome))Type Safety for Free
Because Res is generated, a typo in an asset name fails to compile. You catch missing resources before users ever do. ✅
Strings Can Take Arguments
Add placeholders in a string and pass values at call time. The same stringResource call fills them in for you.
Text(stringResource(Res.string.greeting, userName))Assets Travel With Shared Code
Because resources live in the shared module, any app that uses your code gets the assets automatically. One source of truth. 🙂
Quick Check
Which function loads a shared drawable into a Compose Image?
Recap: Shared Look and Feel
You stored images, fonts and strings once and loaded them with the generated Res object. Every platform shares the same brand. 🎨
تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «الصور والخطوط والسلاسل المشتركة» مجاني؟
نعم — نص درس «الصور والخطوط والسلاسل المشتركة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Multiplatform Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
ماذا ستتعلم في «الصور والخطوط والسلاسل المشتركة»؟
استخدام compose-resources عبر جميع المنصات تتمرن على Kotlin Multiplatform Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Multiplatform Academy؟
لا تُشترط خبرة سابقة. Kotlin Multiplatform Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «الصور والخطوط والسلاسل المشتركة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Multiplatform Academy هذا؟
نعم. كل درس في Kotlin Multiplatform Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التنقل بين الشاشات المشتركة
- تمرير المعاملات والروابط العميقة
- الصور والخطوط والسلاسل المشتركة
- توطين نصوص الواجهة المشتركة