با توجه به ویدیو بالا برای نمایش انواع دیالوگ شما چه راه حلی را پیشنهاد میکنید (برای درک بهتر از عکس ها میتواند کمک بگیرید)
Anonymous Quiz
18%
با شرط های if و else
25%
Factory method design pattern
19%
Singeleton design pattern
38%
مشاهده نتایج
Forwarded from Pure Coder
⚡️⚡️⚡️Flutter threads⚡️⚡️⚡️
1️⃣
❓آیا فلاتر single thread هست؟ 🤔
جواب این سوال هم آره هست و هم نه. 😳😳
ولی چرا اره و چرا نه.
بستگی داره از چه نظر به موضوع نگاه کنیم.
🔥اگه فقط کدهایی که خودمون داریم مینویسیم رو در نظر بگیریم و کار هایی ک framework فلاتر روی کدهای ما انجام میده به جواب آره میرسیم.
جهت یادآوری بگم که قبلن توی یه پست دیگه در مورد بخش های مختلف فلاتر توضیح دادیم و گفتیم که فلاتر از یه بخش به اسم framework که کلن با Dart نوشته شده و یه بخش دیگه به اسم engine که با c++ نوشته شده و ... تشکیل شده.
اینجا منظورمون از framework هم همون بخش نوشته شده با Dart هست.
✔️این جا یه thread داریم به اسم UI thread که تمام کدهایی که ما نوشتیم به علاوه کار هایی framework انجام میده، داخلش انجام میشه.
❓حالا کار هایی که framework انجام میده چیه؟
بحث کردن راجب این موضوع خیلی مفصله ولی به طور کلی و خیلی ساده framework کدهای ما (ویجت ها) رو به ی سری painting commands تبدیل میکنه که بعدن اون رو تحویل engine بده و engine هم اون رو روی صفحه نمایش بده.
همچنین کارهای دیگه ای هم framework انجام میده از جمله دریافت event هایی مثل touch یا click های کاربر از engine و پردازش اون ها و هدایت کردن اون touch ها به سمت object های هدف.
کارهای framework به این موارد خلاصه نمیشن....
همه این کارها در یک thread انجام میشه(یک isolate که یک thread داره)
🔥پس نکته مهمی که این جا مطرح هست block نشدن این thread هست.
یعنی باید جوری کد بنویسیم که این thread قفل یا block نشه که اگه این اتفاق بیوفته نتیجش افت frame و لگ توی برنامه (به خصوص موقع اجرای انیمیشن ها خواهد بود)
🔥برای جلوگیری از block شدن این thread میتونیم برای پردازش های سنگین ، isolate های دیگه ای بسازیم.
✔️در مورد جواب ،،نه،، این سوال هم توی پست بعدی صحبت میکینم. ☺️
1️⃣
❓آیا فلاتر single thread هست؟ 🤔
جواب این سوال هم آره هست و هم نه. 😳😳
ولی چرا اره و چرا نه.
بستگی داره از چه نظر به موضوع نگاه کنیم.
🔥اگه فقط کدهایی که خودمون داریم مینویسیم رو در نظر بگیریم و کار هایی ک framework فلاتر روی کدهای ما انجام میده به جواب آره میرسیم.
جهت یادآوری بگم که قبلن توی یه پست دیگه در مورد بخش های مختلف فلاتر توضیح دادیم و گفتیم که فلاتر از یه بخش به اسم framework که کلن با Dart نوشته شده و یه بخش دیگه به اسم engine که با c++ نوشته شده و ... تشکیل شده.
اینجا منظورمون از framework هم همون بخش نوشته شده با Dart هست.
✔️این جا یه thread داریم به اسم UI thread که تمام کدهایی که ما نوشتیم به علاوه کار هایی framework انجام میده، داخلش انجام میشه.
❓حالا کار هایی که framework انجام میده چیه؟
بحث کردن راجب این موضوع خیلی مفصله ولی به طور کلی و خیلی ساده framework کدهای ما (ویجت ها) رو به ی سری painting commands تبدیل میکنه که بعدن اون رو تحویل engine بده و engine هم اون رو روی صفحه نمایش بده.
همچنین کارهای دیگه ای هم framework انجام میده از جمله دریافت event هایی مثل touch یا click های کاربر از engine و پردازش اون ها و هدایت کردن اون touch ها به سمت object های هدف.
کارهای framework به این موارد خلاصه نمیشن....
همه این کارها در یک thread انجام میشه(یک isolate که یک thread داره)
🔥پس نکته مهمی که این جا مطرح هست block نشدن این thread هست.
یعنی باید جوری کد بنویسیم که این thread قفل یا block نشه که اگه این اتفاق بیوفته نتیجش افت frame و لگ توی برنامه (به خصوص موقع اجرای انیمیشن ها خواهد بود)
🔥برای جلوگیری از block شدن این thread میتونیم برای پردازش های سنگین ، isolate های دیگه ای بسازیم.
✔️در مورد جواب ،،نه،، این سوال هم توی پست بعدی صحبت میکینم. ☺️
Media is too big
VIEW IN TELEGRAM
سلام.
پست جدید توی flutter4fun منتشر شد.
https://flutter4fun.com/ui-challenge-7/
به صورت لایو هم میتونید همین الان اجراش کنید توی مرورگرتون.
Live Demo:
https://flutter4fun.github.io/UI-Challenge-7-Live/#/
پست جدید توی flutter4fun منتشر شد.
https://flutter4fun.com/ui-challenge-7/
به صورت لایو هم میتونید همین الان اجراش کنید توی مرورگرتون.
Live Demo:
https://flutter4fun.github.io/UI-Challenge-7-Live/#/
تست نوسی تو فلاتر انجام میدین؟
Anonymous Poll
18%
اره معلومه که باید انجام بدم
15%
نه من به کدم اطمینان دارم و حوصله تست نویسی ندارم
33%
چی چی هست اصلا !!
34%
میخوام فقط نتیجه رو ببینم ☺️😉
وظیفه متد بالا چیست
Anonymous Quiz
7%
فقط ارسال عکس و فیلم
16%
دریافت فایل
4%
ارسال متن
45%
ارسال فایل
9%
متد مشکل داره و بدون خروجی
19%
نمیدونم (مشاهده نتایج)
🔥دوستانی که به دنبال یادگیری عمیق و مفهومی null safety هستید، مجموعه مقاله زیر رو دنبال کنید....
https://virgool.io/flutter-challenge/dart-null-safety-introduction-qelr6jcpsj1c
🔥حتی دوستانی هم که null safety رو مسلط هستن از دنبال کردن این مجموعه ضرر نمیکنن.
قسمت های جدید به زودی منتشر میشه...
منتظر سوپرایز های خیلی ویژه باشید 😍😍
https://t.me/flutter_challenges
https://virgool.io/flutter-challenge/dart-null-safety-introduction-qelr6jcpsj1c
🔥حتی دوستانی هم که null safety رو مسلط هستن از دنبال کردن این مجموعه ضرر نمیکنن.
قسمت های جدید به زودی منتشر میشه...
منتظر سوپرایز های خیلی ویژه باشید 😍😍
https://t.me/flutter_challenges
دوتا پکیج عالی که بعد از اجرا کدتون روی هر شبیه ساز یا دیوایسی، میتونه کلی دیوایس دیگه رو براتون شبیه سازی کنه و خروجی رو توی دیوایس های مختلف ببینید 😍🤩(برای کسانی که آیفون ندارن میتونه کاربردی باشه)
device_preview
device_simulator
device_preview
device_simulator
Forwarded from Pure Coder
⚡️⚡️InheritedWidget⚡️⚡️
2⃣
وقتی که از stateful استفاده میکینم بعد از setState فقط متد build کلاس state یک بار دیگه اجرا میشه و باعث میشه که کل درختی که زیر مجموعه اون هست یک بار دیگه ساخته و کانفیگ بشه.
🔥ولی قابلیتی که inheritedWidget ارائه میده این هست که با استفاده از اون میشه هر قسمت دلخواهی از درخت رو که خواستیم (به صورت دقیق تر هر قسمت درخت که به inheritedWidget مربوطه وابسته بود) آپدیت (rebuild) کنیم.
✅برای این منظور یک InheritedWidget در راس درخت مورد نظر قرار میگیره.
از اونجایی که InheritedWidget یک پروکسی هست یک ویجت به عنوان child میگیره و با اون child زیر درخت اون ساخته میشه.
علاوه بر اون یک سری data هم میتونه داشته باشه و ویجت های زیر مجموعه با استفاده از دستور
widgetName.of(context)
میتونن به اون دیتا که داخل inheritedWidget هست دسترسی پیدا کنن.
🔥حالا نکته مهم اینجاست که هر موقع که inheritedWidget مربوطه اپدیت بشه و دیتاش تغییر کنه هر ویجتی که توی زیر درختش با استفاده از متد
.of
بهش وابسته شده باشه rebuild میشه و ویجت هایی که بهش وابسته نشدن rebuild نمیشن.
😍😍یعنی یک rebuild کاملن هوشمند.
🔥فقط اون هایی که بهش وابسته شدن rebuild میشن.
#inherited_widget
#widgets
2⃣
وقتی که از stateful استفاده میکینم بعد از setState فقط متد build کلاس state یک بار دیگه اجرا میشه و باعث میشه که کل درختی که زیر مجموعه اون هست یک بار دیگه ساخته و کانفیگ بشه.
🔥ولی قابلیتی که inheritedWidget ارائه میده این هست که با استفاده از اون میشه هر قسمت دلخواهی از درخت رو که خواستیم (به صورت دقیق تر هر قسمت درخت که به inheritedWidget مربوطه وابسته بود) آپدیت (rebuild) کنیم.
✅برای این منظور یک InheritedWidget در راس درخت مورد نظر قرار میگیره.
از اونجایی که InheritedWidget یک پروکسی هست یک ویجت به عنوان child میگیره و با اون child زیر درخت اون ساخته میشه.
علاوه بر اون یک سری data هم میتونه داشته باشه و ویجت های زیر مجموعه با استفاده از دستور
widgetName.of(context)
میتونن به اون دیتا که داخل inheritedWidget هست دسترسی پیدا کنن.
🔥حالا نکته مهم اینجاست که هر موقع که inheritedWidget مربوطه اپدیت بشه و دیتاش تغییر کنه هر ویجتی که توی زیر درختش با استفاده از متد
.of
بهش وابسته شده باشه rebuild میشه و ویجت هایی که بهش وابسته نشدن rebuild نمیشن.
😍😍یعنی یک rebuild کاملن هوشمند.
🔥فقط اون هایی که بهش وابسته شدن rebuild میشن.
#inherited_widget
#widgets