من الحاجات اللي بستخدمها أساسي في كل مشروع مع الـ
Bloc
هي BuildScreenWhen
وده طبعا بيتم من خلال ال
RequestState
من خلالها بتحكم في اللي يظهر على الشاشة حسب حالة البيانات بكل سهولة، سواء:
✅ loading– لما البيانات لسه بتيجي
✅ loaded – البيانات وصلت وزي الفل
✅error – حصلت مشكلة
✅empty – مفيش بيانات أصلًا
✅ noNetwork – الإنترنت فاصل
Bloc
هي BuildScreenWhen
وده طبعا بيتم من خلال ال
RequestState
من خلالها بتحكم في اللي يظهر على الشاشة حسب حالة البيانات بكل سهولة، سواء:
✅ loading– لما البيانات لسه بتيجي
✅ loaded – البيانات وصلت وزي الفل
✅error – حصلت مشكلة
✅empty – مفيش بيانات أصلًا
✅ noNetwork – الإنترنت فاصل
السلام عليكم ورحمة الله وبركاته،
إن شاء الله هبدأ في أول سلسلة على القناة وهتكون عن Flavors في Flutter، واللي هتساعدك تتحكم في إصدارات التطبيق بسهولة.
في السلسلة دي، هشرح لك:
✅ تخصيص الأيقونة لكل بيئة (Development | Staging | Production)
✅ إعداد شاشة Splash Screen مخصصة لكل نسخة
✅ ربط كل إصدار بـ Firebase الخاصة بيه
نزلت اول فيديو مقدمه بسيطه عن الموضوع :
https://youtu.be/CpcBDUzRhrY?si=zTol6qiVpykfP9bw
إن شاء الله هبدأ في أول سلسلة على القناة وهتكون عن Flavors في Flutter، واللي هتساعدك تتحكم في إصدارات التطبيق بسهولة.
في السلسلة دي، هشرح لك:
✅ تخصيص الأيقونة لكل بيئة (Development | Staging | Production)
✅ إعداد شاشة Splash Screen مخصصة لكل نسخة
✅ ربط كل إصدار بـ Firebase الخاصة بيه
نزلت اول فيديو مقدمه بسيطه عن الموضوع :
https://youtu.be/CpcBDUzRhrY?si=zTol6qiVpykfP9bw
ممكن برضو تبعت الفيديو ده للمصمم اللي بيعمل الايقونات ليكم لو مش عايزين تعملوهم بنفسكم
السلام عليكم ورحمة الله وبركاته
تاني فيديو من سلسلة Flutter Flavors
في الفيديو ده، هنتعلم إزاي نصمم الأيقونة بنفسنا بحيث تكون Adaptive Icon وتشتغل بشكل مثالي على Android و iOS، وكمان هنحل مشكلة Clipped by OS اللي بتواجه ناس كتير أثناء تصميم الأيقونات.
إيه اللي هنتعلمه في الفيديو؟
✅ إزاي تعمل (Adaptive Icon)؟
✅ إيه الفرق بين Foreground و Background في الأيقونات؟
✅ إزاي تضمن إن الأيقونة متبقاش مقصوصة أو مشوهة على الأجهزة المختلفة؟
https://youtu.be/QI-N3P1RFqk
السلام عليكم ورحمة الله وبركاته
تاني فيديو من سلسلة Flutter Flavors
في الفيديو ده، هنتعلم إزاي نصمم الأيقونة بنفسنا بحيث تكون Adaptive Icon وتشتغل بشكل مثالي على Android و iOS، وكمان هنحل مشكلة Clipped by OS اللي بتواجه ناس كتير أثناء تصميم الأيقونات.
إيه اللي هنتعلمه في الفيديو؟
✅ إزاي تعمل (Adaptive Icon)؟
✅ إيه الفرق بين Foreground و Background في الأيقونات؟
✅ إزاي تضمن إن الأيقونة متبقاش مقصوصة أو مشوهة على الأجهزة المختلفة؟
https://youtu.be/QI-N3P1RFqk
السلام عليكم ورحمه الله وبركاته .
مع الجزء التالت من سلسلة تعلم الـ Flavors، هنتعلم إزاي نعمل
Splash Screen
مخصصة لكل Environment في مشروع Flutter.
في الفيديو ده، هتعرف:
إزاي تجهز Splash Screen لكل بيئة
(Prod, Dev, Stg)
لو متابعتش السلسله تقدر تشوف الفيديو الجديد من هنا
https://youtu.be/KZMQatgYW4Q
مع الجزء التالت من سلسلة تعلم الـ Flavors، هنتعلم إزاي نعمل
Splash Screen
مخصصة لكل Environment في مشروع Flutter.
في الفيديو ده، هتعرف:
إزاي تجهز Splash Screen لكل بيئة
(Prod, Dev, Stg)
لو متابعتش السلسله تقدر تشوف الفيديو الجديد من هنا
https://youtu.be/KZMQatgYW4Q
عايز تبعت تحديثات لتطبيقك من غير ما تعيد نشره على المتجر؟!
لو بتشتغل على Flutter، أكيد عارف إن أي تعديل في الكود معناه لازم تبني التطبيق من الأول وترفعه على المتجر وتستنى المراجعة، وده ممكن يكون متعب جدا
لكن مع Shorebird Code Push، تقدر تبعت تحديثات فورية للمستخدمين من غير ما تحتاج ترفع التطبيق من جديد
شوف الفيديو هنا وتعلم إزاي تستخدم Shorebird في تطبيقك
https://youtu.be/LX65WcrwtQc
لو بتشتغل على Flutter، أكيد عارف إن أي تعديل في الكود معناه لازم تبني التطبيق من الأول وترفعه على المتجر وتستنى المراجعة، وده ممكن يكون متعب جدا
لكن مع Shorebird Code Push، تقدر تبعت تحديثات فورية للمستخدمين من غير ما تحتاج ترفع التطبيق من جديد
شوف الفيديو هنا وتعلم إزاي تستخدم Shorebird في تطبيقك
https://youtu.be/LX65WcrwtQc
السلام عليكم ورحمة الله وبركاته.
تقبل الله منا ومنكم وكل عام وانتم بخير جميعا
عيد فطر مبارك 🌹
تقبل الله منا ومنكم وكل عام وانتم بخير جميعا
عيد فطر مبارك 🌹
السلام عليكم ورحمة الله وبركاته.
ده كورس للتعامل مع
Supabase
كوبون ل١٠٠٠ شخص مجاني.
https://www.udemy.com/course/e-commerce-app-admin-website-using-flutter-supabase/?couponCode=15B2EAFB0E79778205AE
ده كورس للتعامل مع
Supabase
كوبون ل١٠٠٠ شخص مجاني.
https://www.udemy.com/course/e-commerce-app-admin-website-using-flutter-supabase/?couponCode=15B2EAFB0E79778205AE
Udemy
E-commerce App & Admin Website Using Flutter & Supabase
E-commerce App Development with Flutter
يعني إيه
build()
بتتنده 60 أو 120 مرة في الثانية؟
كل شاشة موبايل ليها معدل تحديث
(Refresh Rate)
لو 60Hz فده معناه إن الشاشة بتعرض 60
فريم في الثانية، يعني معاك 16 ميلي ثانية علشان ترسم كل فريم.
لو 120Hz فمعاك 8 ميلي ثانية بس.
يعني Flutter بيحاول يرسم الواجهة (UI) في الوقت ده.
لو
build()
خدت وقت أكتر من كده، الفريم هيتأخر، وساعتها المستخدم هيحس إن التطبيق بيقطع أو بيهنج. وده اسمه frame drop.
عشان كده لازم تخلي
build()
خفيفة وسريعة.
طيب نعمل كده إزاي؟
- قسم الواجهة لـ custom widgets بدل ما تحط كل حاجة جوا widget واحدة.
- استخدم const على قد ما تقدر.
- افصل ال (logic) عن ال (UI) باستخدام State management زي Bloc أو Riverpod.
Flutter
بيساعدك لأنه بيبني بس اللي اتغير، مش كل التطبيق.
بس الأداء الكويس مسؤوليتك كمطور.
build()
بتتنده 60 أو 120 مرة في الثانية؟
كل شاشة موبايل ليها معدل تحديث
(Refresh Rate)
لو 60Hz فده معناه إن الشاشة بتعرض 60
فريم في الثانية، يعني معاك 16 ميلي ثانية علشان ترسم كل فريم.
لو 120Hz فمعاك 8 ميلي ثانية بس.
يعني Flutter بيحاول يرسم الواجهة (UI) في الوقت ده.
لو
build()
خدت وقت أكتر من كده، الفريم هيتأخر، وساعتها المستخدم هيحس إن التطبيق بيقطع أو بيهنج. وده اسمه frame drop.
عشان كده لازم تخلي
build()
خفيفة وسريعة.
طيب نعمل كده إزاي؟
- قسم الواجهة لـ custom widgets بدل ما تحط كل حاجة جوا widget واحدة.
- استخدم const على قد ما تقدر.
- افصل ال (logic) عن ال (UI) باستخدام State management زي Bloc أو Riverpod.
Flutter
بيساعدك لأنه بيبني بس اللي اتغير، مش كل التطبيق.
بس الأداء الكويس مسؤوليتك كمطور.
Which Flutter method is responsible for rendering the UI ?
Anonymous Quiz
30%
initState()
59%
build()
5%
dispose()
6%
didChangeDependencies()
السلام عليكم ورحمه الله وبركاته
مطلوب متطوع Back-end Developer
لو إنت متابع القناة، أكيد عارف إنّي كل فترة بفتح الباب لأي حد محتاج مينتور يساعده في المذاكرة أو تنفيذ مشروع، وبندخل سوا على جروب الديسكورد ونتابع التاسكات ونتعلم التصميم أو مواضيع معينة.
الحمد لله فى شباب منهم خلصوا ٤ مشايع .
يعنى الحمد لله، وصلنا لمرحلة كويسة جدًا، عملنا تصاميم حقيقية بالكود، والشباب بدأت تشتغل فعليًا بـ Clean Architecture، وشغلهم بقى محترم جدًا
فاضل خطوة أخيرة، وهي ربط الـ Front-end بالـ API.
❄️❄️❄️ حاليًا عندنا تصميم تطبيق جاهز، بس محتاجين حد يعمل الـ API ويوفرلنا endpoints نشتغل عليها.
لو إنت شغال Back-end بأي لغة
وعايز:
- تساعد ناس بتتعلم
- تطبق على مشروع حقيقي
- تضيف شغل لبورتفوليوك
يبقى الفرصة دي ليك
لو مهتم، ابعتلي على الخاص أو سيب كومنت وأنا هكلمك إن شاء الله.
مطلوب متطوع Back-end Developer
لو إنت متابع القناة، أكيد عارف إنّي كل فترة بفتح الباب لأي حد محتاج مينتور يساعده في المذاكرة أو تنفيذ مشروع، وبندخل سوا على جروب الديسكورد ونتابع التاسكات ونتعلم التصميم أو مواضيع معينة.
الحمد لله فى شباب منهم خلصوا ٤ مشايع .
يعنى الحمد لله، وصلنا لمرحلة كويسة جدًا، عملنا تصاميم حقيقية بالكود، والشباب بدأت تشتغل فعليًا بـ Clean Architecture، وشغلهم بقى محترم جدًا
فاضل خطوة أخيرة، وهي ربط الـ Front-end بالـ API.
❄️❄️❄️ حاليًا عندنا تصميم تطبيق جاهز، بس محتاجين حد يعمل الـ API ويوفرلنا endpoints نشتغل عليها.
لو إنت شغال Back-end بأي لغة
وعايز:
- تساعد ناس بتتعلم
- تطبق على مشروع حقيقي
- تضيف شغل لبورتفوليوك
يبقى الفرصة دي ليك
لو مهتم، ابعتلي على الخاص أو سيب كومنت وأنا هكلمك إن شاء الله.
السلام عليكم ورحمة الله وبركاته
تكملة لسلسلة Flavors في Flutter،
فيديو النهارده نظري شوية علشان نوضح المفاهيم ونعرف الفرق بينهم قبل ما نشتغل عملي
📺 في الفيديو هتعرف:
✅ يعني إيه Flavors في Flutter
✅ يعني إيه Environments
✅ الفرق الحقيقي بين Flavors و Environments
✅ تستخدم مين؟ وإمتى؟ وليه ده مهم في شغلك كمطور؟
متفوتش الفيديو ده لو عايز تفهم البنية الاحترافية لتطبيقات Flutter وتجهّز مشروعك صح من البداية 🚀
https://www.youtube.com/watch?v=t02BP1qhfS0
تكملة لسلسلة Flavors في Flutter،
فيديو النهارده نظري شوية علشان نوضح المفاهيم ونعرف الفرق بينهم قبل ما نشتغل عملي
📺 في الفيديو هتعرف:
✅ يعني إيه Flavors في Flutter
✅ يعني إيه Environments
✅ الفرق الحقيقي بين Flavors و Environments
✅ تستخدم مين؟ وإمتى؟ وليه ده مهم في شغلك كمطور؟
متفوتش الفيديو ده لو عايز تفهم البنية الاحترافية لتطبيقات Flutter وتجهّز مشروعك صح من البداية 🚀
https://www.youtube.com/watch?v=t02BP1qhfS0
YouTube
Flutter Flavors | Flavors VS Environments
Continuing our Flutter Flavors series,
Today’s video is more of a theoretical overview — to give you the background knowledge you need before we dive into hands-on implementation 👨💻
📺 In this video, you’ll learn:
✅ What are Flavors in Flutter?
✅ What are…
Today’s video is more of a theoretical overview — to give you the background knowledge you need before we dive into hands-on implementation 👨💻
📺 In this video, you’ll learn:
✅ What are Flavors in Flutter?
✅ What are…
السلام عليكم ورحمة الله وبركاته،
في فيديو النهارده، واللي هو الجزء الخامس من سلسلة Flavors بدأنا أول تطبيق عملي واستخدمنا فيه flutter_flavorizr علشان نسهل علينا إعداد الفلافورز في المشروع.
في الفيديو ده هتتعلم:
* إزاي تضيف مكتبة flutter_flavorizr وتظبطها
* تعمل Generate تلقائي لملفات الفلافورز
* تحل مشكلة حذف ملف main.dart بعد الـ generate
* تجهز مشروعك يشتغل على أكتر من بيئة (زي dev و prod)
لو بتدور على طريقة تنظّم بيها شغل الفلافورز في Flutter، السلسلة دى هتساعدك كتير.
لينك الفيديو
https://youtu.be/NQz5L5c_F3s
في فيديو النهارده، واللي هو الجزء الخامس من سلسلة Flavors بدأنا أول تطبيق عملي واستخدمنا فيه flutter_flavorizr علشان نسهل علينا إعداد الفلافورز في المشروع.
في الفيديو ده هتتعلم:
* إزاي تضيف مكتبة flutter_flavorizr وتظبطها
* تعمل Generate تلقائي لملفات الفلافورز
* تحل مشكلة حذف ملف main.dart بعد الـ generate
* تجهز مشروعك يشتغل على أكتر من بيئة (زي dev و prod)
لو بتدور على طريقة تنظّم بيها شغل الفلافورز في Flutter، السلسلة دى هتساعدك كتير.
لينك الفيديو
https://youtu.be/NQz5L5c_F3s
YouTube
Flutter Flavors | Flavorizr and adding Flavors
https://github.com/azabcodes/flavors_course
🎯Flutter Flavors | Using Flavorizr + Fixing main.dart Deletion Issue
In this video from the Flutter Flavors series, we walk through how to use the Flavorizr package to automatically generate flavor-specific files…
🎯Flutter Flavors | Using Flavorizr + Fixing main.dart Deletion Issue
In this video from the Flutter Flavors series, we walk through how to use the Flavorizr package to automatically generate flavor-specific files…
السلام عليكم ورحمه الله وبركاته
الجزء السادس من سلسلة
Flavors in flutter
في الفيديو ده، هنعمل إعداد Flavors على Android خطوة بخطوة، وهنخلي كل إصدار من التطبيق يظهر باسمه وأيقونته الخاصة
https://youtu.be/NHpFJ2nfSrM
الجزء السادس من سلسلة
Flavors in flutter
في الفيديو ده، هنعمل إعداد Flavors على Android خطوة بخطوة، وهنخلي كل إصدار من التطبيق يظهر باسمه وأيقونته الخاصة
https://youtu.be/NHpFJ2nfSrM
السلام عليكم ورحمة الله وبركاته
عملت باكدج بسيطة تسهلك وقتك في إضافة الإشعارات على Flutter.
لو زهقت تضيف إشعارات بنفسك وتلف على ملفات كتير، باكدج
high_q_notifications
هتسهل عليك المهمة وتخليك تضيف إشعارات بسرعة وبطريقة منظمة.
إيه اللي هتلاقيه في الباكدج دي؟
بتدعم إشعارات Firebase Messaging مع الإشعارات المحلية
تقدر تستخدمها في الخلفية وتتحكم في كل حاجة تخص الإشعارات
فيها CLI بيعمللك كل ملفات الإشعارات المطلوبة في مشروعك أوتوماتيك
بيضيفلك كل البرميشنز اللي محتاجها على Android و iOS
بيظبطلك ملف الـ Swift Delegate في iOS عشان يشتغل مع الإشعارات من غير مشاكل
بيعمل نسخة من ملف الـ main.dart جاهزة فيها إعدادات الباكدج عشان تبدأ بسهولة
https://pub.dev/packages/high_q_notifications
عملت باكدج بسيطة تسهلك وقتك في إضافة الإشعارات على Flutter.
لو زهقت تضيف إشعارات بنفسك وتلف على ملفات كتير، باكدج
high_q_notifications
هتسهل عليك المهمة وتخليك تضيف إشعارات بسرعة وبطريقة منظمة.
إيه اللي هتلاقيه في الباكدج دي؟
بتدعم إشعارات Firebase Messaging مع الإشعارات المحلية
تقدر تستخدمها في الخلفية وتتحكم في كل حاجة تخص الإشعارات
فيها CLI بيعمللك كل ملفات الإشعارات المطلوبة في مشروعك أوتوماتيك
بيضيفلك كل البرميشنز اللي محتاجها على Android و iOS
بيظبطلك ملف الـ Swift Delegate في iOS عشان يشتغل مع الإشعارات من غير مشاكل
بيعمل نسخة من ملف الـ main.dart جاهزة فيها إعدادات الباكدج عشان تبدأ بسهولة
https://pub.dev/packages/high_q_notifications
السلام عليكم ورحمة الله وبركاته
حابب أشارك معاكم التحديث الجديد اللي اشتغلت عليه في الباكدج :
✅ الباكدج دلوقتي بتدعم أحدث نسخة من Gradle، مع إضافة كل الـdependencies المطلوبة.
⚙️ عدلت ملفات الإعدادات على Android وiOS بكل الفيتشرز الممكنة.
🔘 ضفت action buttons في Android.
📣 ضفت notification categories في iOS.
📌 ضفت كل الـlogic الخاص بـtopics عشان يبقى أسهل وأسرع.
📝 وكمان أضفت pull request template لو حد حابب يساهم أو يطورها بطريقة منظمة.
https://pub.dev/packages/high_q_notifications
حابب أشارك معاكم التحديث الجديد اللي اشتغلت عليه في الباكدج :
✅ الباكدج دلوقتي بتدعم أحدث نسخة من Gradle، مع إضافة كل الـdependencies المطلوبة.
⚙️ عدلت ملفات الإعدادات على Android وiOS بكل الفيتشرز الممكنة.
🔘 ضفت action buttons في Android.
📣 ضفت notification categories في iOS.
📌 ضفت كل الـlogic الخاص بـtopics عشان يبقى أسهل وأسرع.
📝 وكمان أضفت pull request template لو حد حابب يساهم أو يطورها بطريقة منظمة.
https://pub.dev/packages/high_q_notifications
Dart packages
high_q_notifications | Flutter package
A Flutter package that handles push notifications efficiently using Firebase Messaging and local notifications. Supports background message handling, scheduling notifications, and offers utilities for [...]
يعني إيه Caching widgets implicitly؟
وهل Flutter فيها أي طريقة لعمل Cache للـWidget؟
ودى معلومة ع السريع:
أيوه طبعا Flutter بتعمل كاش تلقائي (implicitly) للويدجت اللي بتكون بنفس القيم والقيم دي معروفه وقت الكومبايل.
يعني لو كتبت
const SizedBox(height: 20)
وكررتها في كذا مكان في الكود، Flutter مش هتعمل object جديد كل مرة، لأ هى بتستخدم نفس النسخة اللي اتعملت أول مرة وده بيساعد جدًا في الأداء لأنه بيقلل عدد ال Widgets اللي بتتبني كل مرة.
إزاي نستفيد من كده؟
دايما لما تقدر استخدم const قبل ال Widget خصوصا لو مش هتتغير
زي كده
const Text("Welcome")
بدل ما تكتب
Text("Welcome")
لأن الفرق بينهم إن الأول هيتحفظ في الكاش، والتاني هيتبني كل مرة.
طب ولو عندي ويدجت بيتكرر كتير بس مش ثابت بالكامل، ساعتها ممكن تستخدم حلول زي:
ValueKey أو ObjectKey علشان Flutter تقدر تميز بين النسخ.
يعني مثلاً عندك ListView فيها عناصر كتير، وكل عنصر هو عبارة عن ويدجت فيها شوية معلومات زي اسم، صورة، رقم... بس القيم دي بتتغير حسب كل عنصر.
ListView(
children: [
UserCard(name: "Mahmoud"),
UserCard(name: "Usama"),
UserCard(name: "Ahmed"),
],
)
في الحالة دي، كل عنصر شكله زي التاني لكن بياناته مختلفة، وFlutter ممكن يتلخبط لما يعيد بناء الواجهة
هنا ييجي دور الـ Key
علشان Flutter يقدر يفرق بين كل ويدجت والتانية، لازم تدي لكل واحدة Key.
وفي الحالة دي، بنستخدم أنواع من ال Keys زي
ValueKey , ObjectKey
لما تدي كل ويدجت Key
Flutter هيعرف إن أه ده نفس العنصر اللي كان هنا قبل كده، فـمش هيبنيه من أول وجديد، ومش هيحصل لخبطة في الـstate
وهل Flutter فيها أي طريقة لعمل Cache للـWidget؟
ودى معلومة ع السريع:
أيوه طبعا Flutter بتعمل كاش تلقائي (implicitly) للويدجت اللي بتكون بنفس القيم والقيم دي معروفه وقت الكومبايل.
يعني لو كتبت
const SizedBox(height: 20)
وكررتها في كذا مكان في الكود، Flutter مش هتعمل object جديد كل مرة، لأ هى بتستخدم نفس النسخة اللي اتعملت أول مرة وده بيساعد جدًا في الأداء لأنه بيقلل عدد ال Widgets اللي بتتبني كل مرة.
إزاي نستفيد من كده؟
دايما لما تقدر استخدم const قبل ال Widget خصوصا لو مش هتتغير
زي كده
const Text("Welcome")
بدل ما تكتب
Text("Welcome")
لأن الفرق بينهم إن الأول هيتحفظ في الكاش، والتاني هيتبني كل مرة.
طب ولو عندي ويدجت بيتكرر كتير بس مش ثابت بالكامل، ساعتها ممكن تستخدم حلول زي:
ValueKey أو ObjectKey علشان Flutter تقدر تميز بين النسخ.
يعني مثلاً عندك ListView فيها عناصر كتير، وكل عنصر هو عبارة عن ويدجت فيها شوية معلومات زي اسم، صورة، رقم... بس القيم دي بتتغير حسب كل عنصر.
ListView(
children: [
UserCard(name: "Mahmoud"),
UserCard(name: "Usama"),
UserCard(name: "Ahmed"),
],
)
في الحالة دي، كل عنصر شكله زي التاني لكن بياناته مختلفة، وFlutter ممكن يتلخبط لما يعيد بناء الواجهة
هنا ييجي دور الـ Key
علشان Flutter يقدر يفرق بين كل ويدجت والتانية، لازم تدي لكل واحدة Key.
وفي الحالة دي، بنستخدم أنواع من ال Keys زي
ValueKey , ObjectKey
لما تدي كل ويدجت Key
Flutter هيعرف إن أه ده نفس العنصر اللي كان هنا قبل كده، فـمش هيبنيه من أول وجديد، ومش هيحصل لخبطة في الـstate
بدون ما تسألوا
Chatgpt
اي الفرق بين
ListView
ListView.builder
واي الأفضل فيهم ولى ؟
واي مشكله استخدام ال
shrinkWrap: true
واي فايده ال
cacheExtent
في ال
ListView
وده اللي هنزله الشرح الجاى .
Chatgpt
اي الفرق بين
ListView
ListView.builder
واي الأفضل فيهم ولى ؟
واي مشكله استخدام ال
shrinkWrap: true
واي فايده ال
cacheExtent
في ال
ListView
وده اللي هنزله الشرح الجاى .
لو عندي ListView فيها بيانات كتير إزاي أتحكم في عدد العناصر اللي Flutter تجهزها قبل ما تظهر على الشاشة؟
الجواب هو
خاصية اسمها cacheExtent
ودي ببساطة بتحدد المسافة بالبكسل كام عنصر Flutter تجهزه فوق وتحت الجزء الظاهر في الـListView.
يعني مثلا
لو كل عنصر طوله 100 بكسل، وكتبت:
cacheExtent: 300,
ده معناه إن Flutter هتجهز 3 عناصر فوق وتحت
طيب لو عايز تجهز حوالي 30 عنصر؟
cacheExtent: 3000,
بس خلي بالك:
لو العناصر طولها مش ثابت الرقم ده هيكون تقديري مش دقيق.
كل ما تزود cacheExtent هتستهلك RAM أكتر لأنك بتجهز عناصر زيادة.
الجواب هو
خاصية اسمها cacheExtent
ودي ببساطة بتحدد المسافة بالبكسل كام عنصر Flutter تجهزه فوق وتحت الجزء الظاهر في الـListView.
يعني مثلا
لو كل عنصر طوله 100 بكسل، وكتبت:
cacheExtent: 300,
ده معناه إن Flutter هتجهز 3 عناصر فوق وتحت
طيب لو عايز تجهز حوالي 30 عنصر؟
cacheExtent: 3000,
بس خلي بالك:
لو العناصر طولها مش ثابت الرقم ده هيكون تقديري مش دقيق.
كل ما تزود cacheExtent هتستهلك RAM أكتر لأنك بتجهز عناصر زيادة.