بحث باسم الموضوع المطلوب

🔐 شرح التشفير من البداية إلى النهاية:


🔑 إنشاء المفتاح: يقوم كل مستخدم بإنشاء مفتاح عام (مشترك مع الآخرين) ومفتاح خاص (يبقى سريًا) .


📧 تشفير الرسالة: يقوم المرسل بتشفير الرسالة باستخدام المفتاح العام للمستلم، مما يضمن أنه الوحيد القادر على فك تشفيرها .


🚙 نقل البيانات: يتم إرسال الرسالة المشفرة عبر الشبكة. وإذا تم اعتراضها، فإنها تظهر على شكل هراء غير قابل للقراءة .


🔓 فك تشفير الرسالة: يستخدم المستلم مفتاحه الخاص لفك تشفير الرسالة وإعادتها إلى شكلها الأصلي .


🔒 المصادقة والسلامة: تتحقق التوقيعات الرقمية من هوية المرسل، وتضمن سلامة الرسالة عدم تغييرها .


♻️ حلقة الاتصال الآمنة: يمكن فقط للمرسل والمستقبل المقصودين الوصول إلى الاتصال، مما يضمن الخصوصية .

‏كيفية نشر تطبيق ⁦‪ASP.NET‬⁩ Core في Azure


 

‏كيفية نشر تطبيق ⁦‪ASP.NET‬⁩ Core  في Azure 


https://youtu.be/GAJcJvrGqPg/

🛡️ ما هو GRC ؟..

الـ GRC هو اختصار لمصطلح الحوكمة والمخاطر والامتثال (بالإنجليزية: Governance, Risk, and Compliance) وهو يشير إلى مجموعة متكاملة من القدرات التي تُمكّن المؤسسة من تحقيق أهدافها بشكل موثوق، ومعالجة حالة عدم اليقين، والتصرف بنزاهة.

✅ بمعنى أبسط، GRC هو إطار عمل يساعد المؤسسات على:

1️⃣ الحوكمة (Governance): وضع القواعد والسياسات والإجراءات التي تحدد كيفية إدارة المؤسسة واتخاذ القرارات فيها. يشمل ذلك تحديد المسؤوليات والمساءلة، وتحديد أهداف المؤسسة واستراتيجياتها.

2️⃣ إدارة المخاطر (Risk Management): تحديد وتقييم ومعالجة المخاطر التي قد تواجه المؤسسة وتعيق تحقيق أهدافها. يشمل ذلك تحديد أنواع المخاطر المحتملة، وتقييم احتمالية حدوثها وتأثيرها، ووضع خطط للتعامل معها.

3️⃣ الامتثال (Compliance): الالتزام بالقوانين واللوائح والمعايير الأخلاقية التي تنطبق على المؤسسة. يشمل ذلك فهم المتطلبات القانونية والتنظيمية، ووضع إجراءات لضمان الامتثال لها، ومراقبة الالتزام بها.

📍لماذا GRC مهم؟

يساعد GRC المؤسسات على:

1️⃣ تحسين اتخاذ القرارات: من خلال توفير معلومات شاملة حول المخاطر والامتثال، مما يساعد على اتخاذ قرارات مستنيرة.

2️⃣ زيادة الكفاءة: من خلال توحيد العمليات وتقليل الازدواجية، مما يوفر الوقت والموارد.

3️⃣ تقليل المخاطر: من خلال تحديد المخاطر المحتملة واتخاذ الإجراءات اللازمة للحد منها.

4️⃣ تحسين السمعة: من خلال إظهار التزام المؤسسة بالمعايير الأخلاقية والقانونية.

5️⃣ تحقيق أهداف المؤسسة: من خلال توفير إطار عمل يساعد على إدارة المؤسسة بشكل فعال وتحقيق أهدافها.

📌مكونات GRC:

يتكون GRC من عدة مكونات رئيسية، تشمل:

1️⃣ الأشخاص: الموظفون الذين يقومون بتنفيذ عمليات GRC.

2️⃣ العمليات: الإجراءات والسياسات التي تحدد كيفية إدارة الحوكمة والمخاطر والامتثال.

3️⃣ التكنولوجيا: الأدوات والأنظمة التي تساعد على أتمتة عمليات GRC.

4️⃣ المعلومات: البيانات التي يتم جمعها وتحليلها لاتخاذ قرارات GRC.

أمثلة على تطبيقات GRC:

5️⃣ في القطاع المالي: يساعد GRC المؤسسات المالية على الالتزام باللوائح المصرفية وإدارة المخاطر المالية.

6️⃣ في قطاع الرعاية الصحية: يساعد GRC المؤسسات الصحية على حماية خصوصية المرضى والامتثال للوائح الصحية.

7️⃣ في قطاع الصناعة: يساعد GRC الشركات الصناعية على إدارة المخاطر البيئية والصحية والسلامة المهنية.

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

دروس تعليمية | FuzzySecurity

⁃ تحليل البرامج الضارة

⁃ سلسلة البرامج التعليمية لتطوير Windows Exploit

⁃ سلسلة دروس تطوير استغلال لينكس

والمزيد …

https://fuzzysecurity.com/tutorials.html/

هل أنت مبرمج هواتف؟ IPHONE ANDROID IPCC Carrier iOS CDMA !

اكتشف أسرع وأسهل طريقة لبرمجة جميع أنواع الهواتف!


IPCC Carrier iOS CDMA V 0.13.2! 

هي الأداة التي تحتاجها لضبط إعدادات شبكة الهاتف بدقة وسهولة.

بفضل ملفات الاتصال الحصرية التي توفرها الأداة يمكنك برمجة أي هاتف IPHONE iOS & ANDROID

بنقرة زر واحدة.


*وفر وقتك وجهدك.

*احصل على نتائج مثالية في كل مرة.

*لا تحتاج إلى خبرة تقنية.

*يستخدمها اكثر من 140 مركز برمجة معتمد.

*جرب الأداة الآن واحصل على نتائج مذهلة!


