• زبان اصلی و فرعی گوشی
• کانتری کد
• تایم زون
• بررسی پکیج اپهای نصب شده ایرانی
• installed_apps
• flutter_native_timezone_latest
Flutter Jungle | @DXFlutter
✍️ #Amin_Pourabazari
Please open Telegram to view this post
VIEW IN TELEGRAM
با Live Template یا Snippet دیگه لازم نیست هر بار این کدها رو بنویسی، فقط تایپ کن redlog، Tab بزن، و لاگ رنگی آمادهست.
Flutter Jungle | @DXFlutter
✍️ #Amin_Pourabazari
Please open Telegram to view this post
VIEW IN TELEGRAM
از اندروید ۱۲ به بعد (یعنی SDK 31)، خود سیستمعامل موقع کپی شدن متن، یه toastmessage به کاربر نشون میده. اما تو نسخههای پایینتر یا iOS لازمه خودمون به کاربر اطلاع بدیم که متن کپی شده؛ این موضوع مخصوصاً برای تجربه کاربری بهتر مهمه.
• device_info_plus
Flutter Jungle | @DXFlutter
✍️ #Amin_Pourabazari
Please open Telegram to view this post
VIEW IN TELEGRAM
چون مستقیم گذاشتن لیست توی لیست ارور میده!
اگه Spread Operator رو بلد باشی، خیلی جاها کارت راحت میشه!
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
اما وقتی اون کد رو مستقیم تو initState یا build بذاری، خطا میگیری چون هنوز context یا layout کامل نشده.
WidgetsBinding.instance.addPost rameCallback
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
حمایت میکنید ادامه بدیم؟🧑💻
معرفی نمیکنید که به دوستاتون😫
معرفی نمیکنید که به دوستاتون
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22 4❤🔥3
برای حلش کافیه Future رو فقط یهبار در initState مقداردهی کنی!
هر بار که setState() صدا زده بشه، FutureBuilder دوباره build میشه،
اما چون Future رو خارج از build ذخیره کردیم، دیگه دوباره اجرا نمیشه!
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍3✍1
با این ترفند ساده، جلوی این اتفاق رو بگیر!
برای پروژههای بزرگتر میتونی از debounce توی پکیجهای rxdart یا easy_debounce استفاده کنی تا کنترل دقیقتری داشته باشی.
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏5✍3
خیلی ساده و تمیز!
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3
فقط وقتی اسکرول کردی ظاهر بشه:
مثلاً تو صفحهای که لیست بلندی داره، FAB همیشه جلو چشم باشه شلوغ میکنه.
این ترفند باعث میشه تجربه کاربری حرفهایتر و مینیمالتر داشته باشی.
با استفاده از ScrollController تشخیص میدیم کاربر اسکرول کرده یا نه،
و FAB رو با AnimatedOpacity مخفی/ظاهر میکنیم.
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤🔥4✍1
این ترفند مخصوصاً توی صفحات fullscreen یا صفحههایی با تم روشن/تاریک خیلی مهمه.
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8✍1
Controller
Service
یا callbackهایی که context ندارن
لازمت میشه BuildContext داشته باشی (برای SnackBar، Dialog، Theme و …).
این ترفند تمیز و استاندارده
⚠️ نکته مهم:از این روش بیش از حد استفاده نکن
برای معماری تمیز، بهتره بیشتر منطقها داخل UI یا ViewModel باشن.
این ترفند مخصوص مواقع خاصه 👌
🧠 جای استفاده مناسب:
نمایش SnackBar سراسری
دیالوگهای سیستمی
ارور هندلینگ مرکزی
Flutter Jungle | @DXFlutter
✍️ #Yekta_Soltani
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍2❤🔥1
تنظیم مخازن (بدون نیاز به VPN)
ابتدا منابع را از مایکت و سپس از Aliyun (علیبابا) دریافت میکنیم. این دو مورد تحریم نیستند و سرعت بسیار بالایی دارند. اگر پکیجی در آنها نباشد، نگران نباشید گریدل به سراغ گوگل و MavenCentral میرود.
Flutter Jungle | @DXFlutter
✍️ #Amin_Pourabazari
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥1🙏1