#منقول
خلونا نتكلم النهاردة شوية عن ال state management واية مفهوما وبعدها هنتكلم عنها بالخصوص مع flutter وكل نوع مبني علي اية وبيشتغل ازاي
البوست دة هيكون طويل شوية عشان التفاصيل اللي فية كتير شوية
مبدئيا كدة هو اية ال
core
بتاع ال
state management ؟
بص يا صديقي هي اي
state managment
شغاله علي حاجتين وهما
1- Data Flow:
هو الطريقة اللي الdata
بتتحرك بيها جوه التطبيق عشان تتأكد إن الupdates
بتحصل في مكان واحد وتتوزع بشكل منظم لكل الأجزاء اللي محتاجاها وهقولك بالتفصيل الموضوع دة بيحصل جوه
flutter
ازاى.
2-Reactivity:
هي إن التطبيق يكون مراقب أو منتبه للتغييراتupdates
اللي بتحصل في الdata،
وده عشان يعمل update لل ui فورًا من غير تدخل يدوي ودة اكتر حاجة مستخدمة في flutter عموما وبرضو هنشرحها بالتفصيل وكل State management بتستخدم المبدأ دة ازاي.
تمام كدة ؟ فهمنا اي state management شغاله علي اية ؟ يلا بينا بقي نشرح الموضوع بالتفصيل في flutter
طيب اية هي انواع ال state في flutter ؟
في Flutter، عندنا نوعين رئيسيين من الstates:
1- Ephemeral State :
ودي state بسيطة زي state زرار معين، أو قيمة text موجودة في وwidget معينة الحالة دي ممكن نتحكم فيها باستخدام setState، ودي بتكون مفيدة في الحاجات الصغيرة.
2- App-wide or Global State :
ودي state بتأثر على أكتر من widget في التطبيق زي login state أو user data state أو app settings الstate دي محتاجة حلول أكتر تعقيدًا من setState لأنها بتأثر على التطبيق كله.
طيب حلو كلام جميل, اية هي بقي المبادئ اللي بيتبني عليها الكلام دة ؟
بص يا صديقي كل حلول ال
state management
مبنية على شوية مبادئ أساسية وهما:
1- Single Source of Truth:
بمعنى إننا بنخلي فيه مكان واحد بيحتفظ بكل الdata الأساسية عشان نبقى عارفين إن دايمًا الdata جايه من نفس المكان. ده ممكن يكون model، controller، أو class
بيحافظ على الdata.
2- Unidirectional Data Flow:
بنخلي الdata تمشي في اتجاه واحد عشان يبقى سهل متابعة الupdates. يعني الdata بتروح من:
source → state → ui
أي تعديل الuser يعمله بيعمل update للsource اللي بعد كده بي
update الstate
وده بينعكس
في الui.
3-Immutability:
بعض الحلول بتشجع على استخدام data ثابتة، بمعنى بدل ما نعدل الdata اللي موجودة، بنعمل data جديدة تمثل الstate الجديدة. ده بيسهل علينا متابعة الchanges.
4-Reactive Updates:
بمعنى إن الui يحصلها update تلقائيًا لما الstate تتغير بمعنى إن الui تبقى مراقبة للstate وبتupdate نفسها بمجرد ما يحصل اي state changes.
طيب خلصنا المبادئ ؟ اية هي بقي الاساسيات ؟
فية شوية اساسيات كدة هلاقيهم في ال state managements اللي موجودة وهما :
1- الـ InheritedWidget:
هي built in widget في Flutter، وبتسمح للdata إنها تتنقل لأخر ال widget tree. بنستخدمها لما نحتاج وwidgets فرعية تشوف نفس الdata زي ما بنشوف مع الـ Theme وMediaQuery اللي جايين مع Flutter
2- الـ Streams و الـ Sinks:
هي data channels، تقدر تستقبل data جديدة وتتفاعل معاها فورًا. زي مثلا Stream ممكن يبعت data أو يستقبل updates جديدة
نستخدمهم في حاجة زي BLoC اللي بيفصل business logic بتاع التطبيق عن الui
3- State Notifiers and Observables:
بتكون variables بتتغير وبمجرد ما تتغير، الwidgets اللي بتراقبها بتتغير زي ما موجود في provider و Riverpod و GetX
Post #2362
6K
- ❤🔥 18