[ https://mega.nz/file/DOQVwRaD#vVg1UdruedvQ8XjKCZWh3Qbc32TEbV10TNkS8cMgVhc/ ]"

خارطة طريق لتعلم الـ Bug Bounty للمبتدئين في مجال الأمن السيبراني والأختراق

موقع ⁦‪imatag‬⁩ يقوم باضافة watermark ( مخفية ) على صورك التى صورتها بدون التقليل من جودتها


موقع  http://⁦‪imatag.com‬⁩/ يقوم باضافة watermark ( مخفية ) على صورك التى صورتها بدون التقليل من جودتها ومن ثم يمكنك الموقع من تتبع الصورة لو تم نشرها على الانترنت ومعرفة من يستخدمها بشكل غير قانوني 😏

ipcc carrier iOS CDMA V 0.13.1 IPHONE iOS & ANDROID

 
ادخال ملفات الشبكه للايفون وكذالك للاندرويد جميع التلفونات تخطي حساب جوجل تحويل فولتي تشغيل فور جي ثري جي 

سامسونج 

ال جي 

مووتوريلا 

فيفو

ون بلس 

واخرى 

للاشتراك في الاداه التواصل على الارقام التاليه 

00967770877008

00967733777008

‏إذا معك مقطع في اليوتيوب ‏وتشتي تحمل جزء بسيط من المقطع فقط

 ‏إذا معك مقطع في اليوتيوب

وتشتي تحمل جزء بسيط من المقطع فقط 

‏انسخ  الرابط واللصقة في الموقع

‏وحدد البداية والنهاية 

‏ثم اضغط تحميل

‏🔗 ⁦‪https://ytcutter.com/‬⁩

‏موقع لتحويل “ مقاطع اليوتيوب ” إلى MP3 🔻youtube

‏موقع لتحويل “ مقاطع اليوتيوب ” إلى MP3 🔻

https://www.easymp3converter.com/youtube-to-mp3/v27/

أصدار آلاف الأدوات بالذكاء الأصطناعى

‼️أداة Deepseek البديل الصيني  تفوقت بالفعل على  Chatgpt وذا بسبب تدريبه على قاعدة بيانات هائلة تبلغ 14.8 تريليون رمز، مقارنة بـ 570 مليار رمز فقط لدى ChatGPT و أكثر من ذلك تلاقيه في الرابط هذا 🤩👇🏻

https://www.manjmy.com/3104/

❌ اداه رهيبه عباره عن ذكاء اصطناعي باجابات بشريه 

تعتمد على خوارزميات معقدة لتحليل كميات هائلة من البيانات، وتلخيصها لتقديم لك إجابات واضحة وموجزة ...👇🏻🔥🔥

https://tech.manjmy.com/759/

❌ اقوى بديل مجانى لل ChatGpt على اطلاق ويديك نتائج تعديه بمرااحل هو 👈🏻 Preplexity

https://www.fedniy.com/2545/

تعرف على تطبيق beago للحصول على نتائج تتخطى google و chatgpt

https://fedniy.com/2884/

❌️️  اداه سحريه لانتاج الفيديوهات  بتخليك تحط صوت علي صوره ثابته وتعمل لها لبسن يعني تحرك الشفايف بالكلام بجد تنبهر جرب بنفسك و أدخل الموقع من هنا.

https://courses.fedniy.com/763/

❌تخلص من أخطاء كتابة ال ChatGpt  وضيف عليها الطابع البشري مع أداة  Humanize AI text – تقدر تغير محتواك بذكاء…

https://www.manjmy.com/2928/

-❌و أيضاً هناك أداة ChatLLM Teams ثورة جديدة في عالم الذكاء الاصطناعي👇🏻

https://courses.fedniy.com/2037/

❌تلخيص نصوص طويلة فى لمح البصر مع أداة Humata AI لينك الأداة 👇🏻

https://www.fedniy.com/2576/

❌موقع Microsoft Designer البديل المجانى ل Canva 

https://www.manjmy.com/2178/

‼️أدوات ذكاء اصطناعي في Excel مدهشة توفر معاك وقت وجهد لإنها عملك .أكتشفها من هنا :👇

 https://tech.manjmy.com/453/

‼️7 أدوات بالذكاء اصطناعي هتساعدك في كتابة أكواد البرمجة أتعرف عليهم من هنا 👇

https://tech.manjmy.com/314/

❌❌وهنا مكتبة ضخمة تضم جميع المواقع و أدوات الذكاء الاصطناعي باختصار الأداة اللى محتاجها أكيد تلاقيها 📌😎

https://www.fedniy.com/2540/

أهم أوامر الـ Runالمفيدة على نظام التشغيل ويندوز، مرتبة بشكل منظم وسهل الفهم


 أوامر النظام وإدارة الملفات:

1- ipconfig: لمعرفة الـ IP الخاص بجهازك.

2- regedit: لفتح شاشة الريجستري.

3- msconfig: للتحكم في البرامج عند بدء التشغيل.

4- cmd: لفتح نافذة موجه الأوامر (Command Prompt).

5- scandisk أو scandskw: لفحص القرص الصلب.

6- cleanmgr: لتشغيل أداة تنظيف القرص.

7- sfc: لإصلاح ملفات النظام التالفة.

8- dxdiag: لمعرفة مواصفات جهازك بالتفصيل.

9- temp أو %temp%: للوصول إلى الملفات المؤقتة.

10- recent: لاستعراض الملفات التي فتحتها مؤخرًا.


أوامر الأدوات والتطبيقات:


11- calc: لفتح الآلة الحاسبة.

12- pbrush: لتشغيل برنامج الرسام.

13- osk: لفتح لوحة المفاتيح على الشاشة.

14- soundrecorder: لتسجيل الصوت.

15- timedate.cpl: لضبط الوقت والتاريخ.

16- joy.cpl: للوصول إلى إعدادات الـ Joystick.

17- dvdplay: لتشغيل الفيديو (في ويندوز ميلينيوم فقط).

18- packager: لاستعراض برنامج تغيير الأيقونات.

19- taskmgr: لفتح مدير المهام.

20- drwatson: لتشغيل أداة فحص شامل لجهازك.


أوامر الشبكات والاتصال:


21- ftp: لفتح بروتوكول نقل الملفات.

22- telnet: للاتصال بالسيرفرات وخدمات الشبكات.

23- mobsync: لتنزيل صفحات الإنترنت لتصفحها لاحقًا.

24- cliconfg: للمساعدة في إعدادات الشبكة.

25- icwscrpt: لنسخ ملفات الـ DLL الخاصة بالشبكة.


أوامر متقدمة:


26- perfmon.msc: لمراقبة أداء النظام.

27- gpedit.msc: للتحكم في سياسات النظام.

28- sysedit: لفتح محرر تكوين النظام.

29- imgstart: لتشغيل أسطوانة ويندوز.

30- tuneup: لتشغيل معالج صيانة النظام.

31- debug: لمعرفة نوع كارت الشاشة.

32- dpiscaling: لضبط إعدادات الشاشة.

33- wmimgmt.msc: لإدارة البنية التحتية للنظام.

34- standalone Update Manager (wusa): لإدارة التحديثات المستقلة.

35- credwiz: لاستعادة كلمات المرور المحفوظة.


أوامر الملفات والمجلدات:


36- cookies: للوصول إلى ملفات الكوكيز.

37- temp: للوصول إلى الملفات المؤقتة.

38- %tmp%: للوصول إلى الملفات المؤقتة بشكل أوسع.

39- Tips.txt: ملف يحتوي على أسرار الويندوز.

40- recent: لاستعراض الملفات الأخيرة التي تم فتحها.


أوامر الوسائط والتطبيقات الإضافية:


41- cdplayer: لتشغيل برنامج السيدي بلير.

42- progman: لفتح البروجرام مانجر.

43- notepad: لفتح برنامج المفكرة.

44- write: لتشغيل برنامج WordPad.

45- dvdplay: لتشغيل الفيديوهات.

46- narrator: لتشغيل برنامج الراوي لقراءة النصوص.

47- soundrecorder: لتسجيل الصوت.

48- drwatson: أداة فحص النظام.

49- help أو F1: للوصول إلى مركز المساعدة.

50- msiexec: لعرض معلومات حقوق البرامج والشركة.

برنامج لترجمة الصوتية " يدعم كل اللغات ، وسهل الاستخدام .

 للايفون والايباد

مجاني لفترة 


https://apps.apple.com/us/app/multi-translate-voice/id768642496/


برنامج لترجمة الصوتية " يدعم كل اللغات ، وسهل الاستخدام .

رحلة بايثون من الصفر إلى البطل العالمي 🐍 Python


 

رحلة بايثون من الصفر إلى البطل العالمي 🐍

‏لغة بايثون ليست مجرد لغة برمجة، بل هي قصة نجاح تكنولوجي مذهلة. من بداياتها المتواضعة إلى سيطرتها على عالم التكنولوجيا، تعالوا نغوص في رحلتها! 

‏البداية: 1989 - العقل المدبر 🧠

‏في عيد الميلاد عام 1989، كان "غيدو فان روسوم" (Guido van Rossum) يعاني من الملل. فقرر أن يخلق شيئًا جديدًا: لغة برمجة بسيطة وقوية.

‏كان هدفه جعل البرمجة سهلة وممتعة. وهكذا وُلدت بايثون، وسمّاها على اسم مسلسله الكوميدي المفضل "مونتي بايثون"! 

🎭 ‏الإصدار الأول: 1991 - بايثون 0.9.0 🐣

‏أصدر غيدو أول نسخة من بايثون، وكانت تحوي ميزات مبتكرة مثل:

‏كتابة الكود بأسلوب أنيق وسهل القراءة.

‏دعم البرمجة الكائنية (OOP).

‏مكتبة قياسية غنية.

‏لكنها كانت مجرد بداية...

‏بايثون 2: 2000 - الثورة الكبرى 💥

‏مع إصدار بايثون 2، أصبحت اللغة أكثر نضجًا.

‏دعم Unicode بشكل كامل.

‏تحسين أداء الذاكرة.

‏انتشار واسع في مجالات مثل تطوير الويب والعلوم.

‏لكن بايثون كانت تستعد لقفزة أكبر!

‏بايثون 3: 2008 - المستقبل يبدأ هنا 🚀

‏بايثون 3 كانت نقلة نوعية، لكنها جاءت بتغييرات كبيرة غير متوافقة مع الإصدارات السابقة.

‏تحسين تصميم اللغة.

‏إزالة الأخطاء القديمة.

‏دعم أفضل للتزامن والبرمجة غير المتزامنة.

‏رغم الصعوبات الأولية، أصبحت بايثون 3 القاعدة الذهبية للبرمجة الحديثة.

‏العصر الذهبي: 2010-2020 🌟

‏في هذا العقد، سيطرت بايثون على العالم:

‏تعلم الآلة: مع مكتبات مثل TensorFlow وPyTorch.

‏تحليل البيانات: Pandas وNumPy أصبحا الأدوات المفضلة للعلماء.

‏تطوير الويب: Django وFlask جعلا بايثون خيارًا رئيسيًا.

‏الأتمتة: بايثون أصبحت لغة الاختيار لأتمتة المهام.

‏بايثون اليوم: الملكة بلا منازع 👑

‏التعليم: بايثون هي اللغة الأولى لتعليم البرمجة في المدارس والجامعات.

‏الذكاء الاصطناعي: بايثون تقود ثورة الذكاء الاصطناعي والتعلم العميق.

‏المجتمع: مجتمع بايثون هو أحد أكبر وأكثر المجتمعات نشاطًا ودعمًا.

‏لماذا نحب بايثون؟ ❤️

‏سهلة التعلم، صعبة الإتقان.

‏مجتمع داعم وودود.

‏متعددة الاستخدامات: من التطبيقات الصغيرة إلى الأنظمة الضخمة.

‏نصيحة أخيرة 🛠️

‏إذا كنت لم تجرب بايثون بعد، فقد حان الوقت! 

‏ابدأ بـ "Hello, World!" وستجد نفسك في رحلة لا تنتهي من الإبداع.

‏الخلاصة 🎯

‏بايثون ليست مجرد لغة برمجة، بل هي فلسفة: بساطة، قوة، وإبداع. من غيدو فان روسوم إلى ملايين المطورين حول العالم، بايثون هي قصة نجاح نادرة.

تستخدم Linq TO SQL لتسهيل جمل الإستعلام وعند استخدامها

تستخدم Linq TO SQL  لتسهيل جمل الإستعلام وعند استخدامها ستجد فيها القوة والسهولة والمرونة وتوفير الوقت والجهد فالكود الذي ربما تكتبه في 10 اسطر ربما تختصره بسطر واحد

أليك كتاب باللغة العربية يشرح Linq To SQL

https://mediafire.com/file/d2mmc7ikfakdnu8/Linq_To_SQL.pdf/file

تحديث تطبيق 🤖 اعلام تقني ومتجر 🏬 v1.0.7

 أخيرًا تطبيقنا بين أيديكم ✅

اكتشف عالمًا جديدًا من التقنية واستمتع بأحدث الأخبار والعروض الحصرية.

حمل التطبيق الآن واستمتع بتجربة لا تُنسى!

🤖 اعلام تقني ومتجر 🏬 

https://github.com/sajafFON/Technical-information1.0.2/releases/download/V1.0.7/1.0.7.apk/

افضل 7 دورات مجانية لتعلم الذكاء الاصطناعي في عام 2025




1- مقدمة Google للذكاء الاصطناعي التوليدي

https://www.cloudskillsboost.google/course_templates/536/



2- الذكاء الاصطناعي التوليدي للجميع من Deeplearnning

https://www.deeplearning.ai/courses/generative-ai-for-everyone/



3- مقدمة الى الذكاء الاصطناعي باستخدام python من جامعة Harvard's

https://pll.harvard.edu/course/cs50s-introduction-artificial-intelligence-python/2023-05/


4- هندسة الطلبات ل ChatGPT من DeepLearning

https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/


5- ماهو الذكاء الاصطناعي التوليدي من شركة Microsoft

https://www.linkedin.com/learning/what-is-generative-ai/generative-ai-is-a-tool-in-service-of-humanity/


6- تقنية LangChain من DeepLearning AI's لتطبيقات LLM

https://www.deeplearning.ai/short-courses/langchain-for-llm-application-development/


7- مقدمة Google للذكاء الاصطناعي المسؤول

https://www.cloudskillsboost.google/course_templates/554/

محرك بحث للمخترقين/مختبري الاختراق.

https://intelx.io/ == OSINT


https://app.netlas.io/ == attack surface


https://searchcode.com/ == code search


https://urlscan.io/ == threat intelligence 


https://publicwww.com/ == code search


https://fullhunt.io/ == attack surface


https://socradar.io/ == threat intelligence 


https://binaryedge.io/ ==attack surface


https://ivre.rocks/ == server


https://crt.sh/ == certificate search


https://vulners.com/ == vulnerabilities 


https://pulsedive.com/ == threat intelligence

أفضل قنوات اليوتيوب اللي لازم تشترك فيها قبل 2025 لتطوير نفسك في البرمجة والتقنية:

 


‏❯ لغات البرمجة:


‏❯ C ➟ Jacob Sorber

‏❯ C++ ➟ TheCherno

‏❯ Python ➟ Corey Schafer

‏❯ JavaScript ➟ developedbyed

‏❯ Java ➟ Telusko

‏❯ Golang ➟ Jon Calhoun

‏❯ Rust ➟ NoBoilerplate

‏❯ C# ➟ kudvenkat

‏❯ PHP ➟ ProgramWithGio

‏❯ Ruby ➟ DriftingRuby

‏❯ SQL ➟ Joey Blue

‏❯ Lua ➟ Steve’s Teacher

‏❯ Scala ➟ DevInsideYou

‏❯ Julia ➟ TheJuliaLanguage

‏❯ MATLAB ➟ Joseph Delgadillo

‏❯ R ➟ marinstatlectures

‎❯ هياكل البيانات والخوارزميات:


‎❯ Abdul Bari

‎❯ take U forward

‎❯ Aryan Mittal

‎❯ NeetCode

‎❯ Kunal Kushwaha

‎❯ mycodeschool

‎❯ Jenny’s Lectures CS IT

‎❯ codestorywithMIK

‎❯ CodeWithHarry

‎❯ CodeHelp - by Babbar

‎❯ تطوير الويب (Full Stack):


‎❯ HTML ➟ SuperSimpleDev

‎❯ CSS ➟ Kevin Powell

‎❯ Node.js ➟ codevolution

‎❯ Express.js ➟ Anson the Developer

‎❯ TypeScript ➟ basarat

‎❯ React ➟ Dave Gray

‎❯ Next.js ➟ Lama Dev

‎❯ Vue.js ➟ Vue Mastery

‎❯ Angular ➟ Angular University

‎❯ Svelte ➟ Joy of Code

‎❯ Spring ➟ SpringSourceDev

‎❯ SpringBoot ➟ amigoscode

‎❯ Django ➟ CodingEntrepreneurs

‎❯ Laravel ➟ LaravelDaily

‎❯ Blazor ➟ James Montemagno

‎❯ Ruby on Rails ➟ Gorails TV


‎❯ قنوات تطوير ويب :

‎❯ Traversy Media

‎❯ NetNinja

‎❯ Dave Gray


‎❯ مشاريع:

‎❯ WebDevSimplified


‎❯ تصميم واجهات المستخدم:

‎❯ developedbyed

‎❯ DesignCourse

‎❯ DevOps 

❯الحوسبة السحابية:


‎❯ Git ➟ The Modern Coder

‎❯ Linux ➟ Learn Linux TV

‎❯ DevOps ➟ DevOpsToolkit

‎❯ CI/CD ➟ TechWorld with Nana

‎❯ Docker ➟ Bret Fisher

‎❯ Kubernetes ➟ Kubesimplify

‎❯ Microservices ➟ freeCodeCamp

‎❯ Selenium ➟ edureka!

‎❯ Playwright ➟ Jaydeep Karale


‎❯ AWS ➟ amazonwebservices

‎❯ Azure ➟ Adam Marczak

‎❯ GCP ➟ edureka!

‎❯ Serverless ➟ Serverless

‎❯ Jenkins ➟ DevOps Journey

‎❯ Puppet ➟ simplilearn

‎❯ Chef ➟ simplilearn

‎❯ Ansible ➟ Learn Linux TV

‎❯ علم البيانات وتحليلها:


‎❯ الرياضيات:

‎❯ 3Blue1Brown

‎❯ ProfRobBob

‎❯ Ghrist Math


‎❯ الذكاء الاصطناعي والتعلم الآلي:

‎❯ Andrew Ng (via Stanford Online)

‎❯ MIT OpenCourseWare

‎❯ sentdex

‎❯ Krish Naik

‎❯ StatQuest

‎❯ CampusX


‎❯ Excel ➟ ExcelIsFun

‎❯ Tableau ➟ Tableau Tim

‎❯ PowerBI ➟ Guy in a Cube

‎❯ قنوات تعليم مجاني وقنوات قيمة:


‎❯ تعليم مجاني:

‎❯ freeCodeCamp

‎❯ Simplilearn

‎❯ edureka!


‎❯ قنوات قيمة:

‎❯ NetNinja

‎❯ ProgrammingWithMosh

‎❯ Traversy Media

‎❯ BroCode

‎❯ Codevolution

‎❯ TechWithTim

‎❯ thenewboston

‎❯ Telusko

‎❯ Derek Banas

‎❯ CodeWithHarry

‎❯ MySirG .com

‎❯ Leila Gharani

‎❯ TechWorld with Nana

‎❯ Hitesh Choudhary

أفكار مشاريع لتعزيز رحلة واجهة المستخدم وتجربة المستخدم حتى عام 2025. 🔝💡

 


‏تحقق مما إذا كان رقم الهاتف مرتبطًا بحسابات Instagram و Facebook و Telegram والمزيد



‏بإستخدام البوت المجاني Universal Search Bot .

‏رابط البوت : 

‏⁦‪https://t.me/UniversalSearchEasyBot/

كن على اطلاع دائم بالتهديدات الإلكترونية بإستخدام استخبارات التهديد السيبراني



‏يمكنك الوصول إلى التقارير في الوقت الفعلي من Mandiant و DFIR و Unit 42 وRed Canary و Avast و Symantec والمزيد 

‏✔️ جميع المصادر الرئيسية في مكان واحد: 


https://start.me/p/wMrA5z/cyber-threat-intelligence/

التسويق في عصر الذكاء الاصطناعي:

-تصميم الإعلانات: https://adcreative.ai/


-صناعة محتوى منصات التواصل: https://narrato.io/


-بناء الموقع الإلكتروني:  https://10web.io/


-دراسة الفئة المستهدفة: https://ortto.com/


-خدمة العملاء عبر مقاطع الفيديو المخصصة: https://bhuman.ai/


-إدارة الحملات التسويقية: https://emplifi.io/


محركات بحث المخترقين

https://shodan.io/ == servers


https://google.com/ == dorks


https://wigle.net/ == wifi networks


https://grey.app/ == code search


https://onyphe.io/ == server


https://viz.greynoise.io/ == threat intelligence


https://censys.io/ == server


https://hunter.io/ == email addresses


https://fofa.info/ == threat intelligence


https://zoomeye.org/ == threat intelligence

انتقل إلى هذه المواقع للحصول على الإلهام في التصميم لعام 2025:


 

1. Awwwards

2. Behance

3. Dribbble

4. SiteInspire

5. UX Archive

6. Mobbin

7. Collect UI

8. Land-book

9. UI Jar

10. Design Vault

11. Refero

12. Pageflows

13. Scrnshts

14. Waveguide

15. GoodUX

16. Dark Mode Design

17. Minimal Gallery

18. Saaspo

19. UI Garage

20. Pinterest

21. One Page Love

22. Hover States

23. Pttrns

24. UXPin

25. Smashing Magazine

26. UX Collective

27. UI Movement

28. Godly

29. Web Designer Depot

30. Designmodo

31. 99designs Discover

32. SaaS Landing Page by Cruip

33. Designspiration

34. Screenlane

35. FigmaCrush

36. Landingfolio

37. Best Website Gallery

38. User Interface Design Patterns

39. UI Recipes

40. UX Library

41. SaaSFrame

42. Flowstep

43. NPM UI Patterns

44. Good UI

45. Admire The Web

46. Abduzeedo

47. Muzli

48. Designer News

49. UX Magazine

50. Boxes and Arrows

Pivoting Lab





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

https://github.com/cxnturi0n/pivoting-tunneling-lab/

كان سابقا قبل Flutter 3.7

اذا أردنا نستخدم badge لعرض مثلا عدد العناصر في سلة المشتريات او او عدد الاشعارات كان لازم نستخدم مكتبه اضافيه اسمها Badges او نبنيها يدوي با استخدام Stack وهذا نوعا ما بيبقى كود طويل ويأخذ وقت وجهد

ولكن بعد Flutter 3.7 وفرت لنا widget لطيفه نقدر نتعامل مع الموضوع بكل سهوله نقدر نستخدمها مع IconButton وهي الطريقه الذي توصي بها flutter 

ومعنا عده انواع من badge 

منها label لعرض نص على label مثل التالي 

 IconButton(

 icon: const Badge(

 label: Text('Your label'),

 backgroundColor: Colors.blueAccent,

 child: Icon(Icons.receipt),

 ),

 onPressed: () {},

 ),



او count و ذالك بعرض عدد على badge

IconButton(

 icon: Badge.count(

 count: 9999,

 child: const Icon(Icons.notifications),

 ),

 onPressed: () {},

 ),




في حال كان label فارغ بدون نص بيظهر نقطه حمرا على الايقونه null


نقدر نتحكم في badge من حيث alignment وPositioned

وايضا من حيث شكل ال badge دائري او مربع او الشكل الذي تريد.

أفضل 17 موقع لـ تعلم الأمن السيبراني بكافة مجالاته

1- موقع Cybrary
2- موقع Udemy
3- موقع Coursera
4- موقع edX
5- موقع Pluralsight
6- موقع Khan Academy
7- موقع Codecademy
8- موقع LinkedIn Learning
9- موقع Offensive Security
10- موقع SANS Institute
11- موقع Infosec Institute
12- موقع Cisco Networking Academy
13- موقع The Cyber Mentor
14- موقع Pentester Academy
15- موقع Hack The Box
16- موقع OWASP
17- موقع SecurityTube

ما الذي يمنعك من التعلم ؟

لا تكن مصمم UI/UX في الغرفة المظلمة

هذه العبارة تشبيهية تعني أن مصمم واجهة المستخدم وتجربة المستخدم (UI/UX) يجب أن يكون على دراية كاملة بجميع جوانب العمل وأن يكون لديه رؤية واضحة للأشياء. تشبيه الغرفة المظلمة هنا يعني عدم وجود رؤية واضحة أو معلومات كافية لاتخاذ القرارات الصحيحة.

التصميم الجيد إلى تحسين النص السيئ

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

إنهم يرون صورك

تكشف صورك عن الكثير من المعلومات الخاصة .

في هذه التجربة، تستخدم واجهة برمجة تطبيقات Google Vision لاستخراج القصة وراء صورة واحدة .


انظر إلى ما يرونه


https://theyseeyourphotos.com/

دليل كامل البرنامج التعليمي للتشفير

Cryptography Tutorial


https://geeksforgeeks.org/cryptography-tutorial/

كل جديد في برمجة فلاتر

كيفية إنشاء علامات التبويب في Flutter

https://onlyflutter.com/how-to-create-tabs-in-flutter/

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


نظرة سريعة على ميزات Dart غير المتزامنة

https://yshean.com/a-quick-look-at-async-dart-features/

تشارك المؤلفة يونج شين شرائح محاضرتها في Google DevFest Kuala Lumpur 2024 ، حول ميزات Dart غير المتزامنة.


لماذا لم يتم تكوين تطبيق Flutter لنظام iOS: الأسباب الموضحة

https://flutterdesk.com/why-flutter-application-not-configured-for-ios/

في هذا الدليل الشامل، سنوضح لك الأسباب الأكثر شيوعًا لعدم تشغيل تطبيق Flutter على نظام التشغيل iOS ونقدم تعليمات مفصلة خطوة بخطوة لحلها.


انشر تطبيق Flutter الخاص بك على App Store باستخدام Codemagic CI/CD

https://blog.codemagic.io/publishing-flutter-apps-to-appstore/

في هذه المقالة، ستتعلم كيفية إصدار تطبيق Flutter إلى App Store باستخدام Codemagic CI/CD.

أفضل مجموعات التكنولوجيا التي يجب أن يعرفها كل مطور Top Tech Stacks Every Developer Should Know

أفضل مجموعات التكنولوجيا التي يجب أن يعرفها كل مطور!

Top Tech Stacks Every Developer Should Know!


👥 تطوير الواجهة الأمامية


•React.js


•Vue.js


•Angular


•Svelte


•Next.js


•Nuxt.js


👥 تطوير الواجهة الخلفية


•Node.js


•Django


•Ruby on Rails


•Laravel


•Flask


•Spring Boot


👥 المطور المتكامل


•MERN Stack (MongoDB, Express.js, React, Node.js)


•MEAN Stack (MongoDB, Express.js, Angular, Node.js)


•LAMP Stack (Linux, Apache, MySQL, PHP)


•PERN Stack (PostgreSQL, Express.js, React, Node.js)


•JAMstack (JavaScript, APIs, Markup)


👥 تطوير الأجهزة المحمولة


•React Native


•Flutter


•Swift (iOS)


•Kotlin (Android)


•Ionic


👥 علوم البيانات والتعلم الآلي


•Python with Pandas, NumPy, and Matplotlib


•TensorFlow & Keras


•PyTorch


•R with ggplot2


•Jupyter Notebooks


👥 DevOps


•Docker


•Kubernetes


•Ansible


•Terraform


•Jenkins


•AWS, Azure, or GCP


👥 قاعدة البيانات


•SQL (MySQL, PostgreSQL)


•NoSQL (MongoDB, Cassandra)


•Firebase


•Redis


•Oracle DB


👥 تطوير اللعبة


•Unity


•Unreal Engine


•Godot


•CryEngine


•Blender (for assets)


👥تطوير البلوكشين 


•Solidity


•Ethereum


•Web3.js


•Hyperledger


•Truffle


👥  الأمن السيبراني


•Wireshark


•Metasploit


•Kali Linux


•Burp Suite


•Splunk

ملك الابتكار والتسويق : ستيف جوبز

عمل مع بيل جيتس وبول تودور جونز وألان جرينسبان.


وفي العام الذي نحن فيه الان، حققت شركته 391 مليار دولار.


7 من مبادئ عليك ان تتعلمها من ستيف جوبز يمكنها ان تضيف قصة نجاح لحياتك ...



1- الابتكار الدائم: كان ستيف جوبز دائما يفكر في أفكار جديدة ومختلفة. ابتكر أجهزة رائعة مثل الآيبود والآيفون والآيباد، والتي غيرت طريقة استخدامنا للهواتف والحواسيب.


2- الاهتمام بالشكل: لم يكن جوبز يهتم فقط بوظيفة الجهاز، بل كان مهتما جدا بمظهره أيضا. أراد أن تكون الأجهزة جميلة المظهر وسهلة الاستخدام.


3- تجربة المستخدم: كان جوبز يركز على جعل تجربة استخدام الأجهزة ممتعة وسهلة. أراد أن تكون الأجهزة سهلة الفهم والاستخدام، حتى للأشخاص غير المتمرسين بالتكنولوجيا.


4- الشجاعة في اتخاذ القرارات: لم يكن جوبز يخاف من اتخاذ قرارات صعبة ومختلفة. كان يثق في أفكاره ويجازف لتحقيقها.


5- القيادة القوية: كان جوبز قائدا قويا وكان يعرف كيف يحفز فريقه للعمل بجد. كان يلهمهم لتحقيق أهداف كبيرة.


6- التركيز على الجودة: كان جوبز يصر على أن تكون جميع منتجات أبل عالية الجودة. كان يرفض إطلاق أي منتج إلا إذا كان مثاليا.


7- الرؤية المستقبلية: كان جوبز قادرا على تخيل المستقبل والتخطيط له. كان يعرف ما الذي سيحتاجه الناس في المستقبل وابتكر منتجات تلبي احتياجاتهم.

أداة مجانية عبر الإنترنت لقراءة بيانات التعريف الخاصة بالملفات .

ما يميزها عن العديد من الأدوات المماثلة هو عدد الحقول المراد قراءتها (الحد الأقصى للبيانات، حتى الأقل أهمية) + عدد كبير من التنسيقات المدعومة . Protect your business from data leaks قم بتحليل ملفاتك باستخدام Metashield Clean-up Online https://metashieldclean-up.tu.com/# metashieldclean-up.tu.com/#

مجانا كتاب SQL C o o k b o o k

Query Solutions and Techniques

for All SQL Users


قد تكون على دراية بأساسيات لغة SQL

ولكن هل تستفيد من قوتها التعبيرية؟ 


تطبق هذه الطبعة الثانية نهجًا عمليًا للغاية على لغة الاستعلامات الهيكلية (SQL) حتى تتمكن من إنشاء مخازن كبيرة من البيانات ومعالجتها. استنادًا إلى أمثلة من العالم الحقيقي .


https://downloads.yugabyte.com/marketing-assets/O-Reilly-SQL-Cookbook-2nd-Edition-Final.pdf/

للحصول على اشياء جديد ضمن برمجة فلاتر flutter

 أتمتة نشر تطبيق Flutter Android باستخدام GitHub Actions وfastlane

https://canopas.com/automate-flutter-android-app-deployment-with-git-hub-actions-and-fastlane/

هذه المقالة هي الجزء الثاني من سلسلة مقالات حول أتمتة عملية نشر تطبيقات Flutter. في هذه المقالة، ستتعلم كيفية إعداد خط أنابيب توزيع فعال باستخدام Github action وfastlane لتطبيق Android.


كيفية إنشاء صفائح سفلية مخصصة في Flutter

https://onlyflutter.com/how-to-create-custom-modal-bottom-sheets-in-flutter/

تُعد الصفحات السفلية للنموذج طريقة رائعة لإضافة وظائف إضافية إلى الشاشة دون نقل المستخدم إلى جزء مختلف من التطبيق. في هذا المنشور، ستتعلم النصائح والحيل لمساعدتك في إنشاء الصفحات السفلية للنموذج المخصصة الخاصة بك بسهولة.


إنشاء تطبيق مرافق لـ Flutter على نظام WatchOS

https://medium.com/@Toglefritz/building-a-watchos-companion-app-for-flutter-08f80ea8cb1b/

قد يبدو إنشاء تطبيق مصاحب لـ WatchOS لمشروع Flutter الخاص بك بمثابة تنظيم محادثة بين عالمين مختلفين تمامًا. في هذه المقالة، سنستكشف بنية اتصال قابلة لإعادة الاستخدام تتيح تبادل البيانات ثنائي الاتجاه بين Flutter وWatchOS.


Flutter Riverpod 2.0: إدارة الحالة الحديثة وتوليد التعليمات البرمجية

https://medium.com/itnext/flutter-riverpod-2-0-modern-state-management-and-code-generation-ac82bd6dfb6a/

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


إتقان Get_it: دليل شامل لحقن التبعيات في Flutter

https://medium.com/simform-engineering/mastering-get-it-a-comprehensive-guide-to-dependency-injection-in-flutter-db99bfb305bb/

في هذه المقالة، ستنطلق في رحلتك لفهم Get_it وجميع ميزاته.

ما هو MVVM ولماذا يجب عليك استخدامه في Flutter؟

MVVM تعني Model-View-ViewModel. إنه نمط تصميم يساعدك على تنظيم الكود الخاص بك بشكل أفضل، مما يجعله:


أسهل للقراءة


أسهل للاختبار


أسهل للتوسع


دعونا نحللها خطوة بخطوة! 🧵👇


النموذج 🛠️ :

النموذج هو المكان الذي توجد فيه بيانات تطبيقك.


على سبيل المثال: إذا كنت تقوم ببناء تطبيق مهام، فقد يتضمن النموذج قائمة المهام والوظائف لإضافة/إزالة المهام.




عرض 👀 :

العرض هو واجهة المستخدم - ما يراه المستخدمون ويتفاعلون معه.


في Flutter، تشكل عناصر واجهة المستخدم الخاصة بك (مثل Scaffold، وListView، وما إلى ذلك) العرض.


لا ينبغي أن يحتوي على منطق عمل (على سبيل المثال، ما يحدث عند تحديد مهمة). حافظ على البساطة!


رسم توضيحي لهيكل الملف لتطبيق Todo البسيط





عرض النموذج 🌟 :

ViewModel هو الوسيط. فهو يربط النموذج (البيانات) بالعرض (UI) .


نموذج العرض:


يحتفظ بحالة التطبيق (على سبيل المثال، قائمة المهام).


يعرض البيانات على العرض بتنسيق يمكنه استخدامه.


يحتوي على منطق لتحديث النموذج عند تغير شيء ما.


فيما يلي كيفية ظهور MVVM أثناء العمل:


1 ⃣ النموذج: تحتوي فئة المهمة الخاصة بك على بيانات المهمة.

2 ⃣ العرض: تعرض الأداة الخاصة بك (ListView) قائمة بالمهام.

3 ⃣ ViewModel: يتتبع المهام التي تم إنجازها ويقوم بتحديث واجهة المستخدم عند حدوث أي تغيير.


لماذا يجب أن تهتم بـ MVVM؟ 🤷


كود التنظيف: كل جزء لديه دور واضح.


قابلة للاختبار: يمكنك اختبار المنطق في ViewModel دون لمس واجهة المستخدم.


قابلة للتطوير: تجعل إدارة التطبيقات الكبيرة أسهل مع نمو قاعدة التعليمات البرمجية لديك.


هل تريد تعلم MVVM في Flutter خطوة بخطوة؟ ابدأ بالخطوات الصغيرة:


حدد نموذجك (البيانات).


إنشاء عرض بسيط (UI) .


أضف ViewModel للتعامل مع الاتصال بينهما.


برمجة سعيدة! 💻✨

جبت لكم حاجات جديدة في برمجه Flutter

تغيير لون شريط الحالة وشريط التنقل في Flutter

https://onlyflutter.com/change-the-color-of-status-bar-and-navigation-bar-in-flutter/

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


المناقشة: نمط MVVM لتطبيقات Flutter

https://chooyan.hashnode.dev/discussion-mvvm-pattern-for-flutter-apps/

MVVM هو أحد أنماط الهندسة المعمارية الأكثر شيوعًا لتطوير تطبيقات الأجهزة المحمولة. في هذه المقالة، ستتعلم كيفية تطبيق MVVM على تطبيقات Flutter، وكيف "يتناسب" مع تطوير تطبيقات Flutter، أو ربما لا.


تشغيل تطبيق Flutter على أجهزة iOS: دليل خطوة بخطوة

https://flutterdesk.com/how-to-run-flutter-app-on-ios-devices/

قد يبدو تشغيل تطبيق Flutter على نظام التشغيل iOS أمرًا صعبًا في البداية، ولكن باتباع الخطوات الصحيحة، تصبح العملية سهلة ومباشرة. سيرشدك هذا الدليل إلى كل ما تحتاج إلى معرفته لتشغيل تطبيق Flutter على جهاز iPhone أو iPad.


Flutter مقابل React Native — أيهما أفضل لمشروعك في عام 2024؟

https://www.thedroidsonroids.com/blog/flutter-vs-react-native-comparison/

لكل من Flutter وReact Native إيجابيات وسلبيات. أو ربما تفكر في استخدام React Native لتطبيقك — وهذا جيد أيضًا. باتباع هذه المقالة، ستحصل على فكرة عن التقنية الأنسب لتطبيقك.


PullingManager: تحديثات بسيطة في الوقت الفعلي لـ Flutter

https://medium.com/@ayalon.idan/pullingmanager-simple-real-time-updates-for-flutter-4c414f6f7d94/

في هذه المقالة، ستتعرف على حزمة PullingManager وما هو موجود تحت الغطاء الذي يجعل تحديثات البيانات بسيطة وصديقة للبطارية.A

إعلانات Flutter مع Google AdMob

متطلبات

لمتابعة هذا، ستحتاج إلى حساب Google AdMob. AdMob هي منصة إعلانات Google للترويج للتطبيقات المحمولة وتحقيق الدخل منها. إذا لم يكن لديك حساب AdMob بالفعل، فيمكنك التسجيل بسهولة على موقع الويب الخاص بهم https://admob.google.com/home/get-started/ .

بعد التسجيل، حان الوقت لإضافة تطبيقك إلى AdMob. فيما يلي الخطوات اللازمة:

1. انتقل إلى قسم التطبيقات وانقر فوق إضافة التطبيق .
2. اختر المنصة وأخبر AdMob إذا كان تطبيقك مدرجًا في متجر التطبيقات المدعوم .
3. املأ اسم التطبيق الخاص بك، مع الأخذ في الاعتبار أنه يمكن تغيير اسم التطبيق ولكن لا يمكن حذف التطبيق نفسه أبدًا.
بعد إنشاء تطبيقك، يمكنك متابعة إعداد إعلانات Google للجوال.
البدء باستخدام إعلانات https://pub.dev/packages/google_mobile_ads/ Google للجوال
الطريقة الأكثر مباشرة لإضافة إعلانات إلى تطبيق Flutter الخاص بك هي استخدام حزمة إعلانات Google Mobile Ads . أنشأت Google هذه الحزمة لتبسيط عملية إضافة الإعلانات باستخدام https://pub.dev/packages/google_mobile_ads/ AdMob.

1. تثبيت إعلانات Google للجوال
عملية التثبيت بسيطة. ما عليك سوى تنفيذ الأمر التالي داخل مشروعك لإضافة حزمة إعلانات Google Mobile.
cmd,,
flutter pub add google_mobile_ads
,,
بمجرد تنفيذ الأمر، تحقق من ملفك pubspec.yamlبحثًا عن التبعيات المضافة. يجب أن ترى حزمة إعلانات Google Mobile مضمنة في قسم التبعيات، مثل هذا:
cmd,,
dependencies:
  flutter:
    sdk: flutter
  google_mobile_ads: ^5.0.0
,,
2. إضافة معرف التطبيق من Google AdMob
الآن بعد أن قمنا بتثبيت الحزمة، يتعين علينا ربط تطبيق Flutter الخاص بنا بـ AdMob. يمكن القيام بذلك عن طريق إضافة معرف التطبيق من AdMob إلى تطبيقنا. يمكن العثور على معرف التطبيق في قسم تطبيقات AdMob ويمكن نسخه بسهولة بالنقر فوقه. تأكد من عدم مشاركة معرف التطبيق مع أي شخص.
بعد نسخ معرف التطبيق ، يمكننا إضافته داخل تطبيقنا. يختلف التنفيذ وفقًا للمنصة. راجعها أدناه:

بالنسبة لنظام Android، نحتاج إلى إضافة إدخال بيانات تعريفية جديد داخل android/app/src/main/AndroidManifest.xmlالملف. تأكد من وضع معرف التطبيق<application> داخل العلامة وليس داخل <activity>العلامة.
cmd,,
<application>
  ...
  <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
             android:value="ca-app-pub-????????????????~??????????"
   />
</application>
,,
لا تنسى استبدال علامات الاستفهام في القيمة بمعرف التطبيق الخاص بك .

بالنسبة لنظام iOS ، نحتاج إلى إضافة إدخال داخل ios/Runner/Info.plistالملف. يمكن القيام بذلك عن طريق إضافة مفتاح جديد داخل <dict>العلامة. استبدل النص الموجود في العلامة بمعرف التطبيق<string> الخاص بك .
cmd,,
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-????????????????~??????????</string>
,,
بعد هذه التغييرات، يجب أن يكون التطبيق متصلاً بـ AdMob.

3. تغيير minSdkVersion إلى 21
تتطلب حزمة إعلانات Google Mobiles منا تغيير minSdkVersion إلى أو أعلى. يمكن إجراء 21التغيير داخل ملف مشروعنا.minSdkVersionandroid\app\build.gradle

cmd,,

defaultConfig {
    applicationId "com.example.ads_with_google_admob"
    minSdkVersion 21
    targetSdkVersion flutter.targetSdkVersion
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}

,,

تنفيذ AdBanner من Google في Flutter
بعد تثبيت الحزمة وإضافة معرف التطبيق الخاص بنا إلى تطبيق Flutter، حان الوقت الآن لتنفيذ إعلاننا الأول. في هذا المنشور، سنقوم بإنشاء إعلان بانر. عادةً ما يتم عرض إعلانات البانر في أسفل التطبيق.

يعتبر الكود الأولي للمشروع بسيطًا جدًا، حيث يتم كتابة كل شيء داخل main.dartالملف.
cmd,,

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Column(
          children: [
            const Expanded(child: SizedBox.shrink()),
          ],
        ),
      ),
    );
  }
}

