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

مشكلة جديدة بتواجه مطوري Flutter مع Google Play

 


من الشهر اللي مشي جوجل بدات تشترط ان التطبيقات تدعم 16KB memory page size

يعني ببساطة اي تطبيق مش compatible مع التغيير هذا بيترفض في المراجعة بداية من نوفمبر 2025


📌 ليش السبب؟

 • ان Flutter بتعتمد بشكل اساسي على native code سواء في الـ engine نفسه او الـ plugins

 • النسخ القديمة كانت مبنية على 4KB page size اي مكتبة Native (C/C++) معمولة hardcode على 4KB بتدخل في مشاكل او crashes على اجهزة Android 15 وما بعدها


المتاثرين الاكبر:

 • اللي بيستخدموا Native plugins (Ads, Analytics, Camera, ML … الخ)

 • اللي كاتب كود C/C++ مخصص

 • المشاريع اللي عادها واقفة على Flutter/NDK/AGP قديمة


📌 ليش التحول من 4KB لـ 16KB؟

 • اداء اسرع: التطبيقات تفتح اسرع لحد 30% والكاميرا اسرع

 • ذاكرة افضل: تقليل الـ fragmentation خصوصا للتطبيقات الثقيلة

 • بطارية اطول: ادارة ذاكرة محسنة = استهلاك طاقة اقل


✅ الحل:

 • حدث Flutter لاخر نسخة (يدعم 3.24 او اعلى) : بلاش 3.27 , 3.29 علشان فيهم مشاكل

 • استخدم NDK R28 او اعلى

 • اشتغل بـ Gradle 8.5.1+

 • راجع اصدارات الPlugins اللي مستخدمها في ملف الyaml

 • راجع ملف build.gradle وتاكد ان الـ AGP والـ NDK متوافقين

 • جرب على Android 15 Emulator او لو عندك موبايل شغال Android 15 جربه


نفس تضمن ان اي مشكلة compatibility (زي crashes او Native libraries مش متوافقة) تظهر بدري قبل ما توصل للمستخدمين


التغيير هذا مش مجرد تحديث عادي… هذا شرط اساسي من Google Play

ابدا جهز مشروعك جرب على Android 15 وحدث الـ Flutter & NDK قبل ما تدخل في دوامة رفض الريفيو

اصيب جهازك بفيروس الفدية (Ransomware)؟



لا تعرف هل هناك امل لاستعادة ملفاتك ام لا؟


في هذا 🧵 سنكتشف:

🔎 كيف تحدد نوع الفدية وسلالتها

🛠️ اين تجد ادوات فك التشفير المجانية

⚠️ متى لا يوجد حل الا بالنسخ الاحتياطية

📊 كيف تستفيد من ادوات التحليل لردع الهجوم مستقبلا


🕵️‍♂️ لو عندك ملف مشفر اول خطوة تحدد سلالة الفدية

استخدم اداة ID Ransomware:


id-ransomware.malwarehunterteam.com


✍️ ترفع ملف مشفر + رسالة الفدية والاداة تخبرك باسم العائلة (Locky, STOP/Djvu, Ryuk…)


ماذا بعد التعرف على السلالة?


✔️ لو السلالة معروفة ابحث في مشروع No More Ransom عن اداة فك التشفير:


nomoreransom.org/ar/index.html


مئات الادوات متاحة مجانا لتفكيك عائلات فدية قديمة وشائعة


متى لا يوجد حل ؟


⚠️ لو السلالة حديثة او التشفير قوي جدا (AES-256 + مفاتيح RSA) غالبا لا يوجد فك تشفير عام

هنا يبقى الحل:

🔹 استعادة نسخة احتياطية

🔹 او انتظار اصدار اداة فك من فرق البحث الامني


– افضل ممارسات قبل وبعد الاصابة


💡 للتقليل من اثار فيروس الفدية:

🔒 نسخ احتياطية دورية (Offline/Cloud امنة)

🔒 تحديث الانظمة باستمرار

🔒 عدم فتح مرفقات مجهولة

🔒 تشغيل EDR/AV لمراقبة السل

لمسة UI/UX design رؤية علامة التبويب النشطة.



اللي يظهر في الصورة واجهة داكنة (Dark UI) فيها علامة تبويب نشطة (active tab) مميزة بإضاءة خفيفة خلف الأيقونة (glow effect).

في Figma تقدر تعمل مثل هذا الـ Active State بخطوات بسيطة:


✅ الخطوات:

1. إنشاء قائمة التبويبات

ارسم مستطيل لكل عنصر (مثلاً: Shorts – Calendar).

أضف أيقونة + نص داخل كل عنصر.

