DXCode - Flutter
175 subscribers
16 photos
17 links
قصد داری محتوای تخصصی‌ت رو منتشر کنیم؟
قبل از ارسال، حتماً شرایط رو کامل بخون:
📋Terms: @DXTerms
حمایت از ما:
💎 t.me/boost/DXFlutter
Download Telegram
📰 بررسی فارسی زبان بودن کاربر

✏️ این روش کاملا آفلاین فارسی زبان بودن کاربر رو بررسی میکنه و میاد بر اساس چهار تا متود چک میکنه که کاربر فارسی زبان است یا نه؛ روش مناسبی هست برای دوستانی که با تبلیغات AdMob و مارکت‌های گوگل‌پلی و اپ‌استور کار میکنن؛

مواردی که باهاش سرو‌کار داریم:
• زبان اصلی و فرعی گوشی
• کانتری کد
• تایم زون
• بررسی پکیج اپ‌های نصب شده ایرانی

📦 پکیج های موردنیاز:
installed_apps
flutter_native_timezone_latest

🍎 نکته iOS: {کلیک کنید}

🤖 نکته اندروید: {کلیک کنید}

🔨 کد کلاس Checker: {کلیک‌کنید}

Flutter Jungle |
@DXFlutter

✍️ #Amin_Pourabazari
🔗 Telegram 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
103👍2🙏1
📰 لاگ رنگی در ترمینال Flutter

✏️ توی توسعه با Flutter می‌تونید با escape codeهای ANSI لاگ‌هاتون رو توی ترمینال رنگی کنید؛

🔨 نمونه کد : { کلیک کنید }

💡 استفاده از Live Template؟
با Live Template یا Snippet دیگه لازم نیست هر بار این کدها رو بنویسی، فقط تایپ کن redlog، Tab بزن، و لاگ رنگی آماده‌ست.

⚙️ کاربا Live Template: { کلیک کنید }


Flutter Jungle | @DXFlutter

✍️ #Amin_Pourabazari
🔗 Telegram 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍51
📰 کپی کردن متن در کلیپ‌بورد

✏️ این روش ساده و کاربردیه؛ ولی یه نکته مهم توی نسخه‌های جدید اندروید وجود داره:
از اندروید ۱۲ به بعد (یعنی SDK 31)، خود سیستم‌عامل موقع کپی شدن متن، یه toastmessage به کاربر نشون میده. اما تو نسخه‌های پایین‌تر یا iOS لازمه خودمون به کاربر اطلاع بدیم که متن کپی شده؛ این موضوع مخصوصاً برای تجربه کاربری بهتر مهمه.


📦 پکیج موردنیاز:
device_info_plus

🔨 نمونه کد: {کلیک کنید}

Flutter Jungle | @DXFlutter

✍️ #Amin_Pourabazari
🔗 Telegram 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍21🙏1
📰 ترفند Spread Operator در Flutter:

✏️ وقتی یه لیست ویجت داری و می‌خوای بندازیش توی Column یا Row، باید از ... (Spread Operator) استفاده کنی.
چون مستقیم گذاشتن لیست توی لیست ارور می‌ده!

🔨 نحوه استفاده: {کلیک کنید}

اگه Spread Operator رو بلد باشی، خیلی جاها کارت راحت می‌شه!

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
72❤‍🔥2👍2🙏2
📰 ترفند استفاده از addPostFrameCallback برای اجرای کد بعد از build

✏️ وقتی می‌خوای بعد از اینکه ویجت کامل رندر شد، یه کاری انجام بدی (مثلاً نمایش یه دیالوگ، اسکرول، یا گرفتن سایز ویجت).
اما وقتی اون کد رو مستقیم تو initState یا build بذاری، خطا می‌گیری چون هنوز context یا layout کامل نشده.

💡 راه‌حل: استفاده از
WidgetsBinding.instance.addPost rameCallback

📦 کاربردهای این ترفند:
✔️ نمایش دیالوگ یا SnackBar بعد لود
✔️ گرفتن سایز یا موقعیت ویجت‌ها با context
✔️ اسکرول به یک بخش خاص
✔️ انجام عملیات async بعد از UI

🔨 نحوه استفاده: {کلیک کنید}

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
12❤‍🔥3👍3
حمایت میکنید ادامه بدیم؟🧑‍💻
معرفی نمیکنید که به دوستاتون😫
Please open Telegram to view this post
VIEW IN TELEGRAM
👍224❤‍🔥3
📰 جلوگیری از اجرای دوباره Future در FutureBuilder:

