از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 63 آموزش فلاتر، مدرس به بررسی استفاده از پرووایدرها در مدیریت استیت در کل برنامه میپردازد. ابتدا لوکال استیت حذف شده و تمامی اطلاعات به پرووایدر منتقل میشود. سپس، پرووایدر فیلتر ایجاد شده و با پرووایدر دیگری مانند میلز ارتباط برقرار میشود. در نهایت، با استفاده از این پرووایدرها، آیکونهای غذاها بر اساس ویژگیهای آنها تغییر میکنند. همچنین، خطاهایی در کد بررسی و اصلاح شدهاند.
نکات کلیدی
حذف لوکال استیت و استفاده از پرووایدر برای مدیریت استیت در کل برنامه.
ایجاد پرووایدر فیلتر و ارتباط آن با پرووایدر دیگری مانند میلز.
تغییر آیکون غذاها بر اساس ویژگیهای آنها با استفاده از پرووایدر.
بررسی و اصلاح خطاهای موجود در کد.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
لوکال استیت حذف شده است تا تمامی اطلاعات به پرووایدر منتقل شود و مدیریت استیت در کل برنامه بهتر انجام شود.
پرووایدر فیلتر ایجاد شده و با پرووایدر دیگری مانند میلز ارتباط برقرار شده است.
آیکونهای غذاها بر اساس ویژگیهای آنها با استفاده از پرووایدر تغییر میکنند.
آخرین بهروزرسانی محتوای متنی:
در این دوره جامع و پروژهمحور با فلاتر و دارت از صفر تا صد آشنا میشوید و با ساخت هشت اپلیکیشن واقعی که هر کدام نکات کلیدی و پرکاربرد فلاتر را پوشش میدهد، مهارتهای خود را به سطح بعدی میبرید. آنچه در این دوره یاد میگیرید: مقدمه و نصب ابزارها: آشنایی با فلاتر، دارت و راهاندازی محیط توسعه مبانی دارت و فلاتر: یادگیری سینتکس دارت و ساخت ویجتهای پایه با اپ «تاسانداز (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 🔔 همین حالا سابسکرایب کنید تا ویدیوهای آینده را از دست ندهید و یادگیری فلاتر را با هم شروع کنیم!
استیت برای چی بود؟ برای اینکه وقتی من
میام صفحه فیلتر مثلاً اینو تغییر میدم
اینجا تغییر بکنه. میتونم این کارم ببرم
سمت پرووایدر. بگم وقتی یه چیزی تو لوکال
تغییر کرد برو تو پرووایدر تغییر بده صفحه
رو رندر کن از پرووایدر بگیر پس نیتم اینه
که لوکال استیت دیگه نداشته باشم پس میام
چیکار میکنم میام همه اینا رو حذف میکنم
تا اینجا رو حذف کنید بچهها
به جای کانسیومر استیت فول ویجت میذاریم
کانسیومر ویجت چون دیگه استیتی نداره
همه چیو دارم میبرم سمت پرووایدر
خب اینم دیگه لازم نداریم همش پاک شه داریم سادهش میکنیم اینجا چون
دیگه کانسیوم ویجت نوشتم باید یه پارامتر
اینجا پاس بدم یادتون باشه به نام ویجت رف
که میشه رف که این رفررو اوکی باشه اگر
کانسیومر فول ویجت بود نیاز نبود ولی وقتی
کانسیومر ویجته باید این کارو بکنید
مورد بعدی دیگه میتونیم از شهر این پاپسکوپم راحت بشیم اصلاً من از متنفع شدم
میتونیم از شهر این راحت شیم تا اینجا
مستقیماً چ کالمو بذاریم داخل
یه لحظه پاپ اسکوپ رو کالم بره داخل بادی
یه پرانتزی اضافه هم این پایین داریم که
باید براش
همه چی ش پس دیگه نیاز به اونم نداریم چون همه چی
داره سمت پرووایدر انجام میشه من وقتی
برمیگردم صفحه قبلی میرم پرووایدر
میخونه دیگه نیازی ندارم به اون
بعد داخل این سوئیچ لیست تایلا اینجا که ست استیت میشه دیگه نیاز نیست این کارو
بکنم میام چیکار میکنم میگم که
کلاً این ست استیتو باید بردارم
چون استیتی ندارم دیگه میگم که برو تو رف
برو تو پرووایدرم [ __ ] کن
فیلترز پرووایدر
نوتیفایر بعد برو متد ست فیلتر خالی فیلترز ن چون اینجا یه فیلتر تغییر میکنم
بیار بعد
چیو تغییر بده فیلتر
گلوتون فیلیو بکن از اکتیو از چک ببخشید
هرچی که هست اینم
دیگه باید بره از خود پرووایدر بخونه با سازرفی که اینجا داریم میام اینجا
میگم فاینال
اکتیو
فیلتر مساوی برو تو رف واچ کن
حالا به جای اینو میذارم اینجا میگم برو تو اکتیو پرووایدر خب چی رو
میخوام کدومشو میخوام
اون فیلتری رو میخوام که اسمش گلوتن فریه
قطعاًهم نال نیست و یه علامت تعجب اینجا
میذارم که این خطایی بره قطعاً نال نیست
حالا فقط کافیه که اینو همین کپی کنم برای همشون استفاده کنم بیام پایین
و در نهایت بگن
اینم از چقدر دنیا داره قشنگتر میشه خیلی داره سادهتر میشه واقعیت
خب بریم اپونو یه چک بکنیم ببینیم خطایی چیزی نداره
خطا دارید آها میگه توی صفحه فیلتر خط ۴۳ ۲۲ ۶۴ یا ابوالفض کجاست
۴۳ آها اینا چیزاش یادم رفت اینا باید ۸
تا اینو بزن باشه بذار همه رو بذارم
دیگه کجا اینجا تمام
خب بریم تو فیلتر بزنمش روی وجترین برگردم اینم اعمار کار
میشه همبرگر دیگه نیستن توی فرنچ بود یه
سالاد داشتیم درسته
اینو آورد
اینجا هم تیس سالاده داره میاره خیلی خب داره کار میکنه
خب بریم سراغ مرحله بعدی ما توی تب یه چیز
دیگه هم داریم
اینه که میاد غذاها رو بر اساس کتگوری که
انتخاب شده فیلتر میکنه درسته بون فیلتره
میاد غذاها رو فیلتر میکنه. میخوام برای
اینم یه پرووایدر درست کنم. اینو از اینجا
برمیدارم.
خب میخوام بیام اینجا رو درست کنم دیگه.
فعلاً اینجا یه چیزی مینویسم.
هیر میام تو فیلتر میایم فیلتر پرووایدر.
میخوام یه دونه پرووایدر جدید درست کنم.
شما میتونید چند تا پرووایدر کنار هم
داشته باشید بچهها.
اسمشو میذارم فیلتر.
میل پرووایدر
مساوی پرووایدر
رف
اینو میارم اینجا
ویژگی این پرووایدر چیه این پرووایدر هم
ارتباط داره با این یکی پرووایدر به خاطر
این اکتیو فیلتر هم ارتباط داره با میلزی
که من اینجا دارم با این پرووایدر
پس باید یه جوری اول بیام ارتباط بین
پرووایدرها ایجاد کنم
این کارو بچهها خیلی ساده با این رفا انجام میدیم یعنی میام میگم که فاینال
میلز
مساویست با برو تو رف
واچ کن چیو میلز پرووایدرو بچهها این
بالاهم باید ایمپورت شهها من حالا اینجا
زدم همین ایمپورت میکنه اینا
خب اینو میاره میذاره جای این دیگه چی
لازم داریم اکتیوو
فاینال
اکتیو که اصلاً تو همین صفحه هست یعنی
اصلاً نیاز جای دوری برید اکتیو
فیلترز مساوی رف
میخوام واچ
فیلترز پرووایدر
که خود فیلتر پرووایدر تو همین صفحهست
یعنی باز اصلا نیاز نیست ایمپورتم بشه
اینو ایمپورت کردیم ولی اینو نیاز نیست
حالا بریم داخل تب
اینجا که گفتم که اینو از کجا بیاره دیگه
اینا ارم لازم ندارم بچهها این د تا دیگه
لازم ندارم
میگم برو توی ر خب واچ کن چیو
فیلتر میلز پرووایدد اینو ببین هرچی این
بود ازش استفاده
و دیگه به اینم لازم ندارید آ اینم از اینور دار یه خطه ما اینور
داریم مثل اینکه کجاست
اینجاست بیس سمی کالم میخواد که درست شه
بریم یه چک بکنیم
[موسیقی] اینجا یه خطایی داریم همچنان
خب مشکل کجاست؟ آها اینو ریترن نکردم ای خدا
درست بریم توی فیلتر من بزنم رو وجترین همبرگر دیگه نباید باشه
آسیایی هم نباید باشه فرانسوی یه چیزی
داشتیم دقیقاً اینم م از این داره کار
میکنه. پس اینم میشه نحوه اینکه شما یه
پرووایدر دیگه داشته باشید که ربط داشته
باشه به پرووایدرهای دیگه.
خب یه تغییر آخرم بدیم و دیگه این فصلم
ببندیم. اونم اینه که قبلاً گفته بودم
اینو.
وقتی ما میریم داخل یه غذایی من اینو که
میزنم نگاه کنید اضافه میشه به فیبریت و
حذف میشه ولی خود این آیکونه تغییر
نمیکنه. میخوام این آیکونه تغییر کنه.
اضافهها رو ببندم میرم توی میل دیتیل
چی باید تغییر کنه بچهها یه آیکون اینجا
دارم اینا این میخوام اینو تغییر بدم بر
اساس همین این شرایط میام اینجا این رفو
دارم پس میام اینجا مینویسم که
فوریت میلز
مساویس با رف
واچ
فوریت میلز پرووایدر
اینو میخوام بیاریم
حالا از این میخوام استفاده کنم برای اینکه میخوام آیکونه رو تغییر بدم
چیکار میکنم این بچهها
اسکرین یه میلی رو به عنوان ورودی قبول
میکنه دیگه یه غذایی رو فقط کافیه که چک
کنم ببینم داخل فوری فوریت هست یا نیست؟
مساویه میگم فورت میلز
کانتن آیا میل داخلش هست یا نه؟ اگه بود این میشه ترو اگه نبود میشه فالس
حالا میام میگم که بر اساس این ببین ترن
اکسپرشن میرسم اینجا میگم اگر
این بود این ترو بود یعنی توی فوریتا هست
اونوقت همین آیکونز استاررو بیار
اگر ترو نبود یعنی نیست اونوقت برو توی
آیکونز
چی میگه؟ آ کانس دیگه نمیتونید بذارید بچهها ثابت نیست
این چکو تک بکنیم
داشت وقتی تو پره یعنی هست وقتی تو خالیه یعنی نیست
خیلی خب بچهها این اپلیکیشنمونم تمام شد
و این فصل کلاً تموم شد مفهوم پرووایدرها
مفهوم خیلی خیلی مهمیه اینکه شما یک
استیتی داشته باشید که تو کل برنامهتون
بتونید ازش استفاده کنید بدون که نیاز
باشه هی بین ویجتها و اسکریناتون هی دیتا
جابهجا بکنید بریم بیایم جلسه حاجی
میخوام بریم سرا مبحث بعدی میخوایم راجع
به انیمیشن صحبت بکنیم و کمکم دیگه برسیم
به آخر این دوره انشاءالله فعلاً خداحافظ