,,

نظرًا لأن إعلان البانر سيُعرض في الأسفل، فلدينا أداة Columnداخل Scaffold. داخل Columnالأداة، لدينا Expandedأداة يمكنك استبدالها بسهولة بالأداة (الأدوات) المرغوبة حسب اختيارك. في الوقت الحالي، تحتوي على SizedBox.shrink()أداة كعنصر نائب.

إضافة BannerAd
لإضافة أي إعلان باستخدام حزمة إعلانات Google Mobile Ads، يتعين علينا التأكد من تهيئة نموذج إعلانات MobileAds. يجب عليك دائمًا القيام بذلك عند بدء تشغيل التطبيق.

في الكود أدناه نبدأ باستيراد حزمة إعلانات Google Mobile. داخل الدالة mainنستدعي WidgetsFlutterBinding.ensureInitialized();متبوعًا بـ MobileAds.instance.initialize();. يجب استدعاؤها بهذا الترتيب لأنه قبل MobileAdsتهيئة المثيل، يتعين علينا التأكد من WidgetsFlutterBindingتهيئة .

cmd,,

import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  BannerAd? _bannerAd;

  @override
  void initState() {
    super.initState();
    _createBannerAd();
  }

  Future<void> _createBannerAd() async {
    _bannerAd = BannerAd(
      adUnitId: 'ca-app-pub-3940256099942544/6300978111',
      size: AdSize.banner,
      request: const AdRequest(),
      listener: BannerAdListener(
        onAdLoaded: (Ad ad) {},
        onAdFailedToLoad: (Ad advertisement, LoadAdError error) =>
            advertisement.dispose(),
      ),
    )..load();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Column(
          children: [
            const Expanded(child: SizedBox.shrink()),
            if (_bannerAd != null)
              Center(
                child: SizedBox(
                  width: _bannerAd?.size.width.toDouble(),
                  height: _bannerAd?.size.height.toDouble(),
                  child: AdWidget(ad: _bannerAd!),
                ),
              ),
          ],
        ),
      ),
    );
  }
}