✏️ اگه توی FutureBuilder هر بار ویجت rebuild بشه، Future دوباره اجرا میشه و باعث درخواست‌های تکراری یا کندی اپ میشه.
برای حلش کافیه Future رو فقط یه‌بار در initState مقداردهی کنی!

🔨 نحوه استفاده: {کلیک کنید}

هر بار که setState() صدا زده بشه، FutureBuilder دوباره build میشه،
اما چون Future رو خارج از build ذخیره کردیم، دیگه دوباره اجرا نمیشه!

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍31
📰 جلوگیری از دوبار کلیک روی دکمه (Double Tap Protection):

✏️ اگه کاربر چند بار سریع روی دکمه بزنه، ممکنه چند تا درخواست پشت سر هم به سرور بره و دردسر درست کنه .
با این ترفند ساده، جلوی این اتفاق رو بگیر!

🔨 نحوه استفاده: {کلیک کنید}

برای پروژه‌های بزرگ‌تر می‌تونی از debounce توی پکیج‌های rxdart یا easy_debounce استفاده کنی تا کنترل دقیق‌تری داشته باشی.

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏53
📰 چک کردن وضعیت اتصال اینترنت در فلاتر:

✏️ برای اینکه قبل از هر درخواست (مثل API Call یا دانلود فایل) مطمئن بشی کاربر اینترنت داره، می‌تونی از پکیج connectivity_plus استفاده کنی.
خیلی ساده و تمیز!

🔨 نحوه استفاده: {کلیک کنید}

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
📰 Floating Action Button
فقط وقتی اسکرول کردی ظاهر بشه:

✏️ گاهی توی طراحی، می‌خوای FAB فقط وقتی کاربر کمی اسکرول کرد ظاهر شه…
مثلاً تو صفحه‌ای که لیست بلندی داره، FAB همیشه جلو چشم باشه شلوغ می‌کنه.

این ترفند باعث میشه تجربه کاربری حرفه‌ای‌تر و مینیمال‌تر داشته باشی.

📌ایده‌ی اصلی:

با استفاده از ScrollController تشخیص می‌دیم کاربر اسکرول کرده یا نه،
و FAB رو با AnimatedOpacity مخفی/ظاهر می‌کنیم.

🔨 نحوه استفاده: {کلیک کنید}

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤‍🔥41
📰 تغییر رنگ StatusBar و NavigationBar در اندروید و iOS:

✏️ خیلی وقت‌ها می‌خوای تم صفحه‌ت با رنگ StatusBar یکی باشه تا ظاهر اپ حرفه‌ای‌تر و یکپارچه بشه.
این ترفند مخصوصاً توی صفحات fullscreen یا صفحه‌هایی با تم روشن/تاریک خیلی مهمه.


🔨 نحوه استفاده: {کلیک کنید}

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
📰 دسترسی به context از هرجای اپ (بدون دردسر!):

✏️گاهی داخل:

Controller

Service

یا callbackهایی که context ندارن

لازمت میشه BuildContext داشته باشی (برای SnackBar، Dialog، Theme و …).
این ترفند تمیز و استاندارده


⚠️ نکته مهم:

از
این روش بیش از حد استفاده نکن
برای معماری تمیز، بهتره بیشتر منطق‌ها داخل UI یا ViewModel باشن.
این ترفند مخصوص مواقع خاصه 👌

🧠 جای استفاده مناسب:
نمایش SnackBar سراسری
دیالوگ‌های سیستمی
ارور هندلینگ مرکزی


🔨 نحوه استفاده: {کلیک کنید}

Flutter Jungle | @DXFlutter

✍️ #Yekta_Soltani
🔗 LinkedIn 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2❤‍🔥1
📰 روشی برای رفع تحریم و مشکل Sync گریدل

✏️ اگر هنگام اجرای پروژه فلاتر یا کاتلین با خطاهای Connection Timeout یا 403 مواجه می‌شوید و VPN شما روی گریدل جواب نمی‌دهد، از این تنظیمات در فایل android/build.gradle استفاده کنید. حتی اگر vpn دارید هم این تنظیمات رو ست کنید که سریعتر مخازن رو دریافت کنید.

تنظیم مخازن (بدون نیاز به VPN)

ابتدا منابع را از مایکت و سپس از Aliyun (علی‌بابا) دریافت می‌کنیم. این دو مورد تحریم نیستند و سرعت بسیار بالایی دارند. اگر پکیجی در آن‌ها نباشد، نگران نباشید گریدل به سراغ گوگل و MavenCentral می‌رود.


🔨 نحوه استفاده : {کلیک‌کنید}

Flutter Jungle |
@DXFlutter

✍️ #Amin_Pourabazari
🔗 Telegram 📱 | GitHub 4️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1🙏1