🔥Capsule
⚡️⚡️FIFO vs LIFO⚡️⚡️
FIFO : first in first out
LIFO : last in first out
Queue => FIFO
Stack => LIFO
🔥استک مثل یک لیوان میمونه، هر چیزی که اخر اضافه بشه موقع خارج شدن اول از همه میره بیرون
🔥صف مثل لوله هست هر چیزی که اول وارد شده زودتر از همه هم خارج میشه
#سوال
ایا فلاتر از این مفاهیم استفاده میکنه؟ از هر دو تاش استفاده میکنه و یا یکیش یا هیچ کدوم؟ 🤔
#intermediate #capsule
⚡️⚡️FIFO vs LIFO⚡️⚡️
FIFO : first in first out
LIFO : last in first out
Queue => FIFO
Stack => LIFO
🔥استک مثل یک لیوان میمونه، هر چیزی که اخر اضافه بشه موقع خارج شدن اول از همه میره بیرون
🔥صف مثل لوله هست هر چیزی که اول وارد شده زودتر از همه هم خارج میشه
#سوال
ایا فلاتر از این مفاهیم استفاده میکنه؟ از هر دو تاش استفاده میکنه و یا یکیش یا هیچ کدوم؟ 🤔
#intermediate #capsule
🔥Article
🔥اگه یه پکیجی درست کردی و میخوای که بذاریش روی گیت لب یا گیت هاب و پرایوتش کنی که فقط خودت یا هم تیمی هات ازش استفاده کنن و میخوای توی پروژه های فلاترت هم ازش استفاده کنی مقاله زیر رو بخون...
git dependencies in Flutter pubspec :
https://vrgl.ir/PzrBC
🔥https://t.me/flutter_challenges
#intermediate #article
🔥اگه یه پکیجی درست کردی و میخوای که بذاریش روی گیت لب یا گیت هاب و پرایوتش کنی که فقط خودت یا هم تیمی هات ازش استفاده کنن و میخوای توی پروژه های فلاترت هم ازش استفاده کنی مقاله زیر رو بخون...
git dependencies in Flutter pubspec :
https://vrgl.ir/PzrBC
🔥https://t.me/flutter_challenges
#intermediate #article
🔥Article
🔥مفهوم const و درک و استفاده درست ازش ممکنه برای خیلی ها مبهم باشه..
خود من وقتی که تازه دارت رو شرو کرده بودم با این مفهوم مشکل داشتم و درکش نمیکردم و حتا از مدرسین اون موقع فلاتر هم که میپرسیدم اون ها هم خوب توضیح نمیدادن...
توی این مجموعه مقاله ۶ قسمتی مفهوم const رو با جزئی ترین نکات با هم بررسی میکنیم.
بعد از خوندن این مجموعه میتونی مثل یه استاد این مفهوم رو به بقیه یاد بدی...
لینک قسمت اول آموزش :
https://vrgl.ir/P0OY9
🔥https://t.me/flutter_challenges
#beginner #intermediate #article
🔥مفهوم const و درک و استفاده درست ازش ممکنه برای خیلی ها مبهم باشه..
خود من وقتی که تازه دارت رو شرو کرده بودم با این مفهوم مشکل داشتم و درکش نمیکردم و حتا از مدرسین اون موقع فلاتر هم که میپرسیدم اون ها هم خوب توضیح نمیدادن...
توی این مجموعه مقاله ۶ قسمتی مفهوم const رو با جزئی ترین نکات با هم بررسی میکنیم.
بعد از خوندن این مجموعه میتونی مثل یه استاد این مفهوم رو به بقیه یاد بدی...
لینک قسمت اول آموزش :
https://vrgl.ir/P0OY9
🔥https://t.me/flutter_challenges
#beginner #intermediate #article
🔥Article
🔥اگه با فانکشن بدون پرانتز مشکل داری و درکش نمیکنی...
🔥اگه وقتی توی فلاتر باید به onPressed یه button یه فانکشن پاس بدی و بهش یه فانکشن بدون پرانتز پاس میدی ولی کامل درکش نمیکنی که داره چه اتفاقی میوفته...
🔥و حتا اگه از نظر خودت کامل درک میکنی که چه اتفاقی داره میوفته...
مقاله زیر رو بخون :
https://virgool.io/flutter-challenge/dart-function-without-parentheses-hscdfgcxdoro
حتا اگه همه چیز رو درک میکنی باز هم این مقاله حرف برای گفتن و نکته جدید برای فهمیدن دارن 😍😍
🔥https://t.me/flutter_challenges
#article #beginner #intermediate
🔥اگه با فانکشن بدون پرانتز مشکل داری و درکش نمیکنی...
🔥اگه وقتی توی فلاتر باید به onPressed یه button یه فانکشن پاس بدی و بهش یه فانکشن بدون پرانتز پاس میدی ولی کامل درکش نمیکنی که داره چه اتفاقی میوفته...
🔥و حتا اگه از نظر خودت کامل درک میکنی که چه اتفاقی داره میوفته...
مقاله زیر رو بخون :
https://virgool.io/flutter-challenge/dart-function-without-parentheses-hscdfgcxdoro
حتا اگه همه چیز رو درک میکنی باز هم این مقاله حرف برای گفتن و نکته جدید برای فهمیدن دارن 😍😍
🔥https://t.me/flutter_challenges
#article #beginner #intermediate
🔥Challenge
میخوام یه variable تعریف کنم که امکان این رو داشته باشه که مقادیری از هر تایپی داخلش بریزم...
دو تا انتخاب میتونم داشته باشم :
1) Object myVariable
2) dynamic myVariable
❓این دو حالت چه تفاوت هایی با هم دارن و هر کدوم برای چه کاربرد هایی خوبن ؟
#challenge
#dart_challenge
#intermediate
میخوام یه variable تعریف کنم که امکان این رو داشته باشه که مقادیری از هر تایپی داخلش بریزم...
دو تا انتخاب میتونم داشته باشم :
1) Object myVariable
2) dynamic myVariable
❓این دو حالت چه تفاوت هایی با هم دارن و هر کدوم برای چه کاربرد هایی خوبن ؟
#challenge
#dart_challenge
#intermediate
🔥Article
قسمت جدید داستان null در دارت منتشر شد.
توی این قسمت جلسه اول رسیدگی به اتهامات دارت تشکیل میشه...یه داستان خیلی جذاب که آخرش نکات زیادی در مورد :
✔️Scopes
✔️nullable variables
✔️non-nullable variables
✔️final variables
✔️late
و ارتباط همه این ها با هم یاد میگیریم.😍😍
پس این مقاله رو از دست نده و با دقت بخونش.😍
حتا اگه همه این ها رو بلدی هم نکات جدید هست که اینجا یاد بگیری😍😍
لینک مقاله :
https://vrgl.ir/qJhrV
#beginner #article #intermediate
قسمت جدید داستان null در دارت منتشر شد.
توی این قسمت جلسه اول رسیدگی به اتهامات دارت تشکیل میشه...یه داستان خیلی جذاب که آخرش نکات زیادی در مورد :
✔️Scopes
✔️nullable variables
✔️non-nullable variables
✔️final variables
✔️late
و ارتباط همه این ها با هم یاد میگیریم.😍😍
پس این مقاله رو از دست نده و با دقت بخونش.😍
حتا اگه همه این ها رو بلدی هم نکات جدید هست که اینجا یاد بگیری😍😍
لینک مقاله :
https://vrgl.ir/qJhrV
#beginner #article #intermediate
🔥Challenge
⚡️⚡️Dart 2.15⚡️⚡️
Constructor tear-offs
توی پست های قبلی و یه مقاله اختصاصی در مورد function ها و وقتی که از یه function بدون پرانتز استفاده میکنیم صحبت کردیم.
حالا توی ورژن جدید Dart یه قابلیت مشابه برای constructor ها ارایه شده...
هرچی راجب این قابلیت و کاربردهاش میدونی بگو...
#challenge #dart_challenge
#intermediate
⚡️⚡️Dart 2.15⚡️⚡️
Constructor tear-offs
توی پست های قبلی و یه مقاله اختصاصی در مورد function ها و وقتی که از یه function بدون پرانتز استفاده میکنیم صحبت کردیم.
حالا توی ورژن جدید Dart یه قابلیت مشابه برای constructor ها ارایه شده...
هرچی راجب این قابلیت و کاربردهاش میدونی بگو...
#challenge #dart_challenge
#intermediate
💊 Capsule
⚡️⚡️Dart 2.15⚡️⚡️
1⃣
Constructor tear-offs
قبلن با این ویژگی توی function ها آشنا شدیم وقتی که یک function رو بدون پرانتز به کار میبردیم و توی یه مقاله هم کامل بهش پرداختیم که میتونی مطالعه کنی.
🔥حالا توی ورژن جدید Dart این قابلیت برای constructor ها هم ارایه شده.
و میتونی constructor های یه کلاس رو بدون پرانتز به جایی پاس بدی یا توی یه variable ذخیره کنی و بعدن ازشون استفاده کنی.
🔥دو دسته constructor توی یه کلاس ممکنه داشته باشیم:
✔️Default constructor
🔥برای این از این قاعده استفاده کن :
ClassName.new
✔️Named constructor
🔥برای این هم :
ClassName.constructorName
#capsule #intermediate
⚡️⚡️Dart 2.15⚡️⚡️
1⃣
Constructor tear-offs
قبلن با این ویژگی توی function ها آشنا شدیم وقتی که یک function رو بدون پرانتز به کار میبردیم و توی یه مقاله هم کامل بهش پرداختیم که میتونی مطالعه کنی.
🔥حالا توی ورژن جدید Dart این قابلیت برای constructor ها هم ارایه شده.
و میتونی constructor های یه کلاس رو بدون پرانتز به جایی پاس بدی یا توی یه variable ذخیره کنی و بعدن ازشون استفاده کنی.
🔥دو دسته constructor توی یه کلاس ممکنه داشته باشیم:
✔️Default constructor
🔥برای این از این قاعده استفاده کن :
ClassName.new
✔️Named constructor
🔥برای این هم :
ClassName.constructorName
#capsule #intermediate
💊 Capsule
⚡️⚡️Dart 2.15⚡️⚡️
2⃣
Constructor tear-offs
🔥مثالی که Michael Thomsen توی مقاله خودش برای توضیح این ویژگی جدید Dart زده :
میبیند که constructor ویجت Text رو پاس داده به map.
در واقع داریم روی یه لیست از String ها یه map میزنیم که یه لیست از ویجت ها تولید کنیم.
پس در نتیجه map انتظار داره که توی ورودی ی Function بهش بدیم که اینجوری باشه :
که Defualt constructor ویجت Text رو میشه بهش پاس داد.
#intermediate #capsule
⚡️⚡️Dart 2.15⚡️⚡️
2⃣
Constructor tear-offs
🔥مثالی که Michael Thomsen توی مقاله خودش برای توضیح این ویژگی جدید Dart زده :
class FruitWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: ['Apple', 'Orange'].map(Text.new).toList());
}
}
میبیند که constructor ویجت Text رو پاس داده به map.
در واقع داریم روی یه لیست از String ها یه map میزنیم که یه لیست از ویجت ها تولید کنیم.
پس در نتیجه map انتظار داره که توی ورودی ی Function بهش بدیم که اینجوری باشه :
Widget Function(string input)
که Defualt constructor ویجت Text رو میشه بهش پاس داد.
#intermediate #capsule
💊Capsule
⚡️⚡️Animation⚡️⚡️
❓معنای لغوی Animation چیه؟ 🤔
یعنی متحرک، هر تصویری که متحرک باشه.
❓ولی آیا وقتی که داریم یه بازی کامپیوتری انجام میدیم یا وقتی که یه فیلم تماشا میکنیم یا... واقعن نمایشگر داره یه تصویر متحرک به ما نشون میده؟
🔥یه چیزی هست به اسم توهم 😂
توهم حرکت، توهم متحرک بودن.
نمایشگر تصاویری رو که توسط پردازنده رندر شدن رو پشت سر هم ردیف میکنه و ما چون که داریم یه تعداد تصویر رو که دارن با سرعت عوض میشن رو میبینیم فکر میکنیم که واقعن حرکت انجام شده.
✔️دوربین فیلم برداری کاری نمیکنه جز گرفتن یه تعداد عکس با فاصله زمانی کم .
✔️نمایشگر کاری نمیکنه جز قراردادن یه تعداد عکس پشت سر هم.
✔️و حتا چشم انسان هم کاری نمیکنه جز گرفتن عکس های پی در پی از وقایع و فرستادن اون ها به مغز.
🔥و همه این ها با هم یه چیزی رو بوجود میارن به نام توهم حرکت.
و ما در واقع داریم توهم میزنیم 😂
🔥انیمیشن های فلاتر هم خارج از این قاعده نیستن و در واقع اون ها هم یک سری تصویر رو پشت سر هم قرار میدن...
#intermediate #capsule #animation
⚡️⚡️Animation⚡️⚡️
❓معنای لغوی Animation چیه؟ 🤔
یعنی متحرک، هر تصویری که متحرک باشه.
❓ولی آیا وقتی که داریم یه بازی کامپیوتری انجام میدیم یا وقتی که یه فیلم تماشا میکنیم یا... واقعن نمایشگر داره یه تصویر متحرک به ما نشون میده؟
🔥یه چیزی هست به اسم توهم 😂
توهم حرکت، توهم متحرک بودن.
نمایشگر تصاویری رو که توسط پردازنده رندر شدن رو پشت سر هم ردیف میکنه و ما چون که داریم یه تعداد تصویر رو که دارن با سرعت عوض میشن رو میبینیم فکر میکنیم که واقعن حرکت انجام شده.
✔️دوربین فیلم برداری کاری نمیکنه جز گرفتن یه تعداد عکس با فاصله زمانی کم .
✔️نمایشگر کاری نمیکنه جز قراردادن یه تعداد عکس پشت سر هم.
✔️و حتا چشم انسان هم کاری نمیکنه جز گرفتن عکس های پی در پی از وقایع و فرستادن اون ها به مغز.
🔥و همه این ها با هم یه چیزی رو بوجود میارن به نام توهم حرکت.
و ما در واقع داریم توهم میزنیم 😂
🔥انیمیشن های فلاتر هم خارج از این قاعده نیستن و در واقع اون ها هم یک سری تصویر رو پشت سر هم قرار میدن...
#intermediate #capsule #animation
💊Capsule
⚡️نکات طلایی scrollable ویجت ها⚡️
3️⃣
Scrollbars
🔥وقتی یک scroll view استفاده میکنیم به صورت پیش فرض برای پلتفرم های دسکتاپ مثل windows و macos و linux اسکرول بار میذاره و برای Android و IOS و fuchsia اسکرول بار نمیذاره.
برای فعال یا غیر فعال کردن این قابلیت لینک زیر رو ببین :
فعال کردن (یا غیر فعال کردن) scrollbars در scrollView
#list_view #capsule #intermediate
⚡️نکات طلایی scrollable ویجت ها⚡️
3️⃣
Scrollbars
🔥وقتی یک scroll view استفاده میکنیم به صورت پیش فرض برای پلتفرم های دسکتاپ مثل windows و macos و linux اسکرول بار میذاره و برای Android و IOS و fuchsia اسکرول بار نمیذاره.
برای فعال یا غیر فعال کردن این قابلیت لینک زیر رو ببین :
فعال کردن (یا غیر فعال کردن) scrollbars در scrollView
#list_view #capsule #intermediate
GitHub
flutter_challenges/scrollbar.md at main · mohammadtaherri/flutter_challenges
Contribute to mohammadtaherri/flutter_challenges development by creating an account on GitHub.
💊Capsule
⚡️نکات طلایی scrollable ویجت ها⚡️
5⃣
این نوع Key یه subclass از ValueKey هست با یه کاربرد خاص.
قبلن در مورد انواع key ها و کاربردشون گفتم و این نوع رو به آینده موکول کردم.
الان وقتشه 😍😍
🔥اگه بخوایم ScrollView موقعیت اسکرول خودش رو حفظ کنه و وقتی که خراب شد و دوباره از اول ساخته شد برگرده به همون scroll position قبلی، از این نوع از key استفاده می کنیم.
🔥برای مثال وقتی توی یه TabbarView یا یه PageView یه دونه ListView داشته باشیم وقتی میریم page بعدی این page که شامل لیست هست کامل destroy میشه و بعد که برمیگردیم از اول ساخته میشه.
🔥برای اینکه موقعیت اسکرول خودش رو ذخیره کنه و بعد که از اول ساخته شد دوباره بره همون جا :
✔️به یکی از parent های ListView یا خودش یه key از این نوع میدیم.
✔️توی ScrollController هم باید پارامتر زیر رو
🔥از این نوع key کلن میتونیم برای ذخیره و بازیابی اطلاعات توی یک Route و توی frame های مختلف استفاده کنیم که یه کاربردش همین بود که گفتم.
#capsule #intermediate #local_key #list_view
⚡️نکات طلایی scrollable ویجت ها⚡️
5⃣
PageStorageKey
این نوع Key یه subclass از ValueKey هست با یه کاربرد خاص.
قبلن در مورد انواع key ها و کاربردشون گفتم و این نوع رو به آینده موکول کردم.
الان وقتشه 😍😍
🔥اگه بخوایم ScrollView موقعیت اسکرول خودش رو حفظ کنه و وقتی که خراب شد و دوباره از اول ساخته شد برگرده به همون scroll position قبلی، از این نوع از key استفاده می کنیم.
🔥برای مثال وقتی توی یه TabbarView یا یه PageView یه دونه ListView داشته باشیم وقتی میریم page بعدی این page که شامل لیست هست کامل destroy میشه و بعد که برمیگردیم از اول ساخته میشه.
🔥برای اینکه موقعیت اسکرول خودش رو ذخیره کنه و بعد که از اول ساخته شد دوباره بره همون جا :
✔️به یکی از parent های ListView یا خودش یه key از این نوع میدیم.
✔️توی ScrollController هم باید پارامتر زیر رو
true
کنیم : keepScrollOffset
🔥از این نوع key کلن میتونیم برای ذخیره و بازیابی اطلاعات توی یک Route و توی frame های مختلف استفاده کنیم که یه کاربردش همین بود که گفتم.
#capsule #intermediate #local_key #list_view
🔥Challenge
▶️سناریو :
یه قسمتی از اپمون قراره که جستجو توی محصولات یا... رو پیاده کنیم.
🔴یه Search Box لازم داریم.
🔴کاربر شروع میکنه به نوشتن و همزمان باید جستجو انجام بشه...
❓چالش :
فرض کنید ازمون خواسته شده که هر وقت کاربر شروع کرد به نوشتن و دستشو برداشت و ۲ ثانیه طول کشید (ینی بین تایپ کردن کاربر ۲ ثانیه وقفه ایجاد شد) بلافاصله جستجو انجام شه...
🟢یعنی اگه کاربر بدون وقفه (۲ثانیه ای) به تایپ کردن ادامه داد هیچ جستجویی انجام نمیشه.
توضیح بدید که این مساله رو، به خصوص وقفه ۲ ثانیه رو چطوری هندل میکنید؟
⛔️ساختار معماری در این چالش مدنظر نظر نیست.
✅فقط نحوه هندل کردن این موضوع به خصوص وقفه مهم هست.
✅در صورت لزوم میتونید کد هم ارائه کنید.
#challenge #flutter_challenge #dart_challenge
#intermediate
▶️سناریو :
یه قسمتی از اپمون قراره که جستجو توی محصولات یا... رو پیاده کنیم.
🔴یه Search Box لازم داریم.
🔴کاربر شروع میکنه به نوشتن و همزمان باید جستجو انجام بشه...
❓چالش :
فرض کنید ازمون خواسته شده که هر وقت کاربر شروع کرد به نوشتن و دستشو برداشت و ۲ ثانیه طول کشید (ینی بین تایپ کردن کاربر ۲ ثانیه وقفه ایجاد شد) بلافاصله جستجو انجام شه...
🟢یعنی اگه کاربر بدون وقفه (۲ثانیه ای) به تایپ کردن ادامه داد هیچ جستجویی انجام نمیشه.
توضیح بدید که این مساله رو، به خصوص وقفه ۲ ثانیه رو چطوری هندل میکنید؟
⛔️ساختار معماری در این چالش مدنظر نظر نیست.
✅فقط نحوه هندل کردن این موضوع به خصوص وقفه مهم هست.
✅در صورت لزوم میتونید کد هم ارائه کنید.
#challenge #flutter_challenge #dart_challenge
#intermediate
🔥Challenge
▶️سناریو :
میخوایم یک فرایند Sign up و Sign in شبیه به تلگرام رو انجام بدیم.
1⃣Sign up
وقتی که برای اولین بار وارد اپ میشیم و از قبل اکانت نداریم.
✔️شماره موبایل دریافت میشه و کد تایید فرستاده میشه.
✔️کد تایید اعتبار سنجی میشه.
✔️اسم و فامیل دریافت میشه و وارد اپ میشیم.
2⃣Sign in
وقتی که از قبل اکانت داریم.
✔️شماره موبایل دریافت میشه و کد تایید ارسال میشه.
✔️کد تایید اعتبار سنجی میشه و وارد اپ میشیم.
❓چالش :
ℹ️از دید کاربر معمولی احتمالا فرایند sign up و sign in به صورت کاملا مستقل پیاده سازی شده، توضیح بدید که ایا این فرایند ها مستقل هستند یا اینکه قسمتی از این دو فرایند به صورت مشترک پیاده سازی میشوند.
2⃣این فرایند ها رو تحلیل کنید و بگید چه api هایی و با چه جزییاتی (ساختار api) برای پیاده سازی این فرایندها نیاز دارید.
#challenge #flutter_challenge #intermediate
▶️سناریو :
میخوایم یک فرایند Sign up و Sign in شبیه به تلگرام رو انجام بدیم.
1⃣Sign up
وقتی که برای اولین بار وارد اپ میشیم و از قبل اکانت نداریم.
✔️شماره موبایل دریافت میشه و کد تایید فرستاده میشه.
✔️کد تایید اعتبار سنجی میشه.
✔️اسم و فامیل دریافت میشه و وارد اپ میشیم.
2⃣Sign in
وقتی که از قبل اکانت داریم.
✔️شماره موبایل دریافت میشه و کد تایید ارسال میشه.
✔️کد تایید اعتبار سنجی میشه و وارد اپ میشیم.
❓چالش :
ℹ️از دید کاربر معمولی احتمالا فرایند sign up و sign in به صورت کاملا مستقل پیاده سازی شده، توضیح بدید که ایا این فرایند ها مستقل هستند یا اینکه قسمتی از این دو فرایند به صورت مشترک پیاده سازی میشوند.
2⃣این فرایند ها رو تحلیل کنید و بگید چه api هایی و با چه جزییاتی (ساختار api) برای پیاده سازی این فرایندها نیاز دارید.
#challenge #flutter_challenge #intermediate
🔥Challenge
❓چالش :
تفاوت Future.delayed با Timer چیه؟ 🤔
#challenge
#dart_challenge
#begginer
#intermediate
❓چالش :
تفاوت Future.delayed با Timer چیه؟ 🤔
#challenge
#dart_challenge
#begginer
#intermediate