,,

بعد التهيئة، نكون مستعدين لاستخدام BannerAd. يمكن عرض كل إعلان من حزمة إعلانات Google Mobile باستخدام AdWidget. ومع ذلك، نحتاج إلى ضمان تحميل الإعلان قبل إضافته إلى AdWidget.

لهذا السبب، نستخدم initStateالدالة التي تستدعي _createBannerAdالدالة. داخل _createBannerAdالدالة، نقوم بتعيين مثيل جديد للمتغير BannerAdالخاص بنا _bannerAd.

فئة BannerAd
BannerAdيتم تعيين المعرف الذي adUnitIdفي هذا المثال على معرف وحدة الإعلان الاختباري المخصصة لنظام Android. ولكن يمكن أيضًا استبدال هذا المعرف بمعرف وحدة الإعلان الاختباري المخصصة لنظام iOS.

يحتوي كل إعلان من إعلانات Google Mobile Ads SDK على وحدة اختبار مخصصة. يمكنك الاطلاع على معرفات وحدة اختبار الإعلانات المخصصة لنظامي التشغيل Android وiOS أدناه:

android 
ca-app-pub-3940256099942544/6300978111
iOS
ca-app-pub-3940256099942544/2934735716

علاوة على ذلك، يتم تحديد حجم الإعلان باستخدام AdSize.banner. لدينا الطلب والمستمع الذي يمكن استخدامه لتنفيذ الإجراءات كلما تم تحميل الإعلان بنجاح أو لا.

