Pure Coder
786 subscribers
189 photos
30 videos
8 files
150 links
⭕️آدرس سایت:
https://purecoder.ir

⭕️گروه پرسش و پاسخ:
@purecoder_gp

⭕️پشتیبانی:
@PureCoder_support
@MohammadTaherri
Download Telegram
💊Capsule
⚡️⚡️Future⚡️⚡️
4⃣
خب گفتم که وقتی که یه async function رو کال میکنیم یه object از جنس Future بر میگردونه که در اون لحظه هیچی نداره و در اینده با یه value یا یه error تکمیل میشه.

حالا برای هندل کردنش چکار کنیم؟

🔥دو راه داریم :
استفاده از low level APIs
استفاده از high level built in APIs

هر دو روش معادل هم هستن، که توی پست های آینده اون ها رو بررسی میکنیم.
#capsule #dart
💊Capsule
⚡️⚡️Future⚡️⚡️
5⃣
روش اول
Low level APIs

.. then()
.catchError()
.whenComplete()

وقتی یک object از جنس Future داریم میتونیم این متد ها رو به صورت زجزیره وار(chain) روش کال کنیم.

🔥هر کدوم از این متد ها یه کالبک میگیرن و در شرایط خاصی اون کالبک ها اجرا میشن :

then
then((T value) {
.....
})

یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ولیو تکمیل شه اجرا میشه.

catchError
catchError((Object error, StackTrace st) {
...
})

یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ارور تکمیل شه اجرا میشه.

🔥هم then و هم catchError یه ورودی دوم هم میگیرن که فعلن ازشون صرف نظر میکنیم.
whenComplete
whenComplete (() {
.....
})

یه کالبک به این شکل میگیره که وقتی که فیوچر تکمیل شه (چه با value چه با error ) اجرا میشه.

پس :
✔️if the future is completed with a value, the then callback will be executed.

✔️If the future is completed with an error, the catchError callback will be executed.

✔️when the future is completed (with a value or an error), the whenComplete callback will be executed.

#dart #capsule
💊Capsule
⚡️⚡️Future⚡️⚡️
6⃣
High level built in APIs

معادل مواردی که توی پست قبلی گفتم رو میتونیم به این شکل داشته باشیم :
try{
await future;
}catch (error) {
....
}finally{
....
}


بلوک try که داخلش await قرار میگیره معادل then هست .

بلوک catch معادل catchError هست .

بلوک finally معادل whenComplete هست.
#dart #capsule
🔥Challenge
⚡️⚡️Stream⚡️⚡️
هر چی راجب استریم ها میدونی بگو...

چی هستن🤔
به چه دردی میخورن
#dart_challenge #dart
Screenshot from 2022-03-04 23-08-47.png
46.9 KB
🔥Challenge
یه ساختاری داریم به شکل بالا.
این ساختار به این شکل هست که یه Map داریم که key های اون String هست و Value ها یا به صورت String هست و یا به صورت یه Map .

و این روند ادامه داره.... هر value میتونه یه String باشه یا خودش یه Map باشه.

🔥مقادیر value ها نباید چیزی غیر از String ویا Map باشن ..

حالا یه کدی بنویسید که یه Map ورودی با این فرمت (که معلوم نیست این روند تو در تو تا کجا ادامه داره) رو تحلیل کنه اگه یه value پیدا کرد جنسش چیزی غیر از String یا Map بود مقدار false رو برگردونه و اگه تا اخر پیش رفت و همه چیز درست بود مقدار true رو برگردونه.

پ.ن: مقادیر key و value که اینجا نوشتم مثال هست و به این مقادیر توجه نکنید و مهم نیست که چی باشن.
فقط جنس ها مهمه :
Key: String
Value: String or Map

و ساختار توی در تو بودن
#challenge
#dart_challenge
🔥Challenge

▶️سناریو :

یه قسمتی از اپمون قراره که جستجو توی محصولات یا... رو پیاده کنیم.

🔴یه Search Box لازم داریم.

🔴کاربر شروع میکنه به نوشتن و همزمان باید جستجو انجام بشه...

چالش :

فرض کنید ازمون خواسته شده که هر وقت کاربر شروع کرد به نوشتن و دستشو برداشت و ۲ ثانیه طول کشید (ینی بین تایپ کردن کاربر ۲ ثانیه وقفه ایجاد شد) بلافاصله جستجو انجام شه...

🟢یعنی اگه کاربر بدون وقفه (۲ثانیه ای) به تایپ کردن ادامه داد هیچ جستجویی انجام نمیشه.

توضیح بدید که این مساله رو، به خصوص وقفه ۲ ثانیه رو چطوری هندل میکنید؟

⛔️ساختار معماری در این چالش مدنظر نظر نیست.
فقط نحوه هندل کردن این موضوع به خصوص وقفه مهم هست.
در صورت لزوم میتونید کد هم ارائه کنید.

#challenge #flutter_challenge #dart_challenge
#intermediate
🔥Challenge

چالش :

تفاوت Future.delayed با Timer چیه؟ 🤔

#challenge
#dart_challenge
#begginer
#intermediate
🔥Challenge

چالش :

اگر بخوایم که یه قطعه کد بلافاصله بعد از کدهای دیگه ولی بدون تاخیر زمانی اجرا بشه چه راه حلی به ذهنتون میرسه ؟ 🤔

#challenge
#dart_challenge
#intermediate
🔥Challenge

🟢اگه یک متد رو داخل یه کلاس با _ پرایوت کنیم، بقیه کلاس ها یا فانکشن هایی که داخل اون فایل هستن هم میتونن از اون متد استفاده کنن.

چه کار کنیم که یک متد فقط و فقط و فقط داخل همون کلاسی که تعریف شده قابل استفاده باشه و نه کلاس ها و فانکشن های دیگه اون فایل یا library ؟

#challenge
#dart_challenge
Forwarded from Persian Flutter (PayamZ)
🚀 مقاله جدیدم رو که در مورد Flutter Form Validation هست رو منتشر کردم! 📝 روش هایی که موجود هستند قابلیت reusability رو ندارن بنابر این من یک راهکار جدید پیشنهاد میدم که شما میتونید اون رو تو پروژه های مختلفتون استافده کنید.

مقاله رو بررسی کنید و یه دستی به سر و روی فرم هاتون بکشید😁

https://medium.com/@payam-zahedi/flutter-form-validation-beyond-basics-76443e768624

#Flutter #dart 💻