Forwarded from Persian Flutter (PayamZ)
چالش ساخت Drop Down رو یادتونه؟
تو این مقاله باهم یاد میگیریم که چطور یه DropDown بسازیم و در کنار اون با ویجت هایی مثل
OverlayPortal ,LayerLink, CompositedTransformTarget, CompositedTransformFollower
آشنا میشیم
لایک فراموش نشه
https://medium.com/snapp-x/creating-custom-dropdowns-with-overlayportal-in-flutter-4f09b217cfce
تو این مقاله باهم یاد میگیریم که چطور یه DropDown بسازیم و در کنار اون با ویجت هایی مثل
OverlayPortal ,LayerLink, CompositedTransformTarget, CompositedTransformFollower
آشنا میشیم
لایک فراموش نشه
https://medium.com/snapp-x/creating-custom-dropdowns-with-overlayportal-in-flutter-4f09b217cfce
Medium
Creating Custom Dropdowns with OverlayPortal in Flutter
One of the most common widgets in Flutter is the Material Dropdown. However, there is a problem: It’s not customizable!
توی انیمیشن های فلاتر (Animation) از چه دیزاین پترنی استفاده شده؟
Anonymous Quiz
20%
Composite
19%
Decorator
52%
Observer
8%
Visitor
Forwarded from Persian Flutter (PayamZ)
This media is not supported in your browser
VIEW IN TELEGRAM
با پکیج Flex Drop Down به سادگی میتونید هر Drop Down ای که دوست دارید رو درست کنید
https://github.com/Snapp-X/flex_dropdown
https://github.com/Snapp-X/flex_dropdown
💥Flutter Tip
💥قبلن MediaQuery توسط WidgetsApp یا حالا به عبارتی توسط MaterialApp توی درخت قرار میگرفت.
💥توی ورژن های جدید دیگه اینجوری نیست و MediaQuery از یه لول بالاتر توی درخت قرار میگیره!!!
💥همین طور که توی کد بالا میبینی, با context ای که بالاتر از MaterialApp هست به MediaQuery دسترسی دارم!!!
❓حالا اگه گفتی این تغییر به خاطر چیه؟
❓در آینده قراره چه اتفاقی توی فلاتر رخ بده که چنین تغییری ایجاد شده؟
❓چه انقلابی در راهه؟
@purecoder_ir
💥قبلن MediaQuery توسط WidgetsApp یا حالا به عبارتی توسط MaterialApp توی درخت قرار میگرفت.
💥توی ورژن های جدید دیگه اینجوری نیست و MediaQuery از یه لول بالاتر توی درخت قرار میگیره!!!
💥همین طور که توی کد بالا میبینی, با context ای که بالاتر از MaterialApp هست به MediaQuery دسترسی دارم!!!
❓حالا اگه گفتی این تغییر به خاطر چیه؟
❓در آینده قراره چه اتفاقی توی فلاتر رخ بده که چنین تغییری ایجاد شده؟
❓چه انقلابی در راهه؟
@purecoder_ir
Forwarded from Jadi Var Log
این چند وقت صحبت از زبان موجو هم زیاده. زبانی که ادعا میکنه مناسب ای.آی. است و گاهی۳۵هزار برابر سریعتر از پایتون است و ..
توی این ویدئو نگاهی کوتاه به کلیت ماجرا میندازم و میبینیم چرا موجویی که هنوز حتی نیومده اینقدر در خبرها است و ما باید چیکار کنیم(:
https://youtu.be/HwkS8dhKy1I
توی این ویدئو نگاهی کوتاه به کلیت ماجرا میندازم و میبینیم چرا موجویی که هنوز حتی نیومده اینقدر در خبرها است و ما باید چیکار کنیم(:
https://youtu.be/HwkS8dhKy1I
YouTube
نگاهی به زبان جدید برنامه نویسی موجو و بحث اینکه «چی یاد بگیریم؟.. نکنه...» (:
در این چند وقت ویدئوها و اخبار زیادی در مورد زبانی به اسم موجو هست که ادعا میکنه در بعضی مسائل، ۳۵هزار برابر سریعتر از پایتون ران میشه. زبانی که میگه برای هوش مصنوعی مناسبه و هنوز هم هیچ کس ازش چیز درستی نمیدونه چون اصولا هنوز حتی منتشر نشده. اما خب چنین…
Forwarded from Persian Flutter (PayamZ)
Forwarded from Saeed Ahmadi
دوستان سلام.
یه مشکلی که خیلی از برنامهنویسای اپ دارن، هندل کردن حالت های مختلف fail شدن یه ریکوسته.
مثلاً توی اپ هر ریکوستی میتونه به یه سری مشکل بخوره.
1. اینکه اینترنت گوشی کاربر خاموش باشه.
2. کاربر توکن نداشته باشه (لاگین نباشه) یا توکن منقضی شده باشه.
3. سرور 500 بگیریم
حالتهای دیگهای هم داریم که فعلا کاری باهاش ندارم.
توی هرکدوم از این حالتها ممکنه بخوایم کاربر رو بفرستیم به یه صفحه دیگه و یا یه دیالوگ نشون بدیم. برای بعضی خیلی از ارورها هم میخوایم که داخل این صفحه یا دیالوگ یه دکمه retry هم داشته باشیم که کاربر اگه روش زد همون ریکوستی که fail شده دوباره زده بشه.
قاعدتاً ما نباید برای هر ریکوستی به صورت جدا این موارد رو چک کنیم، و باید یه بار نوشته بشن و برای ریکوستها استفاده بشن.
کسی تا حالا این مشکل رو به صورت اصولی و طبق قواعد معماری کلین و سالید و کلین کد حل کرده؟
راه حلهایی هست که کانتکس پاس بدیم یا از یه navigator گلوبال استفاده کنیم، اما به نظرم اصولی نیست.
کانتکس رو نباید از ui بدیم بره بیرون.
اگه سمپل یا راهنماییای در این مورد دارید، ممنون میشم بگید.
یه مشکلی که خیلی از برنامهنویسای اپ دارن، هندل کردن حالت های مختلف fail شدن یه ریکوسته.
مثلاً توی اپ هر ریکوستی میتونه به یه سری مشکل بخوره.
1. اینکه اینترنت گوشی کاربر خاموش باشه.
2. کاربر توکن نداشته باشه (لاگین نباشه) یا توکن منقضی شده باشه.
3. سرور 500 بگیریم
حالتهای دیگهای هم داریم که فعلا کاری باهاش ندارم.
توی هرکدوم از این حالتها ممکنه بخوایم کاربر رو بفرستیم به یه صفحه دیگه و یا یه دیالوگ نشون بدیم. برای بعضی خیلی از ارورها هم میخوایم که داخل این صفحه یا دیالوگ یه دکمه retry هم داشته باشیم که کاربر اگه روش زد همون ریکوستی که fail شده دوباره زده بشه.
قاعدتاً ما نباید برای هر ریکوستی به صورت جدا این موارد رو چک کنیم، و باید یه بار نوشته بشن و برای ریکوستها استفاده بشن.
کسی تا حالا این مشکل رو به صورت اصولی و طبق قواعد معماری کلین و سالید و کلین کد حل کرده؟
راه حلهایی هست که کانتکس پاس بدیم یا از یه navigator گلوبال استفاده کنیم، اما به نظرم اصولی نیست.
کانتکس رو نباید از ui بدیم بره بیرون.
اگه سمپل یا راهنماییای در این مورد دارید، ممنون میشم بگید.
نظر سنجی
فرض کنید پروژه ای دارید که براش تست نوشتید، حالا قراره که بین clean بودن پروداکشن کد و clean بودن تست یکی رو انتخاب کنید (همه چیز فرضی هست)
کدوم رو انتخاب میکنید؟
فرض کنید پروژه ای دارید که براش تست نوشتید، حالا قراره که بین clean بودن پروداکشن کد و clean بودن تست یکی رو انتخاب کنید (همه چیز فرضی هست)
کدوم رو انتخاب میکنید؟
Anonymous Poll
84%
کلین بودن پروداکشن کد
16%
کلین بودن تست
💥Challenge
💥یه چالش که جواد زبیدی عزیز مطرحش کرد...
لیستی از لینک های ویدیو داریم میخوایم این لینک ها رو به وسیله یک صف دانلود کنیم
15 لینک داریم میخوایم توی یک صف قرارشون بدیم و 5 تای اول رو شروع کنیم دانلود و هرکدوم تموم شد از لیست حذف بشه و یکی دیگه جاشو بگیره این عمل انجام بشه تا بره برسه به اخرین لینک و همشون رو دانلود کنه
از کلکش Queue توی دارت هم اجازه نداریم استفاده کنیم
🔴توضیح:
ببین 15 لینک داریم میخوایم دانلود کنیم ولی نمیخوایم همشون با هم دانلود بشن برای اولین بار که صف خالی باشه 5 دانلود بشند و بعد هر تعداد از این 5 تا کم بشه باید به همون تعداد از لیست باقیمونده بهش اضافه بشه...
@purecoder_ir
💥یه چالش که جواد زبیدی عزیز مطرحش کرد...
لیستی از لینک های ویدیو داریم میخوایم این لینک ها رو به وسیله یک صف دانلود کنیم
15 لینک داریم میخوایم توی یک صف قرارشون بدیم و 5 تای اول رو شروع کنیم دانلود و هرکدوم تموم شد از لیست حذف بشه و یکی دیگه جاشو بگیره این عمل انجام بشه تا بره برسه به اخرین لینک و همشون رو دانلود کنه
از کلکش Queue توی دارت هم اجازه نداریم استفاده کنیم
🔴توضیح:
ببین 15 لینک داریم میخوایم دانلود کنیم ولی نمیخوایم همشون با هم دانلود بشن برای اولین بار که صف خالی باشه 5 دانلود بشند و بعد هر تعداد از این 5 تا کم بشه باید به همون تعداد از لیست باقیمونده بهش اضافه بشه...
@purecoder_ir
Pure Coder
💥Challenge 💥یه چالش که جواد زبیدی عزیز مطرحش کرد... لیستی از لینک های ویدیو داریم میخوایم این لینک ها رو به وسیله یک صف دانلود کنیم 15 لینک داریم میخوایم توی یک صف قرارشون بدیم و 5 تای اول رو شروع کنیم دانلود و هرکدوم تموم شد از لیست حذف بشه و یکی دیگه…
💥Tip
💥Stack vs Queue
💥دو کالکشن خاص با ویژگی های منحصر به فرد و در نتیجه کاربرد های منحصر به فرد هستن...
💥توی استک دو operation مهم داریم :
✅push
✅pop
بوسیله ی push یه ایتم به کالکشن یا مجموعه اضافه میشه و به وسیله pop یه دونه حذف میشه
💥توی Queue یا صف هم دو operation مهم داریم:
✅enqueue
✅dequeue
به وسیله ی enqueue یه دونه اضافه و به وسیله ی dequeue یه دونه حذف میشه.
💥تفاوت این ها در اینه که stack ها LIFO هستن و Queue ها FIFO
LIFO => Last in First out
یعنی اخرین ایتمی که توسط push به کالکشن اضافه شده، توسط pop از کالکشن خارج میشه.
FIFO => First in First out
یعنی اولین ایتمی که توسط enqueue به کالکشن اضافه شده توسط dequeue از کالکشن خارج میشه.
💥استک شبیه به یک لیوان که داخلش یه چیزی میریزید (push) و بعد که میخواین بردارید(pop), اونایی که اخر ریختید زودتر خارج میشن.
💥صف یا queue شبیه به یک لوله که مواد از یه طرف وارد و از طرف دیگه خارج میشن و اونایی که زودتر وارد شدن (enqueue) زودتر هم خارج میشن(dequeue) یا همون صف نون خودمون 😝
@purecoder_ir
💥Stack vs Queue
💥دو کالکشن خاص با ویژگی های منحصر به فرد و در نتیجه کاربرد های منحصر به فرد هستن...
💥توی استک دو operation مهم داریم :
✅push
✅pop
بوسیله ی push یه ایتم به کالکشن یا مجموعه اضافه میشه و به وسیله pop یه دونه حذف میشه
💥توی Queue یا صف هم دو operation مهم داریم:
✅enqueue
✅dequeue
به وسیله ی enqueue یه دونه اضافه و به وسیله ی dequeue یه دونه حذف میشه.
💥تفاوت این ها در اینه که stack ها LIFO هستن و Queue ها FIFO
LIFO => Last in First out
یعنی اخرین ایتمی که توسط push به کالکشن اضافه شده، توسط pop از کالکشن خارج میشه.
FIFO => First in First out
یعنی اولین ایتمی که توسط enqueue به کالکشن اضافه شده توسط dequeue از کالکشن خارج میشه.
💥استک شبیه به یک لیوان که داخلش یه چیزی میریزید (push) و بعد که میخواین بردارید(pop), اونایی که اخر ریختید زودتر خارج میشن.
💥صف یا queue شبیه به یک لوله که مواد از یه طرف وارد و از طرف دیگه خارج میشن و اونایی که زودتر وارد شدن (enqueue) زودتر هم خارج میشن(dequeue) یا همون صف نون خودمون 😝
@purecoder_ir
💥Tip
💥Stack vs Queue
❓برای پیاده سازی queue چکار کنیم؟
🟢میتونیم از دیتا استراکچر های پایه، مثل array ها و یا LinkedList ها استفاده کنیم.
🟢حتا میتونیم از استک ها برای پیاده سازی queue استفاده کنیم.
💥توی مینی پروژه ی زیر میتونید این پیاده سازی ها رو بیینید:
https://github.com/mohammadtaherri/tdd_data_structures_and_algorithms/tree/main/queue
❓برای پیاده سازی استک چکار کنیم؟
🟢اینجا هم میتونیم از array ها یا LinkedList ها کمک بگیریم.
💥توی کد زیر یه پیاده سازی خیلی ساده برای استک قرار داده شده..
https://github.com/mohammadtaherri/tdd_data_structures_and_algorithms/tree/main/stack
@purecoder_ir
💥Stack vs Queue
❓برای پیاده سازی queue چکار کنیم؟
🟢میتونیم از دیتا استراکچر های پایه، مثل array ها و یا LinkedList ها استفاده کنیم.
🟢حتا میتونیم از استک ها برای پیاده سازی queue استفاده کنیم.
💥توی مینی پروژه ی زیر میتونید این پیاده سازی ها رو بیینید:
https://github.com/mohammadtaherri/tdd_data_structures_and_algorithms/tree/main/queue
❓برای پیاده سازی استک چکار کنیم؟
🟢اینجا هم میتونیم از array ها یا LinkedList ها کمک بگیریم.
💥توی کد زیر یه پیاده سازی خیلی ساده برای استک قرار داده شده..
https://github.com/mohammadtaherri/tdd_data_structures_and_algorithms/tree/main/stack
@purecoder_ir
GitHub
tdd_data_structures_and_algorithms/queue at main · mohammadtaherri/tdd_data_structures_and_algorithms
TDD data structures and algorithms. Contribute to mohammadtaherri/tdd_data_structures_and_algorithms development by creating an account on GitHub.
Pure Coder
💥Tip 💥Stack vs Queue 💥دو کالکشن خاص با ویژگی های منحصر به فرد و در نتیجه کاربرد های منحصر به فرد هستن... 💥توی استک دو operation مهم داریم : ✅push ✅pop بوسیله ی push یه ایتم به کالکشن یا مجموعه اضافه میشه و به وسیله pop یه دونه حذف میشه 💥توی Queue یا…
💥حالا که صحبت از Stack شد...
به نظرتون Navigator توی فلاتر page های مختلف رو با استفاده از stack مدیریت میکنه؟
ویجت Navigator در نهایت یه Overlay توی درخت قرار میده و اون Overlay هم از یک ویجت استک اختصاصی شده برای رندر کردن پیج های مختلف استفاده میکنه...
ولی فعلن با این موضوع کاری نداریم..
سوال اینجاست که ایا خود نویگیتور page های مختلف رو با یه کالکشن Stack مدیریت میکنه؟
اگه اره... پس چطوری چیز هایی مثل pushReplacement و... داریم؟ 🤔🤔😝
اخه Stack فقط یه push و pop معمولی داره...
نکته اینجاست که Navigator پیج هاش رو با استک مدیریت نمیکنه 😳😳
@purecoder_ir
به نظرتون Navigator توی فلاتر page های مختلف رو با استفاده از stack مدیریت میکنه؟
ویجت Navigator در نهایت یه Overlay توی درخت قرار میده و اون Overlay هم از یک ویجت استک اختصاصی شده برای رندر کردن پیج های مختلف استفاده میکنه...
ولی فعلن با این موضوع کاری نداریم..
سوال اینجاست که ایا خود نویگیتور page های مختلف رو با یه کالکشن Stack مدیریت میکنه؟
اگه اره... پس چطوری چیز هایی مثل pushReplacement و... داریم؟ 🤔🤔😝
اخه Stack فقط یه push و pop معمولی داره...
نکته اینجاست که Navigator پیج هاش رو با استک مدیریت نمیکنه 😳😳
@purecoder_ir
💥Challenge
حالا که صحبت از دیتا استراکچر هایی مثل Stack و Queue شد یه چالش کوچولو داشته باشیم...
❓چرا کلاسی که Map رو implement میکنه اسمش HashMap هست و یا توی برخی زبان ها اسمش HashTable هست؟
❓کلمه ی Hash چرا توی اسمش استفاده شده؟
@purecoder_ir
حالا که صحبت از دیتا استراکچر هایی مثل Stack و Queue شد یه چالش کوچولو داشته باشیم...
❓چرا کلاسی که Map رو implement میکنه اسمش HashMap هست و یا توی برخی زبان ها اسمش HashTable هست؟
❓کلمه ی Hash چرا توی اسمش استفاده شده؟
@purecoder_ir
💥Challenge
❓توی فلاتر چطوری یه گیف رو نمایش میدید؟
⚠️بدون استفاده از پکیج
⚠️با ویجت Image هم میشه نمایش داد، ولی میخوایم کاملن روش کنترل داشته باشیم و duration و تعداد repeat ها و جابجایی بین frame های مختلفش رو کنترل کنیم
یعنی کد مورد نظر تعداد frame های گیف رو استخراج کنه و بهمون بده و ما بتونیم بین frame های مختلفش جابجا بشیم...
همچنین میخوایم سرعت گیف رو کنترل کنیم (duration)
✅اگه کدی نوشتید، لینک گیتهابش رو توی کامنت ها بگذارید
✅گیف مورد نظر رو میتونید توی assets بگذارید
✅اگه ویجتی توی فلاتر هم میشناسید که کنترل کامل روی گیف میده معرفی کنید...
@purecoder_ir
❓توی فلاتر چطوری یه گیف رو نمایش میدید؟
⚠️بدون استفاده از پکیج
⚠️با ویجت Image هم میشه نمایش داد، ولی میخوایم کاملن روش کنترل داشته باشیم و duration و تعداد repeat ها و جابجایی بین frame های مختلفش رو کنترل کنیم
یعنی کد مورد نظر تعداد frame های گیف رو استخراج کنه و بهمون بده و ما بتونیم بین frame های مختلفش جابجا بشیم...
همچنین میخوایم سرعت گیف رو کنترل کنیم (duration)
✅اگه کدی نوشتید، لینک گیتهابش رو توی کامنت ها بگذارید
✅گیف مورد نظر رو میتونید توی assets بگذارید
✅اگه ویجتی توی فلاتر هم میشناسید که کنترل کامل روی گیف میده معرفی کنید...
@purecoder_ir
به نظرت کدوم یک از سینتکس های زیر قشنگ تره؟
Anonymous Poll
12%
var name: String = "Mohammad";
88%
String name = "Mohammad";
🔥Challenge
فرض کن که من یه عدد بین ۰ تا ۱۰۰ توی ذهنم در نظر میگیرم و حالا تو باید اون عدد رو حدس بزنی...
🤔تو بین ۰ تا ۱۰۰ یه عدد حدس میزنی...
✅اگه عددی که گفتی برابر با عددی که توی ذهن منه بود، من بهت میگم که درست حدس زدی و بازی تموم میشه...
❌اگه عددی که گفتی برابر نبود، من راهنماییت میکنم و بهت میگم که حدس تو از عددی که توی ذهن منه بزرگتره یا کوچیکتره...
💡برای مثال عدد توی ذهن من ۷۶ هست و تو ۴۷ رو حدس زدی و من بهت میگم که حدست درست نیست، ولی از عدد توی ذهن من کوچکتره.... یا اگه ۹۸ رو حدس بزنی، بهت میگم که حدست از عدد ذهن من بزرگتره...
🏃♂و تو همین طوری به حدس زدن ادامه میدی تا به جواب برسی...
❓حالا به من بگو چطوری حدس میزنی که بتونی با کمترین تعداد حدس، به جواب درست بررسی؟
⚠️نیاز به نوشتن کد نیست و فقط قراره دو نفری و به صورت فیس تو فیس این بازی رو انجام بدیم و تو یه روشی رو استفاده کنی که با کمترین تعداد حدس به جواب برسی...
@purecoder_ir
فرض کن که من یه عدد بین ۰ تا ۱۰۰ توی ذهنم در نظر میگیرم و حالا تو باید اون عدد رو حدس بزنی...
🤔تو بین ۰ تا ۱۰۰ یه عدد حدس میزنی...
✅اگه عددی که گفتی برابر با عددی که توی ذهن منه بود، من بهت میگم که درست حدس زدی و بازی تموم میشه...
❌اگه عددی که گفتی برابر نبود، من راهنماییت میکنم و بهت میگم که حدس تو از عددی که توی ذهن منه بزرگتره یا کوچیکتره...
💡برای مثال عدد توی ذهن من ۷۶ هست و تو ۴۷ رو حدس زدی و من بهت میگم که حدست درست نیست، ولی از عدد توی ذهن من کوچکتره.... یا اگه ۹۸ رو حدس بزنی، بهت میگم که حدست از عدد ذهن من بزرگتره...
🏃♂و تو همین طوری به حدس زدن ادامه میدی تا به جواب برسی...
❓حالا به من بگو چطوری حدس میزنی که بتونی با کمترین تعداد حدس، به جواب درست بررسی؟
⚠️نیاز به نوشتن کد نیست و فقط قراره دو نفری و به صورت فیس تو فیس این بازی رو انجام بدیم و تو یه روشی رو استفاده کنی که با کمترین تعداد حدس به جواب برسی...
@purecoder_ir
اینم از وضعیت ایرانسل من (My Irancell) که همه چیزش رو موقع ارور ریخت بیرون... 🤦♂
🤦♂🤦♂
هعی 😢😢😢
@purecoder_ir
🤦♂🤦♂
هعی 😢😢😢
@purecoder_ir
کدوم یک از اصول SOLID به صورت خاص تاکید میکنه که Software Entities در عین stable بودن باید Flexible هم باشن؟
Anonymous Quiz
16%
SRP
41%
OCP
25%
LSP
15%
ISP
4%
DIP