Flutter | Mahmoud Azab – Telegram
Flutter | Mahmoud Azab
10.2K subscribers
1.82K photos
139 videos
11 files
306 links
اسألني في اي مشكله ان شاء الله أقدر اساعدك
🎃 @mahmoud_azab99 🎃
Download Telegram
Top Local Database Solutions in Flutter

اهم الpackges اللي تستخدمها للتعامل مع ال database
🔥86👍2👏1
تشغيل فيدوهات اليوتيوب في فلاتر
👍1410🤯4
كوبونات مجانيه لدورة Flutter بالعربي علي موقع Udemy ..

اللينك اللي ميشتغلش ادخل علي اللينك التاني لان عددهم محدود 👌🏻❤️

اللينك الأول : https://lnkd.in/dgFEtir6

اللينك الثاني : https://lnkd.in/dRSAVriv

اللينك الثالت : https://lnkd.in/duhK8byK

اللينك الرابع : https://lnkd.in/dd3YTm44
🔥6👍51
اهلا بيكم ياشباب

ده الكورس العربي المتقدم في الفلاتر.

الكورس لا يستهدف التعليم من الصفر بل يستهدف مواضيع متقدمه.

لينك التحميل المجاني لعدد محدود:
https://www.udemy.com/course/flutter-advanced-clean-architecture-with-mvvm-arabic/?couponCode=FREE_JAN

وده لينك اخر بتخفيض كبير:
https://www.udemy.com/course/flutter-advanced-clean-architecture-with-mvvm-arabic/?couponCode=JAN_DIS

الكورس بيعلمك ازاي تعمل مشروع كبير للشركات الكبيرة بشكل احترافي.

الكورس بيحتوي علي الكثير من المواضيع منها:

Clean Architecture Design Pattern
- MVVM - Model - View - View Model Pattern
- Dependency injection
- Application Layer
- Domain layer
- Data layer
- Presentation layer
- State renderer
- Mappers
- Data sources
- Caching
- Localization
7👍2
Prevent Screen Record in Flutter IOS App
دلوقتي لو عايزين نمنع screenshot & screen record في الاندريود
الموضوع بسيط وسهل وناس كتير اتكملت فيه ودا من خلال flutter_windowmanager
اما بالنسبة لل IOS ففي اكتر من طريقة
الطريقة الاولي : ودي من خلال كود نيتف ودا الكود اللي هتحتاجه : http://bit.ly/3WXGMN3
ودي بتمنع الاسكرين شوت والريكورد من التطبيق كله وبتخلي screenshot والفيديو لونهم اسود
ودي ليها عيوب : ١- مش بتقدر تتحكم امتي تمنع وامتي تخلي اليوزر عادي يقدر يعمل screenshot or record
٢- التطبيق بنسبة كبيرة هيترفض في review بتاع ابل لان لو الشخص ال reviewer خد باله انك مانع screen shot or record شكرا خلاص
الطريقة التانية الا وهو نسأل سؤال ليه اصلا عايزين نمنع screenshot or record
ممكن مثلا انا عندي فيديوهات مش عايز اليوز يقدر يسجل الفيديو مثلا
خلاص ايه رأيك نفكر في حاجة تانية الا وهي اننا نحاول نعرف هو بيعمل record ولا لا
يعني نعمل detect للريكورد وبناءا عليه نعمل action زي اننا نقفل التطبيق او نوديه علي سكرينة تانية او اي حاجة حسب السيناريو بتاعك وبكدا نبقي حققنا اللي احنا عايزينه
في بكدج بتعمل كدا فعلا اسمها ios_insecure_screen_detector
ودي بتوفر function بترجع bool هل بيتم التسجيل او لا
;()await _insecureScreenDetector.isCaptured
بس فيها مشكلة انها مش بتوفر stream او listener فهنضر
(تعديل بسيط هنا تقدر بدل stream تعمل timer لو حابب لو شايف ان while مكلفة ) المهم الفكرة واحدة
نعمل احنا stream وهتلاقي طريقة الاستخدام في الكود تحت
فدلوقتي نقدر نمنع screen record في الوقت اللي احنا عايزينه
اما بالنسبة لسكرين شوت هنستخدم بكدج تانية ودي بتوفر ليا function مباشرة للمنع والغاء المنع
اسم البكدج : screen_protector
ملوحظة استخدم الاكواد دي في ios version بتاعة التطبيق بتاعك واستخدم علي الاندريود استخدم flutter_windowmanager
ودا لينك الاكواد اللي في الصور : https://gist.github.com/F-BONAPARTA/1b5161520463b101523b30344aaf03f2
8👍7🔥2
اي واحد مننا في بداية استخدامه لل bloc or provider واجه المشكله دي ProviderNotFoundException, طيب ايه سببها وليه بيحصل وازاي نعالجها، هنعرف دلوقتي.
عندنا في فلاتر في 3 حاجات لازم نعرفهم وهم widget tree, element tree and render object tree ودول ببساطه المسئولين عن تحديد خصائص ومكان ورسم ال widgets علي الشاشه بتاعي

احنا متفقيين ان الشكل بتاع ال trees دي شكل هرمي معتمد علي parent يكون تحتيه child وال child تحتيه child تاني فيكون ال child الاولاني هو ال parent بتاع ال child التاني وهكذا.

طيب هل ال widget بتكون عارفة مكانها فين في ال widget tree ؟
الاجابة هي لاءا، طيب اومال بيتعملها build في المكان اللي حططها فيه ازاي ؟! تعالي اقولك

اما ت create widget، فلاتر بتنادي مثود اسمها createElement و ال element ده بيكون هو مكان ال widget بالظبط .

طيب انا مش بشوف ال element ده خالص .... هو فين اصلا ؟!

المفاجأه انك بتتعامل معاه كتير وانت مش عارف، ال element هو ال context اللي دايما تلاقيه في كل build methods

يعني ال context هو ال position الفعلي لل widget بتاعتي.

فاللي بيحصل انك اما تقول Provider.of(context) او BlocProvider.of(context) في نفس ال Build method اللي عملت فيها provide او inject لل bloc بتاعتك، فلاتر بتبدأ من عند ال context ده وتعمل look up يعني بتبص فوق لل direct parent بتاع ال widget دي فتلاقي انك ماعملتش provide لل bloc في ال parent widget فيقولك ProviderNotFoundException

خليك دايما عارفه ان "of" دايما بتبص علي ال direct parent لل widget وتتدرج لفوق لحد ما تلاقي ال context اللي بتدور عليه.

عشان تعالج المشكله دي في حل بسيط هو انك ت wrap ال widget بتاعتك ب widget تانيه اسمها Builder، ال Builder ده بيديك access لل parent widget في نفس ال method بتاعتك او في نفس ال build method بتاعتك

حل تاني وهو انك تعمل حاجه اسمها standalone widget لل child widget بتاعك يعني انك تعمل لها stateless widget او stateful widget منفصلة وتخليها child لل provider بتاعك.
#منقول
22👍11👏32🤯2🔥1🥰1