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