🔥Flutter Challenge
🔥چالش فلاتر
توی این کانال با چالش های متنوع و جذاب فلاتر رو عمیق تر و بهتر یاد می گیریم.
✅کوییز های متنوع و مفهومی
✅مینی اموزش های کاربردی
✅مقاله های شیرین
✅بحث های چالشی جذاب
✅و....
🔥برای نفوذ به اعماق فلاتر با این کانال همراه باش.😍😍
🔥چالش فلاتر
توی این کانال با چالش های متنوع و جذاب فلاتر رو عمیق تر و بهتر یاد می گیریم.
✅کوییز های متنوع و مفهومی
✅مینی اموزش های کاربردی
✅مقاله های شیرین
✅بحث های چالشی جذاب
✅و....
🔥برای نفوذ به اعماق فلاتر با این کانال همراه باش.😍😍
⚡️⚡️Dart Const⚡️⚡️
🔥🔥🔥حتا اگه مفهوم const توی دارت رو بلدی این مجموعه مقاله رو از دست نده
🔴Introduction
https://vrgl.ir/P0OY9
🟢 Const variables
https://vrgl.ir/9gY6l
🔴Classes - static const
https://vrgl.ir/tSm5E
🟢Const values
https://vrgl.ir/CP6nf
🔴Classes - const constructor
https://vrgl.ir/0nqKn
🟢Flutter
https://vrgl.ir/VCfTr
🔥🔥🔥حتا اگه مفهوم const توی دارت رو بلدی این مجموعه مقاله رو از دست نده
🔴Introduction
https://vrgl.ir/P0OY9
🟢 Const variables
https://vrgl.ir/9gY6l
🔴Classes - static const
https://vrgl.ir/tSm5E
🟢Const values
https://vrgl.ir/CP6nf
🔴Classes - const constructor
https://vrgl.ir/0nqKn
🟢Flutter
https://vrgl.ir/VCfTr
در آینده بحث null safety رو خواهیم داشت...
شبیه مقالاتی که برای const داشتیم پیش میریم...
همون طور که const توسط کامپایلر مدیریت میشه، null safety هم موضوعی هست که توسط کامپایلر مدیریت میشه و برای درک و استفاده درست باید دقیقن بدونیم که کامپایلر در این مورد چکار میکنه.
شبیه مقالاتی که برای const داشتیم پیش میریم...
همون طور که const توسط کامپایلر مدیریت میشه، null safety هم موضوعی هست که توسط کامپایلر مدیریت میشه و برای درک و استفاده درست باید دقیقن بدونیم که کامپایلر در این مورد چکار میکنه.
⚡️⚡️Three types of equality⚡️⚡️
توی مقاله های مربوط به const گفتیم که وقتی که از اپراتور == استفاده میکنیم و دو تا variable رو با هم مقایسه میکنیم بررسی میکنه که آیا این دو تا variable دقیقن به یک مکان از حافظه اختصاص دارن (یا بهتره بگیم اون دو تا متغیر دقیقن به یک خونه از حافظه اشاره میکنن) یا که نه....
به این نوع مقایسه دو تا variable نوع Reference equality میگن.
یعنی آیا رفرنس یکسانی دارن...
اما علاوه بر این دو روش دیگه هم برای بررسی برابری توی دنیای برنامه نویسی استفاده میشه .
انواع روش های بررسی برابری در دنیای برنامه نویسی.
1) Reference equality
2) Identifier equality
3) Structural equality
هر کدوم از اینها کاربرد خاصی دارن و باید توی جایگاه مناسب ازشون استفاده بشه...
توی مقاله های مربوط به const گفتیم که وقتی که از اپراتور == استفاده میکنیم و دو تا variable رو با هم مقایسه میکنیم بررسی میکنه که آیا این دو تا variable دقیقن به یک مکان از حافظه اختصاص دارن (یا بهتره بگیم اون دو تا متغیر دقیقن به یک خونه از حافظه اشاره میکنن) یا که نه....
به این نوع مقایسه دو تا variable نوع Reference equality میگن.
یعنی آیا رفرنس یکسانی دارن...
اما علاوه بر این دو روش دیگه هم برای بررسی برابری توی دنیای برنامه نویسی استفاده میشه .
انواع روش های بررسی برابری در دنیای برنامه نویسی.
1) Reference equality
2) Identifier equality
3) Structural equality
هر کدوم از اینها کاربرد خاصی دارن و باید توی جایگاه مناسب ازشون استفاده بشه...
⚡️⚡️Widget is immutable⚡️⚡️
🔥ویجت توی فلاتر کلن immutable هست، فرقی نمیکنه ویجتمون Stateless باشه یا Stateful یا...
بعضی جاها میبینم که میگن Stateless ها immutable هستن و Stateful ها mutable هستن.
❌این جمله اصلن درست نیست.
✅ویجت های Stateful هم immutable هستن فقط یه State دارن که اون State در واقع mutable هست.
پس در هر صورت ویجت immutable هست و همه instance field های اون باید final باشن.
🔥پس طبق مفهوم کلاس های immutable( که توی مقاله const contractor ) بهش اشاره کردیم، هر وقت خواستیم ویجت مورد نظرمون رو بر اساس کانفیگ جدید تغییر بدیم باید یه ویجت جدید با کانفیگ جدید بسازیم نه اینکه ویجت قبلی رو اپدیت کنیم...
🔥ویجت توی فلاتر کلن immutable هست، فرقی نمیکنه ویجتمون Stateless باشه یا Stateful یا...
بعضی جاها میبینم که میگن Stateless ها immutable هستن و Stateful ها mutable هستن.
❌این جمله اصلن درست نیست.
✅ویجت های Stateful هم immutable هستن فقط یه State دارن که اون State در واقع mutable هست.
پس در هر صورت ویجت immutable هست و همه instance field های اون باید final باشن.
🔥پس طبق مفهوم کلاس های immutable( که توی مقاله const contractor ) بهش اشاره کردیم، هر وقت خواستیم ویجت مورد نظرمون رو بر اساس کانفیگ جدید تغییر بدیم باید یه ویجت جدید با کانفیگ جدید بسازیم نه اینکه ویجت قبلی رو اپدیت کنیم...
Pure Coder
⚡️⚡️Widget is immutable⚡️⚡️ 🔥ویجت توی فلاتر کلن immutable هست، فرقی نمیکنه ویجتمون Stateless باشه یا Stateful یا... بعضی جاها میبینم که میگن Stateless ها immutable هستن و Stateful ها mutable هستن. ❌این جمله اصلن درست نیست. ✅ویجت های Stateful هم immutable…
Prefer declaring const constructors on @immutable classes.dartprefer_const_constructors_in_immutables
اگه موقع ایجاد یه ویجت جدید توی نسخه جدید فلاتر (۲/۵) با این warning روبرو شدید.
بخاطر این هستش که از const constructor استفاده نکردین...
اگه روی لینک هشدار بزنید و صفحه مربوطه رو باز کنید عکس بالا رو میبنید که کامل توضیح داده.
همون طور که گفتیم ویجت ها توی فلاتر immutable هستن و باید const constructor داشته باشن.
حالا توی این ورژن به const constructor حساس تر شده و در صورت عدم رعایت هشدار میده....
اگه موقع ایجاد یه ویجت جدید توی نسخه جدید فلاتر (۲/۵) با این warning روبرو شدید.
بخاطر این هستش که از const constructor استفاده نکردین...
اگه روی لینک هشدار بزنید و صفحه مربوطه رو باز کنید عکس بالا رو میبنید که کامل توضیح داده.
همون طور که گفتیم ویجت ها توی فلاتر immutable هستن و باید const constructor داشته باشن.
حالا توی این ورژن به const constructor حساس تر شده و در صورت عدم رعایت هشدار میده....
⚡️⚡️Const Widget⚡️⚡️
🔥وقتی که یه ویجت رو به const constructor مجهز میکنیم و موقع ساخت ابجکت ازش به جای new از const استفاده میکنیم، چه اتفاقی میوفته؟
✅اول اینکه باعث میشه از اون کلاس ابجکت های مختلف ساخته نشه و بر اساس نیاز هایی که داریم موقع کامپایل ابجکت های مورد نیاز ساخته بشه و این باعث مدیریت رم میشه.
✅دوم باعث میشه که موقع rebuild شدن صفحه اون ویجت rebuild نشه (به خاطر نوع برخوردی که فریمورک فلاتر با ویجت های const میکنه) و این کمک میکنه که cpu کار کمتری انجام بده.
🔥پس هم کمک کردیم به مدیریت رم و هم کمک کردیم به بهینه تر شدن پردازش هایی که قراره cpu انجام بده.
🔥🔥با توجه به اینکه اینجور مواقع اون ویجتی که واسش از const استفاده کردین دیگه rebuild نمیشه، حواستون باشه اگه یه ویجتی هست که نیازه که rebuild بشه از const استفاده نکنین.
🔥وقتی که یه ویجت رو به const constructor مجهز میکنیم و موقع ساخت ابجکت ازش به جای new از const استفاده میکنیم، چه اتفاقی میوفته؟
✅اول اینکه باعث میشه از اون کلاس ابجکت های مختلف ساخته نشه و بر اساس نیاز هایی که داریم موقع کامپایل ابجکت های مورد نیاز ساخته بشه و این باعث مدیریت رم میشه.
✅دوم باعث میشه که موقع rebuild شدن صفحه اون ویجت rebuild نشه (به خاطر نوع برخوردی که فریمورک فلاتر با ویجت های const میکنه) و این کمک میکنه که cpu کار کمتری انجام بده.
🔥پس هم کمک کردیم به مدیریت رم و هم کمک کردیم به بهینه تر شدن پردازش هایی که قراره cpu انجام بده.
🔥🔥با توجه به اینکه اینجور مواقع اون ویجتی که واسش از const استفاده کردین دیگه rebuild نمیشه، حواستون باشه اگه یه ویجتی هست که نیازه که rebuild بشه از const استفاده نکنین.
در مورد کدوم یک از موارد زیر بیشتر صحبت کنیم؟
Anonymous Poll
22%
مفهوم BuildContext
31%
مفهوم key و کاربردهاش
14%
مفاهیم پایه ای استیت منیجمنت
33%
مفاهیم پایه ای و اصول طراحی یه معماری خوب برای اپ های فلاتر
⚡️⚡️print⚡️⚡️
❌اگه موقع استفاده از دستور print بهتون Warning داد که توی پروداکشن از print استفاده نکنید...
✅میتونید به جاش از دستور debugPrint استفاده کنید
❌اگه موقع استفاده از دستور print بهتون Warning داد که توی پروداکشن از print استفاده نکنید...
✅میتونید به جاش از دستور debugPrint استفاده کنید
⚡️⚡️Theme.of⚡️⚡️
🔥اگه برنامتون قراره از چند تم استفاده کنه یا به هر طریقی قراره که تم برنامه آپدیت بشه مهم هست که Theme.of رو کجا صدا بزنید...
✅از Theme.of استفاده میکینم برای بدست اوردن اطلاعات تم برنامه.
✅وقتی که تم برنامه اپدیت میشه (پارامتر theme توی متریال اپ اپدیت میشه) یا اینکه تم برنامه سوییچ میشه (توی متریال اپ themeMode تغییر میکنه), مهم هست که همه ویجت هایی که از تم استفاده میکنن خودشون رو براساس تم جدید اپدیت کنن.
❓حالا این جا هست که مهم میشه که Theme.of رو باید کجا صدا بزنیم؟ و با اپدیت تم برنامه چه اتفاقی رخ میده؟
🔥اگه برنامتون قراره از چند تم استفاده کنه یا به هر طریقی قراره که تم برنامه آپدیت بشه مهم هست که Theme.of رو کجا صدا بزنید...
✅از Theme.of استفاده میکینم برای بدست اوردن اطلاعات تم برنامه.
✅وقتی که تم برنامه اپدیت میشه (پارامتر theme توی متریال اپ اپدیت میشه) یا اینکه تم برنامه سوییچ میشه (توی متریال اپ themeMode تغییر میکنه), مهم هست که همه ویجت هایی که از تم استفاده میکنن خودشون رو براساس تم جدید اپدیت کنن.
❓حالا این جا هست که مهم میشه که Theme.of رو باید کجا صدا بزنیم؟ و با اپدیت تم برنامه چه اتفاقی رخ میده؟
Pure Coder
⚡️⚡️Theme.of⚡️⚡️ 🔥اگه برنامتون قراره از چند تم استفاده کنه یا به هر طریقی قراره که تم برنامه آپدیت بشه مهم هست که Theme.of رو کجا صدا بزنید... ✅از Theme.of استفاده میکینم برای بدست اوردن اطلاعات تم برنامه. ✅وقتی که تم برنامه اپدیت میشه (پارامتر theme توی…
⚡️⚡️Theme.of⚡️⚡️
🔥هر ویجتی که این متد رو صدا میزنه و context خودش رو به این متد پاس میده (خیلی مهم هست که حتمن context خودش رو پاس بده) بعد از اپدیت تم ریبیلد میشه.
🔥به صورت دقیق تر اگه یه استیت لس این متد رو صدا بزنه بعد از اپدیت تم اون ویجت ریبیلد میشه
و اگه داخل استیت یه استیت فول این متد صدا زده بشه بعد از اپدیت تم به ترتیب
didChangeDependencies
build
صدا زده میشن.
✅پس این متد رو داخل متد build استیت لس و یا داخل متد didChangeDependencies یا build استیت صدا بزنید.
🔥حتمن context خود ویجت رو بهش پاس بدید.
🔥🔥اگه ویجت از نوع const هم باشه بعد از اپدیت تم ریبیلد میشه. و اینجا const بودن از ریبیلد شدن جلوگیری نمیکنه.
🔥هر ویجتی که این متد رو صدا میزنه و context خودش رو به این متد پاس میده (خیلی مهم هست که حتمن context خودش رو پاس بده) بعد از اپدیت تم ریبیلد میشه.
🔥به صورت دقیق تر اگه یه استیت لس این متد رو صدا بزنه بعد از اپدیت تم اون ویجت ریبیلد میشه
و اگه داخل استیت یه استیت فول این متد صدا زده بشه بعد از اپدیت تم به ترتیب
didChangeDependencies
build
صدا زده میشن.
✅پس این متد رو داخل متد build استیت لس و یا داخل متد didChangeDependencies یا build استیت صدا بزنید.
🔥حتمن context خود ویجت رو بهش پاس بدید.
🔥🔥اگه ویجت از نوع const هم باشه بعد از اپدیت تم ریبیلد میشه. و اینجا const بودن از ریبیلد شدن جلوگیری نمیکنه.
فلاتر چند نوع ویجت داره؟ (ویجت های بیس)
اسم ویجت های مورد نظرتون رو کامنت کنید، بعدن کامل راجبش توضیح میدیم...
اسم ویجت های مورد نظرتون رو کامنت کنید، بعدن کامل راجبش توضیح میدیم...
Anonymous Poll
51%
2
13%
3
8%
4
21%
5
8%
هیچکدوم
Pure Coder
فلاتر چند نوع ویجت داره؟ (ویجت های بیس)
اسم ویجت های مورد نظرتون رو کامنت کنید، بعدن کامل راجبش توضیح میدیم...
اسم ویجت های مورد نظرتون رو کامنت کنید، بعدن کامل راجبش توضیح میدیم...
دوستانی که ۳ یا ۴ یا ۵ رو انتخاب میکنن حتمن جواب هاشون رو کامنت کنن.🙏🙏🙏
⚡️⚡️Types of widgets⚡️⚡️
🔥انواع ویجت ها توی فلاتر به دسته های زیر تقسیم میشن :
1) StatelessWidget
2) StatefulWidget
3) InheritedWidget
4) ParentDataWidget
5) RenderObjectWidget
خود RenderObjectWidget انواع مختلفی داره :
LeafRenderObjectWidget
SingleChildRenderObjectWidget
MultiChildRenderObjectWidget
😍در مورد هر کدوم از اینها و کاربرد هاشون صحبت میکنیم...
🔥انواع ویجت ها توی فلاتر به دسته های زیر تقسیم میشن :
1) StatelessWidget
2) StatefulWidget
3) InheritedWidget
4) ParentDataWidget
5) RenderObjectWidget
خود RenderObjectWidget انواع مختلفی داره :
LeafRenderObjectWidget
SingleChildRenderObjectWidget
MultiChildRenderObjectWidget
😍در مورد هر کدوم از اینها و کاربرد هاشون صحبت میکنیم...
Forwarded from Pure Coder
در مورد کدوم یک از موارد زیر بیشتر صحبت کنیم؟
Anonymous Poll
22%
مفهوم BuildContext
31%
مفهوم key و کاربردهاش
14%
مفاهیم پایه ای استیت منیجمنت
33%
مفاهیم پایه ای و اصول طراحی یه معماری خوب برای اپ های فلاتر