Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
2- فك الضغط عن الملف المضغوط الذي قمت بتحميله ثم افتح المجلد وانسخ كل محتوياته ثم أذهب إلى مجلد الجافا القديم واحذف كل محتوياته ثم الصق كل الملفات التي قمت بنسخها مسبقاً.
Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
3- الان أذهب إلى هذا الموقع ، ثم انسخ رقم إصدار احدث نسخة من Gradle الرقم بهذا الشكل 8.1.1 من دون v
Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
4- الان إذهب إلى ملفات المشروع إلى مجلد gradle/wrapper ثم افتح ملف gradle-wrapper.properties وقم بتعديل رقم الإصدار إلى الرقم الذي قمت بنسخه مسبقاً
Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
5- الان توجه إلى هذا الموقع ثم انزل للأسفل إلى نص build.gradle ثم انسخ الكود بالكامل من السطر 1 وحتى نهايته إلى السطر 66
🤯1
Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
7- الان توجه إلى هذا الموقع ، هذا الموقع ببساطة يعرض أرقام إصدارات Android gradle plugin
قم بنسخ رقم أحدث إصدار ، وتأكد أن لايكون يتبع اسمه alpha حيث أنها نسخة أولية من إصدار احدث، لذا في حالتنا هذه احدث إصدار مستقر هو "8.0.1" وانسخ هذا الرقم.
قم بنسخ رقم أحدث إصدار ، وتأكد أن لايكون يتبع اسمه alpha حيث أنها نسخة أولية من إصدار احدث، لذا في حالتنا هذه احدث إصدار مستقر هو "8.0.1" وانسخ هذا الرقم.
👍3
Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
8- الان توجه إلى نفس الملف السابق في مشروعك الذي بأسم build.gradle ثم ابحث عن النص
classpath 'com.android.tools.build:gradle:8.0.1'
واستبدل رقم إصداره بالرقم الذي قمت بنسخة مسبقاً
classpath 'com.android.tools.build:gradle:8.0.1'
واستبدل رقم إصداره بالرقم الذي قمت بنسخة مسبقاً
Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
هكذا تكون قد حدثت Gradle إلى أحدث إصدار و java إلى الإصدار 17 ، الان قم بتشغيل المشروع، وقبل تشغيله تأكد أن لديك إنترنت قوي ومستقر لأنه سيحمل بعض ملفات حجمها يصل إلى 300-400 ميجا
Forwarded from X̸̸̛̛x̛͢͠Ah̨͡me̵d6̧6̨xX̸̛ ̧
أي شخص تواجهة مشكلة gradle فقط استعمل البحث في القروب واكتب #gradle وأتبع الخطوات
❤8
انك تعمل disable screen shots , recording
في التطبيق فالجزئية دي متوفره في الاندرويد من خلال ال Packade دي
flutter_screenshot_disable
انما ف ال IOS ف ده مش متوفر وكذلك سايسه ابل مختلفه عن الاندرويد
الحل بقا انك هتاخد الكود اللي موجود هنا ده وتحطه في الملف ده
Source code
https://github.com/mazab99/disable_screen_shot_ios_flutter
في التطبيق فالجزئية دي متوفره في الاندرويد من خلال ال Packade دي
flutter_screenshot_disable
انما ف ال IOS ف ده مش متوفر وكذلك سايسه ابل مختلفه عن الاندرويد
الحل بقا انك هتاخد الكود اللي موجود هنا ده وتحطه في الملف ده
Source code
https://github.com/mazab99/disable_screen_shot_ios_flutter
❤16🔥6👍4
يعني ايه Mounted ؟
Mounted widget
معناه ان widget created و أصبح ليه state
Unmounted widget
معناه ان widget has disposed or closed ومش موجودة وبالتالي انفصلت عن context
طيب ولما اعمل check if the widget is mounted
معناه اني بقول هل state موجودة ولا معدتش موجودة وحصلها disposed ؟
وبالتالي معناه هل state ممكن نعملها update ولا لأ أو نستخدم context بتاعها ولا لأ ؟
مثال لإستخدامها :
مثلا لو عايز اغير رقم بعد ثانية واحدة
Future.delayed(const Duration(seconds: 1), () { setState(() { _currentPage = 5; }); });
وحطيت دا في initState
تخيل لو الصفحة حصلها disposed واتقفلت قبل الثانية ما تخلص هيحصل ايرور
setState() called after dispose()
وبالتالي الحل اننا نستخدم mounted هنا
Future.delayed(const Duration(seconds: 1), () { if (mounted) setState(() => count = 5); });
كدا شرحنا يعني ايه mounted in flutter ومعلومة مهمة mounted متاحة اننا نستخدمها فقط جوا stateful widget مش stateless widget
الجديد بقا ايه ان من أول Flutter 3.7
أصبح ممكن نستخدمهاجو الاتنين stateful widget & stateless widget
Mounted widget
معناه ان widget created و أصبح ليه state
Unmounted widget
معناه ان widget has disposed or closed ومش موجودة وبالتالي انفصلت عن context
طيب ولما اعمل check if the widget is mounted
معناه اني بقول هل state موجودة ولا معدتش موجودة وحصلها disposed ؟
وبالتالي معناه هل state ممكن نعملها update ولا لأ أو نستخدم context بتاعها ولا لأ ؟
مثال لإستخدامها :
مثلا لو عايز اغير رقم بعد ثانية واحدة
Future.delayed(const Duration(seconds: 1), () { setState(() { _currentPage = 5; }); });
وحطيت دا في initState
تخيل لو الصفحة حصلها disposed واتقفلت قبل الثانية ما تخلص هيحصل ايرور
setState() called after dispose()
وبالتالي الحل اننا نستخدم mounted هنا
Future.delayed(const Duration(seconds: 1), () { if (mounted) setState(() => count = 5); });
كدا شرحنا يعني ايه mounted in flutter ومعلومة مهمة mounted متاحة اننا نستخدمها فقط جوا stateful widget مش stateless widget
الجديد بقا ايه ان من أول Flutter 3.7
أصبح ممكن نستخدمهاجو الاتنين stateful widget & stateless widget
❤19👍16🔥3👏1
🔥5👍4❤3