از Pista Academy حمایت کنید
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 62 آموزش فلاتر، مدرس به بررسی و اصلاح پرووایدر فیلتر در پروژه میپردازد. ابتدا پرووایدر فیلتر جدید ایجاد شده و به صورت مشابه با پرووایدر قبلی استفاده میشود. سپت، متدی برای تغییر فیلترها ایجاد میشود که استیت جدید را بر اساس فیلترهای انتخابی بسازد. همچنین، تغییراتی در صفحه فیلتر اعمال میشود تا از استفاده از کارنت و دیتا دستی خودداری شود و به جای آن از پرووایدر استفاده شود. در نهایت، عملکرد پرووایدر فیلتر بررسی شده و اطمینان از عدم ایراد در آن انجام میشود.
نکات کلیدی
پرووایدر فیلتر جدید ایجاد شده و به صورت مشابه با پرووایدر قبلی استفاده میشود.
مدتی برای تغییر فیلترها ایجاد شده که استیت جدید را بر اساس فیلترهای انتخابی بسازد.
تغییراتی در صفحه فیلتر اعمال شده تا از استفاده از کارنت و دیتا دستی خودداری شود.
عملکرد پرووایدر فیلتر بررسی شده و اطمینان از عدم ایراد در آن انجام میشود.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ ادامه پروژهمون و ما رسوندی به
اینجا.
میخوایم بریم سراغ یه پرووایدر دیگه درست
بکنیم. برای فیلتر این دفعه میخوایم درست
بکنیم کار فیلترمونو اونجا انجام بدیم
بریم شروع بکنیم و همین بریم جلو بذار میبینم پرووایدر یه
فایل درست میکنم به نام فیلترز
پرووایدر
خب دقیقاً روند بچهها مشابه روند د قبلیاست
خیلی تفاوتی نداره خب
من توی فوریت
حتی بچهها میتونم اینو کلشو کپی کنم بیارم اینور هر کدوم لازم ندارم عوض کنم
خب اینو لازم ندارم
بعد اسمش میشه
فیلتر نوتفایر اکستند میکنه از استیت نوتفایر بعد اینجا
هم یه این میشه مپ
و گل خب
فعلاً اینا رو باشه خب ما توی صفحه فیلتر
بچهها
ت توی فیلتر بود دیگه
اینم بچهها دیگه نیاز نیست اینم اگه زشون یه خط کنید خب
توی صفحه
آ اینو میخوام چچشم نمیدید اینو الان اینجا لازم داریم توی فیلتر لازم داریم پس
اینو میارم اینجا خب
که میشه این فیلتری که اینجاست
بعد یعنی در حقیقت همه اون فیلترامونه
اینجا الان لازمش داریم حالا اگر اینجا
لازم شد ایمپورتش میکنم حالا به وقتش
نشونتون میدم اینام اضافه پاپکت
بیایم اینجا
بعد اینجا میایم میگیم که
ما توی فیلتر میومدیم یه مقدار اولیه مشخص میکردیم. نگاه کنیدش توی کانستراکتور
میاد میگفتیم مثلاً اول که این صفحه میاد
بالا فیلترامون همه فالسن. اینجا باید یه
همچین کاری انجام بدیم. خب اینو اینجا
انجام میدین یعنی میام میگم که
اینو میدم به این فیلتر نوتیفایر بعد این
چیه؟ یه دونه آبجکته این دفعه
که میشه فیلتر.
گلوتون فیل مثلاً باشه فالس
فیلتر داد وجترین باشه
فالس
فیلتر. وگن
باشه فالس خب این میشه اون کاری که باید
اونور انجام دادیم یعنی مقدار اولیه مشخص
کردیم
بعد
اینم میشه فیلترز پرووایدر
استیت نوتیفای پرووایدر ایناش باشه که
مییم درست میکنیم خب فعلاً این باشه اینجا این چیه خب اینو باید پاکش کنیم
اینو اینجا لازم نداره
ما چه متدایی لازم داریم توی فیلتر بچهها
یه متدمون بود که مثلاً کاربر اومد یکی از
فیلترا رو انتخاب میکرد بعد این وی
آبجکته تغییر میکرد مثلاً یکی میومد
میزد فقط وگنو میخوام بعد این میشد ترو
پس یه متد برای این لازم دارم که بیاد
چیکار کنه؟ یکی از فیلترا رو بخواد تغییر
بده.
جلسه قبلی بهتون گفتم ما توی پرووایدرها
اجازه نداریم استیتو تغییر بدیم باید
دوباره بسازیمش. اینو یادتون باشه همیشه
وید اسم متدو میذارم ست فیلتر
که یک فیلتر قطعاً به عنوان ورودی دریافت میکنه
و یه بولی هم که فیلتر فعاله یا فعال نیست اکتیو
اسمشم میزاریم از اکتیو
میگم که مقدار استیت قبلی میگم یه اس جدید باید بسازی چهجوری بسازه استیت قبلی رو
بیار استیت قبلی
فقط بیا اون جدیده رو تغییر بده که اومده
برابر ایز اکتیو بذار
پس این متد برای اینکه بخوایم یکی از فیلترها رو تغییر بدیم هر وقت بخوایم این
کارو بکنیم باید اینو فراخونه کنیم
خب اینو چیکار باید بکنیم؟ فعلاً ایناشو بردارم
این رف میاد چیو میخواد فیلترز نوتفایر بیا
تمام اینم از این حالا
یه لحظه یه نکته ریزی اینجا هست اینم باید در حقیقت چیزشو مشخص بکنیم
تایپشو مشخص کنیم اینجا
میشه
فیلتریفایر
فیلتر ولی
اینم از این میشه پرووایدرمون برای فیلتر حالا چیز دیگه هم داره که جلوتر بهتون
خواهم گفت بریم حالا از این استفاده بکنیم
کجا باید استفاده بکنیم
اول بریم سراغ سراغ صفحه تب یه تغییراتی باید اینجا حتماً بدم
تو صفحه تب من نیاز دارم که فیلتر پرووایدرمو آورده باشم آوردم نه بچهها
این خطا نمیده این فیلترو به نظرتون چون
باید خطا بده
عرض عجبی خطا نمیده اشکال نداره
این فیلتر پرووایدر جالب الان آوردمش خطا داد تصور که قبلش
خطا میداد چون من فیلتر از اینجا برداشته
بودم برده بودم حالا الان درستش میکنیم
ایراد نداره
خب بریم صفحه فیلتر برمیگردیم توی تب چیا رو لازم داریم ایمپورت کنیم بچهها
یکی ریورپاتو
پکیج دو نقطه فلاتر ر
اینو یه بار میخوایم خود فیلتر پرووایدرم اینجا لازم داریم
بر تو پرووایدر فیلتر بیار خب این از اینو دیگه لازم نداریم اینجا بچهها چرا
لازم نداریم چون توی فیلتر پرووایدر هست
میتونیم اینو برش داریم پس این از این
حالا از بالا میایم پایین همه تغییراتو میدیم اولین تغییر باید بیم به این بدیم
این استیت فول ویجت میشه چی میشه کانسیومر
کان
سیومر استیت فول ویجت اولین تغییرمون اینه
دومین تغییرمون چیه
اون پایین استیتمون باید بشه کانسیوم
استیت
این دومین تغییر سومین تغییرمون چیه
این استیتمونم باید بشه کانسیومر استیت
اینم سیو کنیم که این خطای دیگه بره
مورد بعدی چیه
ما الان داریم کارنتمونو به عنوان ورودی میگیریم دیگه نباید این کارو بکنیم کنیم.
ما الان کارنتمونو باید از این بگیریم.
پس این کارنت باید هر جای کارنت هست حذف
بشه و از پرووایدر استفاده بکنه.
پس من اینا رو برمیدارم دیگه لازم
ندارمش. توم برمیدارم دیگه لازم ندارم.
به جاش میخوام از خود پرووایدر استفاده
کنم.
حالا میام اینجا
میگم که
فاینال اسمشو میذارم اکتیو فیلترز
مساویه میگم برو تو رف [ __ ] کن واچم
نمیخواد بچهها [ __ ] چون یه بار قراره
خونده شه چیو [ __ ] کن
فیلتر پرووایدرو اینو
تمام. این چیه؟
این بچهها باید بمونه. ما توی صفحه فیلتر
یه لوکال استیت داریم. لوکال استیت برای
چیه؟
برای اینکه شما وقتی اون دکمه رو میزنید
که مثلاً یه فیلتر فعال کنید بتونید
ریاکشنشو تو سایت تو اپ ببینید یعنی در
لحظه ببینید که داره تغییر میکنه این
برای اونه
خب بیایم پایین ببینیم دیگه چی داریم
اینجا آها این تو این پاپ اسکوپ خب خب
من چیکار کردم؟ گفتم که وقتی برمیگردی با
خودت یه دیتایی بیار. دیگه لازم نیست دیتا
با خودش بیاره. باید بره اینو توی
پرووایدر تغییر بده تو اون اسکرین جدیده
از پرووایدر بخونه. پس دیگه نیاز نیست
اینو ببره به خودش فقط باید پرووایدرو
تغییر بده.
اینجا بچهها من یه دونه فیلتر دارم عوض
میکنم. نه اینجا دارم یک مجموعهای از
فیلترا رو تغییر میدم.
پس این متدی که اینجا نوشتم به دردم
نمیخوره. کدوم؟ این
یه فیلترو تغییر میده. مجموعه فیلترا رو
تغییر نمیده. پس نیاز به یه متد جدید
دارم.
میام اینجا میگم که واید
ست فیلترز اسم اینو میذارم.
به عنوان ورودی یک مپی از فیلترا رو
میگیره
و وضعیتشون که میشه بولینه
اسمشم میذارم چونزاریم فیلتر
میگم استیت جدیدو بساز بر مبنای چیزی که اومده
حالا فرق کافیه که اینو بیام اینجا استفاده کنم ازش
یعنی بگم که بیا ست فیلتر بیار
و ازش استفاده کن
میگم که رف دا
[ __ ]
برو توی
ست فیلترز رو بیار چیکار کن این آبجکت رو کامل بهش پاس بده
آیا لازمه این قسمت بچهها دیگه لازم نیست
یه ریتن تو رو بذارید اینجا
خب دیگه ما این اینو برای چی آورده بودیم؟ آورده بودیم که دستی برگردیم به صفحه قبل
یه دیتایی رم با خودمون ببریم اما الان
دیگه لازم نیست چون ما دیتا رو داریم یه
جا دیگه ذخیره میکنیم اینم که خودش وقتی
بکو میزنی برمیگرده نیاز نیست من بهش
بگم برگرد
پس من اینو دیگه برش میدارم اینجا حالا بریم دوباره تو تبز بیایم پایین
توی فیلتر اسکرین بچهها من دیگه کارنتو
لازم ندارم چون قرار شد این از پرووایدر
بگیره پس پشت این میتونم یه کانس بذارم
چون چیزی دیگه اینجا متغیر نیست دیگه ثابته
موضوع بعدی این دیگه قرار نیست چیزی به من برگردونه من دیگه دیتای دستی به پاپ که
ندادمش پس اینو دیگه ورش دارید اینم دیگه
لازم ندارید
شما فقط وقتی بکو میزنه برمیگرده کار
خاصی انجام نمیده دیتایی به خودش نمیاره
که من اینجا بخوام ازش بگیرم
حالا میایم اینجا اینجا باید دوباره بریم و پرووایدر فیلترا رو بیاریم
اک تیو
فیلتر مساوی رف دات اینجا باید واچ بذارید
چون باید همش چک بکنه که فیلتر فیلتر
فعالمون چیه؟
فیلترز پرووایدر
حالا فقط کافیه که اینو جایگزین اینا کنم
خب ما نباید خطایی چیزی داشته باشیم بریم چشم چک کنیم ببینیم کار میکنه یا نه
خب من میام صفحه فیلتر میذارمش روی این
همبرگه رو طبیعتاً باید برش دارم.
برنمیگرده به به ایراد اینجاست
خب میایم تو فیلتر
اینجا
این الان دیگه برنمیگرده درسته؟
سالادا رو آورد اینم جز ویگم حساب میکنم یا سیاه هیچی نداریم صفونه چیزی نداریم
فرانسوی نداریم اینجا داریم سالت خیلی خب
این داره کار میکنه اوکیه
در اصل اینو نباید میخواد چون خود این
متده که اینجا هست کارش اینه که برگرده
حالا من دیگه نباید بهش بگم برگرد
اشکال نداره خیلی خب اینم از این بریم بیایم ادامهشو جلسه بعدی صحبت کنیم فعلاً
خداحافظ
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
پرووایدر فیلتر جدید با ایجاد یک کلاس جدید و استفاده از متدهای مرتبط با فیلترها ایجاد میشود.
مدتی برای تغییر فیلترها ایجاد میشود که استیت جدید را بر اساس فیلترهای انتخابی بسازد.
به منظور افزایش کارایی و جلوگیری از تکرار کد، از پرووایدر استفاده میشود به جای کارنت و دیتا دستی.
آخرین بهروزرسانی محتوای متنی:
در این دوره جامع و پروژهمحور با فلاتر و دارت از صفر تا صد آشنا میشوید و با ساخت هشت اپلیکیشن واقعی که هر کدام نکات کلیدی و پرکاربرد فلاتر را پوشش میدهد، مهارتهای خود را به سطح بعدی میبرید. آنچه در این دوره یاد میگیرید: مقدمه و نصب ابزارها: آشنایی با فلاتر، دارت و راهاندازی محیط توسعه مبانی دارت و فلاتر: یادگیری سینتکس دارت و ساخت ویجتهای پایه با اپ «تاسانداز (Roll Dice)» غوطهوری در فلاتر: پیادهسازی اپ «کوئیز (Quiz)» برای مسلط شدن بر ساختار و چرخه حیات ویجتها دیباگ و رفع اشکال: تکنیکهای عیبیابی و ابزارهای Flutter DevTools واکنشگرایی و تمینگ: ساخت «Expense Tracker» برای یادگیری ویجتهای تعاملی، موضوعبندی (Theming) و طراحی ریسپانسیو مدیریت وضعیت (State Management): از Provider تا روشهای داخلی دارت با اپ «TODO» و «Meals» مسیریابی بین صفحات: ناوبری پیشرفته با «Meals App» و انتقال داده بین صفحات انیمیشنها و جلوههای بصری: افزودن حرکات پویا و تراکیب انیمیشنی در «Meals App» فرمها و ورودی کاربر: دریافت و اعتبارسنجی اطلاعات با «Shopping List» ارتباط با سرور: ارسال و دریافت HTTP، کار با JSON و REST API در «Shopping List» دسترسی به امکانات بومی دستگاه: استفاده از دوربین و ذخیرهسازی در «Favorite Places» فراخوانی پوش نوتیفیکیشن و چت زنده: ترکیب فلاتر با Firebase برای ساخت اپ چت با اعلان لحظهای بهروزرسانیها و چشمانداز آینده: نکات پایانی، منابع پیشرفته و مسیر یادگیری ادامهدار چرا این دوره؟ پروژهمحور و گامبهگام، مناسب برای تازهکارها و افراد با تجربه متوسط پوشش تمام جنبههای کلیدی: از طراحی رابط کاربری و انیمیشن تا اتصال به سرور و مدیریت وضعیت پیادهسازی چندین اپلیکیشن واقعی که میتوانید به سادگی برای نمونهکار شخصی یا پروژههای شغلی استفاده کنید لینک گیت هاب دوره جهت دسترسی به کد پروژه های هر فصل https://github.com/pistaacademy/flutter 🔔 همین حالا سابسکرایب کنید تا ویدیوهای آینده را از دست ندهید و یادگیری فلاتر را با هم شروع کنیم!