وأخيرًا، نستدعي load()الوظيفة باستخدام تدوين الشلال (..)، والذي يسمح لنا باستدعاء الوظيفة على الكائن دون الحاجة إلى إنشاء متغير منفصل له.

الآن وبعد BannerAdتحميل الملف بنجاح، لا يزال يتعين علينا إضافته إلى ملفنا AdWidget. يتم ذلك عبر الإنترنت 52. يمكنك أن ترى أننا نستخدم أيضًا عبارة if لإظهار فقط AdWidgetعندما _bannerAdلا يكون المتغير null.

سيؤدي تشغيل الكود أعلاه إلى ما يلي:
كما ترى، قمنا بتحميل إعلان البانر الأول بنجاح. ومع ذلك، لم نكن راضين تمامًا بعد، لأن إعلان البانر لا يستخدم العرض الكامل لشاشتنا.
طلب حجم AdBanner
للتأكد من أن إعلان البانر الخاص بنا يشغل العرض الكامل، يمكننا طلب الحجم باستخدام getCurrentOrientationAnchoredAdaptiveBannerAdSizeالدالة. تعيد هذه الدالة حجم الإعلان بالعرض المحدد والارتفاع المحسن من قِبل Google لإنشاء ملف BannerAd.

cmd,,

import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  BannerAd? _bannerAd;

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    _createBannerAd();
  }

  Future<void> _createBannerAd() async {
    await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
      MediaQuery.sizeOf(context).width.truncate(),
    ).then((AnchoredAdaptiveBannerAdSize? size) => _bannerAd = BannerAd(
          adUnitId: 'ca-app-pub-3940256099942544/6300978111',
          size: size ?? AdSize.banner,
          request: const AdRequest(),
          listener: BannerAdListener(
            onAdLoaded: (Ad ad) {},
            onAdFailedToLoad: (Ad advertisement, LoadAdError error) =>
                advertisement.dispose(),
          ),
        )..load());
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Column(
          children: [
            const Expanded(child: SizedBox.shrink()),
            if (_bannerAd != null)
              Center(
                child: SizedBox(
                  width: _bannerAd?.size.width.toDouble(),
                  height: _bannerAd?.size.height.toDouble(),
                  child: AdWidget(ad: _bannerAd!),
                ),
              ),
          ],
        ),
      ),
    );
  }
}

