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