السلام عليكم ورحمة الله وبركاته
عملت باكدج بسيطة تسهلك وقتك في إضافة الإشعارات على 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
🔥16❤🔥6
السلام عليكم ورحمة الله وبركاته
حابب أشارك معاكم التحديث الجديد اللي اشتغلت عليه في الباكدج :
✅ الباكدج دلوقتي بتدعم أحدث نسخة من 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 [...]
🔥9❤🔥5
يعني إيه 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
❤🔥12🔥3
بدون ما تسألوا
Chatgpt
اي الفرق بين
ListView
ListView.builder
واي الأفضل فيهم ولى ؟
واي مشكله استخدام ال
shrinkWrap: true
واي فايده ال
cacheExtent
في ال
ListView
وده اللي هنزله الشرح الجاى .
Chatgpt
اي الفرق بين
ListView
ListView.builder
واي الأفضل فيهم ولى ؟
واي مشكله استخدام ال
shrinkWrap: true
واي فايده ال
cacheExtent
في ال
ListView
وده اللي هنزله الشرح الجاى .
❤🔥5🔥1
لو عندي 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 أكتر لأنك بتجهز عناصر زيادة.
❤🔥13🆒3🔥1
Forwarded from Ŕ ó ò méŗø
ال pdf ده جمعت فيه اغلب و اهم اسئلة الانترڤيوز لعل و عسى تفيد حد 🤍
🔥3
أسبوع حافل بالصيـام
وصيام السبـت القـادم
يُكفر ذنوب سنة كاملة
#عاشوراء
لو مش هتقدر تصوم، تقدر تأخد الأجر لو بلغت غيرك.. الدّالُ على الخير = كفاعله :)🌱
وصيام السبـت القـادم
يُكفر ذنوب سنة كاملة
#عاشوراء
لو مش هتقدر تصوم، تقدر تأخد الأجر لو بلغت غيرك.. الدّالُ على الخير = كفاعله :)🌱
❤🔥11
لو بتستخدم باكدج
JsonSerializable
ممكن بتقابل مشاكل وانت بتحول الـ
JSON
ل
Objects
وتفضل احيانا تدور فى الكود ومش عارف فين الغلط بالظبط
فيه حل بسيط جدا
ضيف السطر ده فوق الكلاس بتاعك
@JsonSerializable(checked: true)
ده هيخليك تشوف بالظبط أنهي Field عامل مشكلة وقت الـ
deserialization.
يعني لو عندك مثلا:
{
"name": "Mahmoud",
"age": "twenty"
}
وإنت مستني age تكون رقم (int) هتطلعلك رسالة خطأ واضحة تقولك إنك استلمت
String
بدل int
قبل كده من غير
checked: true
الغلط بيبقى مبهم ومش واضح سببه
JsonSerializable
ممكن بتقابل مشاكل وانت بتحول الـ
JSON
ل
Objects
وتفضل احيانا تدور فى الكود ومش عارف فين الغلط بالظبط
فيه حل بسيط جدا
ضيف السطر ده فوق الكلاس بتاعك
@JsonSerializable(checked: true)
ده هيخليك تشوف بالظبط أنهي Field عامل مشكلة وقت الـ
deserialization.
يعني لو عندك مثلا:
{
"name": "Mahmoud",
"age": "twenty"
}
وإنت مستني age تكون رقم (int) هتطلعلك رسالة خطأ واضحة تقولك إنك استلمت
String
بدل int
قبل كده من غير
checked: true
الغلط بيبقى مبهم ومش واضح سببه
❤🔥13⚡2
منقول
تجميعة هتساعدك في عمل تطبيق او موقع اسلامي 🙌
Quran-Datasets:
https://lnkd.in/dPPH-spn
https://lnkd.in/d35kcFCZ
https://lnkd.in/dNVtiE_J
https://lnkd.in/dGy3zpTN
Hadith-Datasets:
https://lnkd.in/dv_g7PiP
https://lnkd.in/di5e6YEp
https://lnkd.in/dauV-n6R
Azkar-Datasets:
https://lnkd.in/dXNRrDCj
https://lnkd.in/dyZ9XqET
Quran-APIs:
https://alquran.cloud/api
https://quran.api-docs.io/
https://lnkd.in/ddfbPT9v
Prayer-Times-API:
https://lnkd.in/dnQWeB2K
https://lnkd.in/diXsuM6U
تجميعة هتساعدك في عمل تطبيق او موقع اسلامي 🙌
Quran-Datasets:
https://lnkd.in/dPPH-spn
https://lnkd.in/d35kcFCZ
https://lnkd.in/dNVtiE_J
https://lnkd.in/dGy3zpTN
Hadith-Datasets:
https://lnkd.in/dv_g7PiP
https://lnkd.in/di5e6YEp
https://lnkd.in/dauV-n6R
Azkar-Datasets:
https://lnkd.in/dXNRrDCj
https://lnkd.in/dyZ9XqET
Quran-APIs:
https://alquran.cloud/api
https://quran.api-docs.io/
https://lnkd.in/ddfbPT9v
Prayer-Times-API:
https://lnkd.in/dnQWeB2K
https://lnkd.in/diXsuM6U
lnkd.in
LinkedIn
This link will take you to a page that’s not on LinkedIn
❤🔥25🏆1
Media is too big
VIEW IN TELEGRAM
التطبيق الرابع
السلام عليكم ورحمة الله وبركاته
الحمد لله خلصنا تطبيق مع الشباب اللي متابع معاهم
اللى حابب ينضم يرد على الرساله وهكلمه ابعت له لينك الديسكورد خاص .
شروط الانضمام
يكون شخص مستواه كويس لان احنا بنعمل مشاريع كامله
ولو حد مبتدأ وعايز ينضم ممكن يكون ليهم جروب خاص لو اكتر من شخص
وده التطبيق اللى تم تسليمه من احد الشباب
بالتوفيق ليكم جميعا يارب ✨️
السلام عليكم ورحمة الله وبركاته
الحمد لله خلصنا تطبيق مع الشباب اللي متابع معاهم
اللى حابب ينضم يرد على الرساله وهكلمه ابعت له لينك الديسكورد خاص .
شروط الانضمام
يكون شخص مستواه كويس لان احنا بنعمل مشاريع كامله
ولو حد مبتدأ وعايز ينضم ممكن يكون ليهم جروب خاص لو اكتر من شخص
وده التطبيق اللى تم تسليمه من احد الشباب
بالتوفيق ليكم جميعا يارب ✨️
❤🔥7🔥6🤯2
السلام عليكم
بدأت أذاكر
Swift
وللي مش عارف
Swift
هي لغة برمجة من Apple بنستخدمها عشان نعمل تطبيقات على
iPhone
iPad
MAC
Apple Watch.
هشارك كل اللي أذاكره على القناة دي
الشرح هيكون كله بالانجليزي ان شاء الله.
لو حابب تتابع أو تبدأ معايا ده الرابط:
https://t.me/swift_with_mahmoud_azab
بدأت أذاكر
Swift
وللي مش عارف
Swift
هي لغة برمجة من Apple بنستخدمها عشان نعمل تطبيقات على
iPhone
iPad
MAC
Apple Watch.
هشارك كل اللي أذاكره على القناة دي
الشرح هيكون كله بالانجليزي ان شاء الله.
لو حابب تتابع أو تبدأ معايا ده الرابط:
https://t.me/swift_with_mahmoud_azab
❤🔥5🔥2🎃1
ده جالي ف الخاص
( معرفش حاجه فعلا عن الدوره)
دلوقتى مجانا تقدر تدخل مجال ال 𝗠𝗼𝗯𝗶𝗹𝗲 𝗔𝗽𝗽 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 (𝗙𝗹𝘂𝘁𝘁𝗲𝗿) مع𝑬𝒂𝒔𝒚 𝑳𝒆𝒂𝒓𝒏 𝑨𝒄𝒂𝒅𝒆𝒎𝒚 🎓🌟
.
.
لو عايز تبدء فى مجال تطوير تطبيقات الموبايل و تاية من كتر المصادر او خايف تدفع فلوس فى كورس مش واثق منة او حتى عندك فضول تجرب المجال ...
يبقا مكانك فى 𝗙𝗹𝘂𝘁𝘁𝗲𝗿 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽 🔥😍
-
ال Boot Camp عبارة عن اسبوع واحد (7 محاضرات)
هتتعلم فيه أساسيات عن Dart & Flutter لحد ما تبنى اول تطبيق بأيدك.
محتوى متكامل مناسب لأى حد ايا كانت معرفتة لأنة هيبدء من نقطه الصفر فى البرمجة
--
--
تفاصيل الحضور :
اونلاين على Zoom
7 محاضرات كل يوم محاضرة
المحاضرة 3 ساعات
فى اليوم الثامن : هتبنى مشروع كامل و تناقشة و هتستلم شهادة حضور لل Boot Camp 😯🔥
سجل دلوقتى 👇
https://easylearnacademy.net/flutter-boot-camp/
يلا متضيعش وقت و سجل دلوقتى لأن العدد محدود جدا 👇🤍
( معرفش حاجه فعلا عن الدوره)
دلوقتى مجانا تقدر تدخل مجال ال 𝗠𝗼𝗯𝗶𝗹𝗲 𝗔𝗽𝗽 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 (𝗙𝗹𝘂𝘁𝘁𝗲𝗿) مع𝑬𝒂𝒔𝒚 𝑳𝒆𝒂𝒓𝒏 𝑨𝒄𝒂𝒅𝒆𝒎𝒚 🎓🌟
.
.
لو عايز تبدء فى مجال تطوير تطبيقات الموبايل و تاية من كتر المصادر او خايف تدفع فلوس فى كورس مش واثق منة او حتى عندك فضول تجرب المجال ...
يبقا مكانك فى 𝗙𝗹𝘂𝘁𝘁𝗲𝗿 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽 🔥😍
-
ال Boot Camp عبارة عن اسبوع واحد (7 محاضرات)
هتتعلم فيه أساسيات عن Dart & Flutter لحد ما تبنى اول تطبيق بأيدك.
محتوى متكامل مناسب لأى حد ايا كانت معرفتة لأنة هيبدء من نقطه الصفر فى البرمجة
--
--
تفاصيل الحضور :
اونلاين على Zoom
7 محاضرات كل يوم محاضرة
المحاضرة 3 ساعات
فى اليوم الثامن : هتبنى مشروع كامل و تناقشة و هتستلم شهادة حضور لل Boot Camp 😯🔥
سجل دلوقتى 👇
https://easylearnacademy.net/flutter-boot-camp/
يلا متضيعش وقت و سجل دلوقتى لأن العدد محدود جدا 👇🤍
🔥3❤🔥1
السلام عليكم ورحمه الله وبركاته
المساحة عندي على الهارد كانت قربت تخلص
مفيش كان قدامي حل غير إني أعمل clean لكل مشاريع الـ Flutter لاني عارف ان ال
build
بياخد مساحه كبيره وانا عندي مشاريع كتير جدا .
بدل ما أدخل مشروع مشروع أكتب الأمر، عملت سكريبت صغير (بمساعدة ChatGPT) يشوف كل المشاريع ويعملها clean مرة واحدة.
النتيجة
قبل: 21GB
بعد: 180GB
ده لينك السكربت لأي حد حابب يستخدمه:
https://gist.github.com/azabcodes/8f39c7a2986585de8991f2717d6a042c
المساحة عندي على الهارد كانت قربت تخلص
مفيش كان قدامي حل غير إني أعمل clean لكل مشاريع الـ Flutter لاني عارف ان ال
build
بياخد مساحه كبيره وانا عندي مشاريع كتير جدا .
بدل ما أدخل مشروع مشروع أكتب الأمر، عملت سكريبت صغير (بمساعدة ChatGPT) يشوف كل المشاريع ويعملها clean مرة واحدة.
النتيجة
قبل: 21GB
بعد: 180GB
ده لينك السكربت لأي حد حابب يستخدمه:
https://gist.github.com/azabcodes/8f39c7a2986585de8991f2717d6a042c
❤🔥10🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Coach App – Flutter
Build and visualize football tactics using CustomPaint & Draggable widgets.
I'm looking for a new role as a Flutter developer with 4 years of experience
or Junior IOS developer with 6 months of experience.
Dm 📧 :
mahmoud.azab.codes@gmail.com
Build and visualize football tactics using CustomPaint & Draggable widgets.
I'm looking for a new role as a Flutter developer with 4 years of experience
or Junior IOS developer with 6 months of experience.
Dm 📧 :
mahmoud.azab.codes@gmail.com
🔥6❤🔥1🤯1