,,

يتعين علينا استدعاء getCurrentOrientationAnchoredAdaptiveBannerAdSizeالدالة قبل إنشاء ملف . وتحميل ملف BannerAd. لذلك ننتظر الدالة ونستخدم thenمعاودة الاتصال لتعيين ملف . BannerAdللمتغير _bannerAd. لاحظ أن الحجم الذي يتم إرجاعه من الدالة قابل للعدم. ولهذا السبب، ما زلنا نريد أن يكون AdSize.bannerهذا هو البديل.

يتعين علينا أيضًا تغيير initStateالوظيفة بالوظيفة didChangeDependenciesلتجنب الوقوع في مشكلات البناء.

مع تطبيق هذه التغييرات، سنحصل على إعلان البانر التالي:
يبدو هذا أفضل بكثير ويمكننا الآن الانتقال إلى الخطوة الأخيرة، وهي عرض إعلانات البانر الحقيقية.

إنشاء وحدة إعلانية جديدة لعرض الإعلانات باستخدام Google AdMob

حتى الآن، كنا نستخدم وحدات الإعلانات الاختبارية المخصصة لعرض الإعلانات باستخدام Google AdMob. ومع ذلك، نريد استخدام معرف وحدة الإعلان الخاصة بنا . لذلك، يتعين علينا إنشاء وحدة إعلانية جديدة في AdMob.