ضع العناصر في Auto Layout (عمودي).

2. تصميم الحالة العادية (Default)

خلي الخلفية داكنة (مثلاً #1E1E1E).

النص والأيقونة باللون الرمادي الفاتح.

3. تصميم الحالة النشطة (Active Tab)

أضف خلفية أغمق قليلاً مع Border Radius صغير.

أضف Glow Effect (Shadow داخلي أو خارجي بلون أخضر فاتح أو أي لون للبراند).

غيّر لون الأيقونة + النص للون أوضح (أبيض أو أخضر).

4. استخدام Variants

اعمل عنصر (Component) للتبويب.

ضيف له حالتين (Variants):

Default

Active

هكذا تقدر تبدل بسهولة بين الحالتين أثناء التصميم.

5. إظهار التبويب النشط

لما تختار صفحة معينة (مثلاً Shorts)، غيّر الـ Variant إلى “Active”.

باقي التبويبات تظل بالحالة العادية.


💡 نصيحة رهيبة:

تقدر تستخدم Interactive Components في Figma، بحيث لما تعمل Prototype، يظهر التغيير التلقائي عند الضغط (Click → Change to Active).

‏عملية احتيال تبديل بطاقة SIM



‏عملية الاحتيال عن طريق تبديل بطاقة SIM هي عندما يتظاهر شخص ما بأنه أنت ويحصل على رقم هاتفك من شركة الهاتف الخاصة بك.


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


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


‏كيف تعمل عملية الاحتيال الخاصة بتبديل بطاقة SIM:


‏1. يحصل المحتال على معلوماتك الشخصية من مواقع الويب العامة ووسائل التواصل الاجتماعي والهندسة الاجتماعية...


‏٢. يتصل المحتال بشركة الاتصالات الخاصة بك ويتظاهر بأنك أنت. يطلب نقل رقم هاتفك إلى شريحة SIM جديدة يملكها.


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


‏٤. تنقل شركة الهاتف رقم هاتفك إلى شريحة SIM الخاصة بالمحتال. ستفقد الخدمة على هاتفك، وسيحصل المحتال على مكالماتك ورسائلك النصية ورموزك.


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


‏كيفية تجنب عملية الاحتيال المتعلقة بتبديل بطاقة SIM:


‏1. لا تشارك معلوماتك الشخصية، مثل رقم هاتفك أو عنوانك أو رقم الضمان الاجتماعي، على مواقع الويب العامة أو وسائل التواصل الاجتماعي.


‏٢. أنشئ رقم تعريف شخصي (PIN) أو كلمة مرور لحسابك على الهاتف المحمول لا يعرفها أحد سواك. لا تستخدم معلومات يسهل تخمينها، مثل تاريخ ميلادك أو عنوانك.


‏3. لا ترسل كلمة المرور الخاصة بك لمرة واحدة (OTP) إلى أي شخص.


‏4. استخدم التطبيقات أو المفاتيح المادية بدلاً من الرسائل النصية لحساباتك عبر الإنترنت التي تتطلب خطوتين لتسجيل الدخول. يمكن لأي شخص لديه رقم هاتفك سرقة الرسائل النصية.


‏5. تحقق من هاتفك وكشوف حساباتك المصرفية بشكل متكرر بحثًا عن أي نشاط غريب.



الـدولة التي تستحوذ على التكنولوجيا وتحولة الى سلاح ذو حدين .



تنبية الدول المستهدفة اللتي تستخدم هواتف Samsung او apple استخدم الهواتف بحذر كل تحديث يحصل هوا حمايتك من القرصنة العادية لكنه يسمح لمالكي شركات الهواتف الوصول الى كامل معلوماتك وبكل سهولة التحديث يتم حبك خصائص والمميزات للوصول الى المعلومات اكثر وأكثر الى المزيد من التفاصيل المراد حفظها يتم شبك كل الأشخاص (من والى) كل تحديث انت المستهدف (قليل لاجلك وكثير عليك) 

القليل من المطورين الذي تم فصلهم بعد اعتراضهم سياسة الخصوصية والعنصرية الكثير منا يعرف والان ٩٩,٩٩٪؜ لا تعلم من هم المطورون الذين يعملون في هذة الشركات باب 🚪 مغلق .. حتى انا اشووووف صعوبة في حل المشكله لان اصبح الصغار والكبار يستخدموا الهواتف اكثر من اي اجهزة اخرى شريحة تتبع متكامله ١٠٠/١٠٠ ⚠️  

وتبقى الحلول الجزئية مثل إغلاق الكاميرا والميكروفون او عدم منح الصلاحيات غير مضمونة النتائج مع التحديثات القسرية التي تعيد فتح الابواب المغلقة بذريعة "تحسين الأداء".

الحل الجذري الوحيد هو تطوير انظمة تشغيل وهواتف محلية مستقلة ذات كود مفتوح وخاضعة لرقابة وطنية صارمة كما عملت الصين 🇨🇳 بنظام هرموني لان الأمن السيبراني هو جزء لا يتجزا من الامن القومي في عصرنا الحديث.

نحن لا نتحدث عن نظرية مؤامرة بل عن واقع (الجغرافيا السياسية) حيث البيانات هي النفط الجديد واكثر قيمة منه.


#السقاف_فون

#السقاف_فونsajafFon

#الامن_السيبراني 

#فلسطين

#مصر

#الاردن

#السعودية

#العراق

#ليبيا

#الجزائر

#تونس

#المغرب

#السودان

#ايران

#عمان

#الكريت

#لبنان 

#اليمن

#سوريا

🐧 مواقع لتعلم لينكس مجانًا

 


🐧 مواقع لتعلم لينكس مجانًا


1. NixCraft

 2. Tecmint

 3. Linuxize

 4. It’s FOSS

 5. Linux Hint

 6. Linuxopsys

 7. Linux Journey

 8. Linux Academy

 9. Linux Survival

 10. Linux Command

 11. Ryan’s Tutorials

 12. Linux Handbook

 13. Linux FoundationX

 14. LabEx Linux for Noobs

 15. Guru99 Linux Tutorial Summary

 16. Conquering the Command Line

 17. Intellipaat Linux Tutorial for Beginners

 18. The Debian Administrator’s Handbook

‏للمهتمين بأمن الويب


 

‏⁦‪hacksplaining.com/lessons‬⁩


‏ موقع Hacksplaining يشرح لك أشهر الثغرات اللي تكون في تطبيقات الويب مثل SQL Injection و XSS و CSRFويخليك تجربها بنفسك بشكل تفاعلي وآمن عشان تفهم كيف تصير وكيف تحمي تطبيقك منها

‏يدعم لغات كثيرة مثلPHP، Python، Java وغيرها

‏🧑‍💻 PicoCTF by Carnegie Mellon



‏🎓 ⁦‪picoctf.org‬⁩ تحديات تفاعلية من جامعة كارنيجي ميلون للمبتدئين!


‏يشمل:

‏•Hacking (الاختراق الأخلاقي)

‏•Web Security (أمن المواقع)

‏•Malware Analysis (تحليل البرمجيات الخبيثة)

‏•Incident Response (استجابة للحوادث)

‏•CTF Labs (مسابقات وتحديات ممتعة)


‏💡 واجهة مبسطة + تحديات مدروسة + شرح مفصل

‏📚 مناسب للطلاب والمبتدئين!

‏هذه هي الطريقة التي يمكنك بها إنشاء "التدرجات"

 


“أفضل 7 أدوات للقرصنة (Hacking Gadgets)”



“أفضل 7 أدوات للقرصنة (Hacking Gadgets)”


وتعرض أهم الأدوات المستخدمة عادةً في مجال اختبار الاختراق والأمن السيبراني


(أحيانًا تُستخدم بطرق غير قانونية أيضاً).


الأدوات السبعة المذكورة بالصورة:

 1. Raspberry Pi – كمبيوتر صغير ورخيص يمكن استخدامه لتجارب البرمجة والهندسة.

 2. Rubber Ducky – شبيه بذاكرة USB لكنه يحقن أوامر سريعة في النظام.

 3. Flipper Zero – جهاز متعدد الوظائف يتعامل مع إشارات RFID, NFC, الأشعة تحت الحمراء إلخ.

 4. LAN Turtle – أداة اختبار شبكات خفية يتم توصيلها عبر USB.

 5. Wi-Fi Pineapple – أداة قوية لاعتراض وتحليل حركة الشبكة عبر هجمات MITM.

 6. Alfa Network Cards – كروت Wi-Fi عالية الأداء لالتقاط وإرسال الحزم.

 7. Ubertooth One – جهاز مفتوح المصدر لتحليل إشارات Bluetooth.

‏كيف يعمل التصيد الاحتيالي عبر البريد الإلكتروني attacker



🔴 خطوات التصيد الاحتيالي عبر البريد الإلكتروني:

 1. المهاجم (Attacker)

 • يقوم بإنشاء رسالة بريد إلكتروني مزيفة تبدو وكأنها من مصدر شرعي مثل: بنك، منصة تواصل اجتماعي، أو شركة معروفة.

 2. البريد الاحتيالي (Phishing E-Mail)

 • يحتوي البريد عادةً على رابط ضار أو ملف مرفق خبيث.

 • غالبًا يتم إضافة عنصر الاستعجال (Urgency) مثل: “يجب تحديث حسابك فورًا” لجعل الضحية تتصرف بسرعة بدون تفكير.

 3. المستخدم (User)

 • يتلقى البريد وينخدع به.

 • عند النقر على الرابط، يتم توجيهه إلى موقع احتيالي (Phishing Website) يشبه الموقع الحقيقي.

 4. الموقع الاحتيالي (Phishing Website)

 • يطلب من المستخدم إدخال بيانات حساسة مثل: اسم المستخدم، كلمة المرور، أو معلومات بطاقة الائتمان.

 • المهاجم يحصل على هذه البيانات مباشرة.

 5. استخدام المعلومات (Real Website)

 • المهاجم يستغل بيانات الضحية للدخول إلى الحسابات الحقيقية (بنك، بريد إلكتروني، شبكات اجتماعية…) وسرقة المعلومات أو الأموال.


‼️ 


🛡 كيف تحمي نفسك من التصيد الاحتيالي؟

 • تحقق دائمًا من عنوان البريد الإلكتروني للمرسل.

 • لا تنقر على روابط أو تفتح مرفقات مشبوهة.

 • تأكد أن الموقع يبدأ بـ HTTPS.

 • فعّل المصادقة الثنائية (2FA).

 • استخدم برامج مكافحة الفيروسات والتصفح الآمن.

‏أتقن Figma بهذه الاختصارات.



‏Hybrid Analysis – تحليل البرمجيات الخبيثة



‏✔️ مقدمة 


‏🧵 كيف تحلل ملف مشبوه وتربطه بحملات خبيثة أخرى؟

‏سنستخدم أداتين مجانيتين: Hybrid Analysis (لتحليل السلوك) و ThreatCrowd (لربط المؤشرات).

‏مثال عملي يبدأ من ملف مجهول وينتهي بخريطة علاقات للهجوم.


‏الخطوة الأولى : فحص الملف


‏1️⃣ نرفع الملف المشبوه على Hybrid Analysis:

‏🌐 ⁦ hybrid-analysis.com⁩


‏الخدمة تشغّل الملف في بيئة Sandbox معزولة وتسجل كل تحركاته:

‏🔹 العمليات التي ينشئها

‏🔹 الاتصالات بالشبكة

‏🔹 الملفات التي يعدلها

‏🔹 مؤشرات الاختراق (IoCs)


‏2️⃣ – مثال من التقرير


‏📝 في تقريرنا، لاحظنا أن الملف يتصل بعنوان IP: 203.0.113.55 ويطلب دومين مشبوه update-secure[.]net

‏هذه تعتبر مؤشرات اختراق مهمة للتحقيق.

‏(Hybrid Analysis يوفر لك هذه البيانات تلقائيًا)


‏3️⃣ – الخطوة 2: ربط المؤشرات


‏نأخذ الـ IP ونبحث عنه في ThreatCrowd:


‏🌐 ⁦ threatcrowd.org⁩


‏نضع الـ IP في البحث ونشاهد النتيجة:

‏🔹 دومينات مرتبطة بنفس الـ IP

‏🔹 ملفات خبيثة استخدمته

‏🔹 عناوين بريد مرتبطة بحملات سابقة


‏4️⃣ – خريطة العلاقات


‏🕵️‍♂️ ThreatCrowd يعرض لك Graph يربط كل هذه المؤشرات.


‏الآن نعرف أن الـ IP جزء من بنية تحتية لهجوم أكبر، مع أكثر من 5 دومينات و3 عينات برمجيات خبيثة.


‏5️⃣ – النتيجة


‏📌 بالجمع بين تحليل السلوك (Hybrid Analysis) وربط المؤشرات (ThreatCrowd) 


‏حصلنا على:

‏✔️ قائمة دومينات خبيثة

‏✔️ روابط بين حملات مختلفة

‏✔️ فهم أوسع للبنية التحتية للهجوم

‏هذه الطريقة تُستخدم في Threat Intelligence والتحقيقات الرقمية.


‏6️⃣ – الختام


‏⚠️ ملاحظة: لا تشغّل الملفات المشبوهة على جهازك مباشرة.

‏أستخدم بيئة افتراضية أو خدمات تحليل أونلاين.

️ تحذير هام




📌 لا تشتري اي هاتف بدون علبته الاصلية من شخص لا تعرفه.

📌 لا تجرب شريحة في هاتف ليس لك حتى لو وجدته.

📌 لا تدخل اي شريحة غير شريحتك في هاتفك.

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


🚫 قد يكون الهاتف او الشريحة مستخدمين في جريمة سرقة قتل تزوير او المشاركة في نشاط اجرامي.


⚖️ كل يوم تعالج عشرات القضايا من هذا النوع.

🛡️ الرجاء الحذر وحماية نفسك من اي تورط قانوني.



‏طــور مهاراتك في استخبارات المصادر المفتوحة (OSINT).



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


‏⁦‪start.me/p/wMdQMQ/tools‬⁩

اقدم لكم شي 23 اداة لاختراق تطبيقات الويب:


1. Burp Suite - Framework.

2. ZAP Proxy - Framework.

3. Dirsearch - HTTP bruteforcing.

4. Nmap - Port scanning.

5. Sublist3r - Subdomain discovery.

6. Amass - Subdomain discovery.

7. SQLmap - SQLi exploitation.

8. Metasploit - Framework.

9. WPscan - WordPress exploitation.

10. Nikto - Webserver scanning.

11. HTTPX - HTTP probing.

12. Nuclei - YAML based template scanning.

13. FFUF - HTTP probing.

14. Subfinder - Subdomain discovery.

15. Masscan - Mass IP and port scanner.

16. Lazy Recon - Subdomain discovery.

17. XSS Hunter - Blind XSS discovery.

18. Aquatone - HTTP based recon.

19. LinkFinder - Endpoint discovery through JS files.

20. JS-Scan - Endpoint discovery through JS files.

21. GAU - Historical attack surface mapping.

22. Parameth - Bruteforce GET and POST parameters.

23. truffleHog - Find credentials in GitHub commits.

‏🔒 تحتاج ترسل كلمة مرور او معلومة حساسة بسرعة؟



‏استخدم ⁦‪privnote.com‬⁩


‏اكتب رسالتك ↩️ انسخ الرابط ↪️ وبعد اول فتح تدمر الرسالة تلقائيًا (مرة واحدة فقط).

‏لا تسجيل ولا تعقيد. 


⚠️ ملاحظة هذا للاستخدام العادي مش للأشياء السرية للغاية ⚠️ 

شركة Figma تفتح الباب للجميع مع أداة Make المجانية لتوليد المواقع! ⚡️



أعلنت Figma عن إتاحة أداة Make لتوليد المواقع بشكل مجاني للجميع! هذه الأداة المدعومة بالذكاء الاصطناعي، والتي تعتمد على نموذج Claude Sonnet 4، تتيح لك إنشاء مواقع وخدمات إلكترونية بسهولة من خلال وصف فكرتك باللغة الطبيعية، دون الحاجة إلى كتابة أي كود برمجي. 🚀


ما الذي يمكن لـ Make فعله؟ 🔍

- توليد نماذج أولية: يمكنك إنشاء نموذج أولي لموقعك وتخصيصه حسب تصميمك الخاص. 🎨

- تحرير مرن: يتيح لك تعديل كل عنصر على الصفحة بسهولة. ✏️

- عمل مباشر في المتصفح: لا حاجة لتثبيت أي برامج، كل شيء يعمل عبر الإنترنت. 🌐

- استضافة داخل Figma: يمكنك استضافة موقعك مباشرة من خلال منصة Figma. 🖥️

‏كيف تتم هجمات فيروسات الفدية

 


أنواع الهجمات السيبرانية all attack



1. التصيد الاحتيالي 

2. Man-in-the- Middle Attack 

3. البرمجة النصية عبر المواقع (XXS)

4. حقن SQL 

5. هجوم DDoS 

6. هجوم كلمة المرور 

7. الهجمات المدعومة بالذكاء الاصطناعي

8. هجمات الفدية الخبيثة

9. هجوم التنصت

لإنشاء تأثير التوهج (Glow) والزجاج (Glassmorphism) في فيجما (Figma)

 


لإنشاء تأثير التوهج (Glow) والزجاج (Glassmorphism) في فيجما (Figma) لتصميم  (UI/UX)، يمكنك استخدام مجموعة من التأثيرات والخصائص. إليك الخطوات بالتفصيل لكل منهما:

1. كيفية عمل تأثير التوهج (Glow Effect)

تأثير التوهج يعتمد بشكل أساسي على استخدام خاصية الظل الداخلي (Inner Shadow) أو الظل الخارجي (Drop Shadow) مع إعدادات معينة.

الخطوات:

إنشاء الشكل: ابدأ بإنشاء الشكل الذي تريده أن يتوهج (مثل زر، أيقونة، أو نص).

إضافة تأثير الظل (Effect):

حدد الشكل.

في لوحة الخصائص على اليمين (Properties panel)، ابحث عن قسم "Effects".

انقر على علامة "+" لإضافة تأثير جديد. بشكل افتراضي، سيظهر "Drop Shadow".

تعديل إعدادات الظل للتوهج:

Drop Shadow (توهج خارجي): X و Y: اجعلها "0" ليكون التوهج متساوياً حول الكائن.

Blur (التمويه): زد قيمة التمويه بشكل كبير (مثلاً، 20-50 أو أكثر حسب الحجم المرغوب للتوهج).

Spread (الانتشار): يمكنك زيادة هذه القيمة قليلاً لجعل الظل أكثر انتشارًا قبل التمويه (أحياناً لا تكون ضرورية للتوهج).

Color (اللون): اختر لون التوهج الذي تريده (عادةً ما يكون لونًا فاتحًا أو مشرقًا)، وزد قيمة الشفافية (Opacity) لجعله يبدو أكثر إشراقًا (مثلاً، 50%-100%).

Inner Shadow (توهج داخلي - لإعطاء تأثير توهج من الداخل):

يمكنك استخدام "Inner Shadow" بنفس الطريقة إذا كنت تريد تأثير توهج يأتي من داخل العنصر.

طبق نفس الإعدادات (X=0, Y=0, Blur عالي, اللون المطلوب).

تعديلات إضافية (اختياري):

طبقات متعددة من التوهج: للحصول على توهج أكثر تعقيدًا، يمكنك إضافة عدة تأثيرات "Drop Shadow" أو "Inner Shadow" بنفس اللون ولكن بقيم تمويه مختلفة (واحدة بتمويه أقل وأكثر كثافة، وأخرى بتمويه أكبر وأكثر انتشارًا) مع تغيير الشفافية لكل طبقة.

لون الشكل: تأكد من أن لون الشكل الأساسي يتناسق مع لون التوهج.

مثال تطبيقي: إذا كان لديك زر أزرق وتريد توهجًا أزرق حوله، اختر لون ظل أزرق فاتح جداً أو أبيض مع شفافية عالية، ثم زد الـ Blur.

2. كيفية عمل تأثير الزجاج (Glassmorphism Effect)

تأثير الزجاج يعتمد على الشفافية، التمويه (Blur)، وحدود طفيفة.

الخطوات:

إنشاء الشكل الخلفي (Background Shape):

تأثير الزجاج يعمل بشكل أفضل عندما يكون هناك شيء ما (صورة، تدرج لوني، أو أشكال أخرى) في الخلفية ليتأثر بالتمويه.

ضع صورة أو ألوانًا خلف العنصر الزجاجي.

إنشاء لوح الزجاج (Glass Pane):

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

تعبئة لوح الزجاج (Fill):

حدد لوح الزجاج.

في قسم "Fill"، اختر لونًا (عادةً ما يكون أبيض أو رمادي فاتح) وقلل الشفافية (Opacity) بشكل كبير (مثلاً، 5% - 20%). هذا سيجعله شبه شفاف.

إضافة تأثير الخلفية الضبابية (Background Blur Effect): هذا هو العنصر الأساسي لتأثير الزجاج.

مع تحديد لوح الزجاج، اذهب إلى قسم "Effects".

انقر على "+" وأغير "Drop Shadow" إلى "Background Blur" من القائمة المنسدلة.

Blur (التمويه): زد قيمة التمويه (مثلاً، 10-30). ستلاحظ أن ما يقع خلف هذا الشكل أصبح ضبابيًا.

إضافة حدود طفيفة (Subtle Border): (اختياري لكن يضيف واقعية)

مع تحديد لوح الزجاج، اذهب إلى قسم "Stroke".

أضف حدودًا بلون فاتح جداً (مثل الأبيض أو لون قريب من لون الشكل) وقلل الشفافية بشكل كبير (مثلاً، 10% - 30%) مع سمك 1 بكسل. هذا يعطي إحساسًا بحافة الزجاج.

إضافة ظل خفيف (Subtle Drop Shadow): (اختياري)

يمكنك إضافة "Drop Shadow" خفيف جداً (X=0, Y=4-8, Blur=10-20, Color أسود شفافية 5-10%) لإعطاء إحساس بالعمق.

تأثير اللمعان (Highlight - اختياري):

لإضافة لمسة لمعان، يمكنك رسم خط رفيع أو شكل بيضاوي صغير بلون أبيض شفاف جداً (مثلاً، 20-40%) في زاوية لوح الزجاج، أو على حافته العلوية/اليسرى.

يمكنك تطبيق "Layer Blur" على هذا الشكل لجعله يبدو أكثر نعومة.

نصائح عامة:

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

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

 الأداء: كثرة استخدام تأثيرات التوهج والزجاج، خاصةً على أشكال متعددة، قد يؤثر على أداء فيجما قليلاً عند التعامل مع ملفات كبيرة.


زر Switch نيومورفيك داكن بتوهج أزرق في Figma، كيف تنفّذ هذا الزر بنفس التصميم في Flutter بخطوات منظمة:

 


زر Switch نيومورفيك داكن بتوهج أزرق في Figma، كيف تنفّذ هذا الزر بنفس التصميم في Flutter بخطوات منظمة:




✅ النتيجة النهائية:


زر تبديل (ON/OFF) أنيق بتصميم نيومورفيك داكن، مع توهج أزرق عند التفعيل، ومؤشر متحرك سلس.



---


✅ أولاً: المكتبات المطلوبة


dependencies:

  flutter:

    sdk: flutter

  flutter_neumorphic: ^3.3.0  # لتصميم النيومورفيك



---


✅ ثانياً: الكود الكامل


import 'package:flutter/material.dart';

import 'package:flutter_neumorphic/flutter_neumorphic.dart';


class NeumorphicSwitch extends StatefulWidget {

  @override

  _NeumorphicSwitchState createState() => _NeumorphicSwitchState();

}


class _NeumorphicSwitchState extends State<NeumorphicSwitch> {

  bool isOn = false;


  @override

  Widget build(BuildContext context) {

    return GestureDetector(

      onTap: () => setState(() => isOn = !isOn),

      child: AnimatedContainer(

        duration: Duration(milliseconds: 300),

        width: 140,

        height: 56,

        padding: EdgeInsets.symmetric(horizontal: 4),

        decoration: BoxDecoration(

          color: Color(0xFF121212),

          borderRadius: BorderRadius.circular(100),

          boxShadow: [

            // ظل خارجي

            BoxShadow(

              color: Colors.black.withOpacity(0.7),

              offset: Offset(0, 4),

              blurRadius: 10,

            ),

            // ظل داخلي

            BoxShadow(

              color: Colors.black.withOpacity(0.25),

              offset: Offset(0, 2),

              blurRadius: 6,

              spreadRadius: -1,

            ),

          ],

        ),

        child: Stack(

          alignment: Alignment.center,

          children: [

            // توهج خلفي عند التفعيل

            if (isOn)

              Positioned(

                right: 0,

                left: 70,

                child: Container(

                  height: 56,

                  decoration: BoxDecoration(

                    gradient: LinearGradient(

                      colors: [Color(0xFF00CFFF), Color(0xFF0066FF)],

                      begin: Alignment.centerLeft,

                      end: Alignment.centerRight,

                    ),

                    borderRadius: BorderRadius.circular(100),

                  ),

                  child: BackdropFilter(

                    filter: ImageFilter.blur(sigmaX: 25, sigmaY: 25),

                    child: Container(

                      color: Colors.transparent,

                    ),

                  ),

                ),

              ),


            // النص

            Positioned(

              right: 20,

              child: AnimatedOpacity(

                duration: Duration(milliseconds: 200),

                opacity: isOn ? 1.0 : 0.0,

                child: Text(

                  "ON",

                  style: TextStyle(

                    color: Colors.white,

                    fontWeight: FontWeight.bold,

                    fontSize: 14,

                    shadows: [

                      Shadow(

                        color: Colors.cyanAccent.withOpacity(0.5),

                        blurRadius: 10,

                      )

                    ],

                  ),

                ),

              ),

            ),


            // المؤشر الدائري

            AnimatedAlign(

              duration: Duration(milliseconds: 300),

              alignment: isOn ? Alignment.centerRight : Alignment.centerLeft,

              child: Container(

                width: 52,

                height: 52,

                decoration: BoxDecoration(

                  color: Color(0xFF2A2A2A),

                  shape: BoxShape.circle,

                  boxShadow: [

                    BoxShadow(

                      color: Colors.cyanAccent.withOpacity(0.4),

                      blurRadius: 15,

                      spreadRadius: 1,

                    ),

                  ],

                ),

                child: Center(

                  child: Container(

                    width: 6,

                    height: 6,

                    decoration: BoxDecoration(

                      color: Colors.white24,

                      shape: BoxShape.circle,

                    ),

                  ),

                ),

              ),

            ),

          ],

        ),

      ),

    );

  }

}



---


✅ ثالثاً: استخدام الزر في الشاشة


void main() {

  runApp(

    MaterialApp(

      debugShowCheckedModeBanner: false,

      home: Scaffold(

        backgroundColor: Color(0xFF0D0D0D),

        body: Center(

          child: NeumorphicSwitch(),

        ),

      ),

    ),

  );

}



---


✅ ملاحظات إضافية:


يمكنك إضافة AnimatedSwitcher للنص لإضفاء سلاسة أكثر.


هذا التصميم متجاوب جزئيًا، ويمكن تعديله ليعمل على مختلف الشاشات بسهولة.


التوهج الأزرق تم بمحاكاة باستخدام BoxShadow وLinearGradient مع BackdropFilter.




---


هل تحب أجهز لك نسخة هذا التصميم كـ Component جاهز رائع! بما أنك صممت زر Switch نيومورفيك داكن بتوهج أزرق في Figma، الآن سأوضح لك كيف تنفّذ هذا الزر بنفس التصميم في Flutter بخطوات منظمة:



---


✅ النتيجة النهائية:


زر تبديل (ON/OFF) أنيق بتصميم نيومورفيك داكن، مع توهج أزرق عند التفعيل، ومؤشر متحرك سلس.



---


✅ أولاً: المكتبات المطلوبة


dependencies:

  flutter:

    sdk: flutter

  flutter_neumorphic: ^3.3.0  # لتصميم النيومورفيك



---


✅ ثانياً: الكود الكامل


import 'package:flutter/material.dart';

import 'package:flutter_neumorphic/flutter_neumorphic.dart';


class NeumorphicSwitch extends StatefulWidget {

  @override

  _NeumorphicSwitchState createState() => _NeumorphicSwitchState();

}


class _NeumorphicSwitchState extends State<NeumorphicSwitch> {

  bool isOn = false;


  @override

  Widget build(BuildContext context) {

    return GestureDetector(

      onTap: () => setState(() => isOn = !isOn),

      child: AnimatedContainer(

        duration: Duration(milliseconds: 300),

        width: 140,

        height: 56,

        padding: EdgeInsets.symmetric(horizontal: 4),

        decoration: BoxDecoration(

          color: Color(0xFF121212),

          borderRadius: BorderRadius.circular(100),

          boxShadow: [

            // ظل خارجي

            BoxShadow(

              color: Colors.black.withOpacity(0.7),

              offset: Offset(0, 4),

              blurRadius: 10,

            ),

            // ظل داخلي

            BoxShadow(

              color: Colors.black.withOpacity(0.25),

              offset: Offset(0, 2),

              blurRadius: 6,

              spreadRadius: -1,

            ),

          ],

        ),

        child: Stack(

          alignment: Alignment.center,

          children: [

            // توهج خلفي عند التفعيل

            if (isOn)

              Positioned(

                right: 0,

                left: 70,

                child: Container(

                  height: 56,

                  decoration: BoxDecoration(

                    gradient: LinearGradient(

                      colors: [Color(0xFF00CFFF), Color(0xFF0066FF)],

                      begin: Alignment.centerLeft,

                      end: Alignment.centerRight,

                    ),

                    borderRadius: BorderRadius.circular(100),

                  ),

                  child: BackdropFilter(

                    filter: ImageFilter.blur(sigmaX: 25, sigmaY: 25),

                    child: Container(

                      color: Colors.transparent,

                    ),

                  ),

                ),

              ),


            // النص

            Positioned(

              right: 20,

              child: AnimatedOpacity(

                duration: Duration(milliseconds: 200),

                opacity: isOn ? 1.0 : 0.0,

                child: Text(

                  "ON",

                  style: TextStyle(

                    color: Colors.white,

                    fontWeight: FontWeight.bold,

                    fontSize: 14,

                    shadows: [

                      Shadow(

                        color: Colors.cyanAccent.withOpacity(0.5),

                        blurRadius: 10,

                      )

                    ],

                  ),

                ),

              ),

            ),


            // المؤشر الدائري

            AnimatedAlign(

              duration: Duration(milliseconds: 300),

              alignment: isOn ? Alignment.centerRight : Alignment.centerLeft,

              child: Container(

                width: 52,

                height: 52,

                decoration: BoxDecoration(

                  color: Color(0xFF2A2A2A),

                  shape: BoxShape.circle,

                  boxShadow: [

                    BoxShadow(

                      color: Colors.cyanAccent.withOpacity(0.4),

                      blurRadius: 15,

                      spreadRadius: 1,

                    ),

                  ],

                ),

                child: Center(

                  child: Container(

                    width: 6,

                    height: 6,

                    decoration: BoxDecoration(

                      color: Colors.white24,

                      shape: BoxShape.circle,

                    ),

                  ),

                ),

              ),

            ),

          ],

        ),

      ),

    );

  }

}



---