1. إنشاء وحدة إعلانية بانر في AdMob
1. في قسم التطبيقات في AdMob، يتعين علينا تحديد التطبيق الخاص بنا، ثم النقر على زر إضافة وحدة إعلانية أو الانتقال إلى قسم وحدات الإعلان .
2. بمجرد النقر على الزر، يتعين علينا تحديد تنسيق الإعلان، والذي سيكون الشعار في حالتنا.
3. بعد تحديد التنسيق، يتعين علينا تسمية إعلان البانر الخاص بنا، وتأكد من اختيار اسم وصفي لتسهيل العثور عليه. يمكنك إلقاء نظرة على الإعدادات المتقدمة، ومع ذلك، يمكن دائمًا تغييرها لاحقًا. انقر فوق إنشاء وحدة إعلانية لإنهاء عملية الإنشاء.
4. الآن بعد إنشاء وحدة الإعلان الخاصة بنا، يمكنك نسخ المعرف الثاني الذي تم تقديمه. المعرف الأول المقدم هو معرف التطبيق ، والذي أضفناه بالفعل إلى تطبيقنا.
ضع في اعتبارك أن الأمر قد يستغرق بعض الوقت قبل أن تصبح وحدة الإعلان الخاصة بك جاهزة للاستخدام. يذكر AdMob أن الأمر قد يستغرق ما يصل إلى ساعة.


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

يوضح ملف GIF أدناه كيفية الحصول على معرف الإعلان على محاكي Android . هذا لأغراض العرض التوضيحي لأن كل محاكي يتم التعرف عليه تلقائيًا كجهاز اختبار.
الخطوات المتبعة في GIF هي:

  1. انتقل إلى الإعدادات.
  2. ابحث عن "الإعلانات".
  3. انقر على الإعلانات .
  4. انقر فوق الإعلانات مرة أخرى.
  5. يتم عرض معرف الإعلان في منتصف الشاشة.
وبطبيعة الحال، سيكون هذا مختلفًا بالنسبة للمنصات والأجهزة الأخرى.

3. استخدام وحدة إعلانات البانر في تطبيقنا
في mainوظيفتنا نريد تحديث تكوين الطلب باستخدام updateRequestConfigurationالوظيفة. تأخذ هذه الوظيفة RequestConfigurationوداخل هذا التكوين، يمكننا إضافة مجموعة من معرفات الإعلان .

cmd,,

import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  await MobileAds.instance.updateRequestConfiguration(

    RequestConfiguration(

      testDeviceIds: [

        '2793ca2a-5956-45a2-96c0-16fafddc1a15',

      ],

    ),

  );


  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  BannerAd? _bannerAd;

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    _createBannerAd();
  }

  Future<void> _createBannerAd() async {
    await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
      MediaQuery.sizeOf(context).width.truncate(),
    ).then((AnchoredAdaptiveBannerAdSize? size) => _bannerAd = BannerAd(
      adUnitId: 'ca-app-pub-????????????????/??????????',

      size: size ?? AdSize.banner,
      request: const AdRequest(),
      listener: BannerAdListener(
        onAdLoaded: (Ad ad) {},
        onAdFailedToLoad: (Ad advertisement, LoadAdError error) =>
            advertisement.dispose(),
      ),
    )..load());
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Column(
          children: [
            const Expanded(child: SizedBox.shrink()),
            if (_bannerAd != null)
              Center(
                child: SizedBox(
                  width: _bannerAd?.size.width.toDouble(),
                  height: _bannerAd?.size.height.toDouble(),
                  child: AdWidget(ad: _bannerAd!),
                ),
              ),
          ],
        ),
      ),
    );
  }
}

,,

لإضافة معرف وحدة الإعلان الجديدة، يتعين علينا استبدال معرف وحدة الإعلان المخصصة بالمعرف الذي أنشأناه. لقد قمت بإخفاء معرفي لأن هذه المعرفات لا ينبغي مشاركتها. بمجرد إجراء التغيير، يجب أن ترى إعلانًا مثل الإعلان الموضح أدناه:
تأكد من ذكر "Test Ad" على أجهزة الاختبار الخاصة بك. وإلا، فلن تضف معرف الإعلان الصحيح إلى testDeviceIdsالمصفوفة. أما على جميع الأجهزة الأخرى، فسوف تعرض إعلانات فعلية.

خاتمة
في هذه المقالة، قمنا بنجاح بتنفيذ إعلانات باستخدام Google AdMob من خلال عرض إعلان بانر باستخدام حزمة إعلانات Google Mobile. لقد تعلمت كيفية ربط Google AdMob بتطبيق Flutter الخاص بك. وفي الوقت نفسه، قمت أيضًا بإنشاء وحدة إعلانية أولى واستخدمتها لعرض إعلان فعلي. تذكر أنه يمكنك دائمًا استخدام وحدات الإعلانات المخصصة من Google للاختبار.

ملاحظة لبعض مستخدمي تطبيق اعلام تقني: إذا لم تشاهد الصور، انتقل إلى المتصفح لمشاهدة كل شيء.