🔥Challenge
❓چالش :
اگر بخوایم که یه قطعه کد بلافاصله بعد از کدهای دیگه ولی بدون تاخیر زمانی اجرا بشه چه راه حلی به ذهنتون میرسه ؟ 🤔
#challenge
#dart_challenge
#intermediate
❓چالش :
اگر بخوایم که یه قطعه کد بلافاصله بعد از کدهای دیگه ولی بدون تاخیر زمانی اجرا بشه چه راه حلی به ذهنتون میرسه ؟ 🤔
#challenge
#dart_challenge
#intermediate
🔥Challenge
▶️سناریو :
همون طور که میدونید توی اپلیکیشن هامون برای ردیابی کاربر یه توکن از سرور می گیریم و اون رو توی حافظه ذخیره میکینم.
🔴در واقع بعد از اینکه کاربر لاگین یا رجیستر کرد یا...، سرور به ما یه توکن میده.
🔴ما باید این توکن رو ذخیره کنیم و توی درخواست های بعدی که به سرور میزنیم این توکن رو توی هدر درخواست ارسال کنیم.
❓چالش :
فرض کنید یه وب سرویس برای لاگین داریم و بعد از یه لاگین موفقیت امیز، سرور یه توکن توی ریسپانس این درخواست برای ما فرستاده.
🟢حالا این توکن رو باید ذخیره کنیم.
با توجه به معماری و ساختاری که استفاده میکنید توضیح بدید که عملیات مربوط به ذخیره توکن رو چگونه در ساختار معماری خودتون هندل میکنید...
🟢توضیح بدید که عملیات ذخیره سازی توکن کدوم بخش های معماری شما رو درگیر میکنه و هر بخش چه کاری رو انجام میده.
#challenge
#architecture_challenge
▶️سناریو :
همون طور که میدونید توی اپلیکیشن هامون برای ردیابی کاربر یه توکن از سرور می گیریم و اون رو توی حافظه ذخیره میکینم.
🔴در واقع بعد از اینکه کاربر لاگین یا رجیستر کرد یا...، سرور به ما یه توکن میده.
🔴ما باید این توکن رو ذخیره کنیم و توی درخواست های بعدی که به سرور میزنیم این توکن رو توی هدر درخواست ارسال کنیم.
❓چالش :
فرض کنید یه وب سرویس برای لاگین داریم و بعد از یه لاگین موفقیت امیز، سرور یه توکن توی ریسپانس این درخواست برای ما فرستاده.
🟢حالا این توکن رو باید ذخیره کنیم.
با توجه به معماری و ساختاری که استفاده میکنید توضیح بدید که عملیات مربوط به ذخیره توکن رو چگونه در ساختار معماری خودتون هندل میکنید...
🟢توضیح بدید که عملیات ذخیره سازی توکن کدوم بخش های معماری شما رو درگیر میکنه و هر بخش چه کاری رو انجام میده.
#challenge
#architecture_challenge
از نویگیتور ۱ و ۲ به صورت همزمان میشه توی اپ استفاده کرد؟
یعنی هم از Navigator.pages استفاده کنیم و هم از api های کلاسیک نویگیتور مثل push و...
یعنی هم از Navigator.pages استفاده کنیم و هم از api های کلاسیک نویگیتور مثل push و...
Anonymous Poll
77%
اره
23%
نه
🔥Challenge
❓چالش :
اگه بخوایم معادل سازی کنیم معادل Activity که توی اندروید نیتیو داریم، توی فلاتر چیه؟ 🤔
#challenge
#flutter_challenge
❓چالش :
اگه بخوایم معادل سازی کنیم معادل Activity که توی اندروید نیتیو داریم، توی فلاتر چیه؟ 🤔
#challenge
#flutter_challenge
Forwarded from Persian Flutter (Hadi Azarnasab)
توضیحات بیشتر در مورد آپدیت فلاتر۳ و دارت ۲.۱۷ در پست ویرگول:
https://virgool.io/flutter-community/flutter-3-lw4e9j8t0vv8
#فلاتر۳
@persian_flutter
https://virgool.io/flutter-community/flutter-3-lw4e9j8t0vv8
#فلاتر۳
@persian_flutter
This media is not supported in your browser
VIEW IN TELEGRAM
🔥Challenge
❓چالش :
بنظرتون بهترین راه برای پیاده سازی قسمت کامنت ها شبیه اپ یوتیوب چیه؟ 🤔
✅از پایین بیاد بالا .
✅تا یه جای مشخصی هم بالا بیاد
✅فقط با زدن ضربدر بسته بشه و بره پایین.
❌حرکت دست روش تاثیری نداشته باشه.
#challenge
#flutter_challenge
❓چالش :
بنظرتون بهترین راه برای پیاده سازی قسمت کامنت ها شبیه اپ یوتیوب چیه؟ 🤔
✅از پایین بیاد بالا .
✅تا یه جای مشخصی هم بالا بیاد
✅فقط با زدن ضربدر بسته بشه و بره پایین.
❌حرکت دست روش تاثیری نداشته باشه.
#challenge
#flutter_challenge
💊Capsule
Static vs Factory Constructors in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_difference-static-factory-activity-6932942346330234881-XbjP?utm_source=linkedin_share&utm_medium=android_app
#capsule
#dart
Static vs Factory Constructors in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_difference-static-factory-activity-6932942346330234881-XbjP?utm_source=linkedin_share&utm_medium=android_app
#capsule
#dart
🔥Challenge
❓چالش :
میخوام در مورد StatefulWidget صحبت کنم.
🟢همون طور که میدونیم ویجت ها توی فلاتر immutable هستن و StatefulWidget یه State داره میتونه mutable باشه و به این ترتیب با استفاده از اون میشه درخت ویجت رو بر اساس فیلد هایی که توی State تغییر میکنن اپدیت کرد.
🟢توی StatelessWidget یه متد build داریم که وظیفش ساختن اون قسمت از درخت هست.
🟢توی StatefulWidget ولی این متد build رو نداریم و به جاش این متد انتقال داده شده به کلاس State.
🤔توی داک فلاتر یه بحثی رو مطرح کرده و گفته اولش به این فکر میکردیم که توی StatefulWidget هم متد build رو بذاریم توی خود کلاس ویجت و نه کلاس State ولی...
❌حالا فرض کنید که متد build به جای کلاس State توی خود کلاس StatefulWidget بود (شبیه StatelessWidget) و البته کلاس State رو هم داشتیم و این کلاس بقیه متد های مربوط به life cycle مثل initState و... رو داشت و امکان rebuild کردن رو هم با setState داشت.
🟢دقیقا همین چیزی که الان هست فقط با انتقال متد build به کلاس StatefulWidget
❓حالا شما بگید اگه این اتفاق میوفتاد چه خوبی ها و یا چه بدی هایی داشت.؟
#challenge
#flutter_challenge
❓چالش :
میخوام در مورد StatefulWidget صحبت کنم.
🟢همون طور که میدونیم ویجت ها توی فلاتر immutable هستن و StatefulWidget یه State داره میتونه mutable باشه و به این ترتیب با استفاده از اون میشه درخت ویجت رو بر اساس فیلد هایی که توی State تغییر میکنن اپدیت کرد.
🟢توی StatelessWidget یه متد build داریم که وظیفش ساختن اون قسمت از درخت هست.
🟢توی StatefulWidget ولی این متد build رو نداریم و به جاش این متد انتقال داده شده به کلاس State.
🤔توی داک فلاتر یه بحثی رو مطرح کرده و گفته اولش به این فکر میکردیم که توی StatefulWidget هم متد build رو بذاریم توی خود کلاس ویجت و نه کلاس State ولی...
❌حالا فرض کنید که متد build به جای کلاس State توی خود کلاس StatefulWidget بود (شبیه StatelessWidget) و البته کلاس State رو هم داشتیم و این کلاس بقیه متد های مربوط به life cycle مثل initState و... رو داشت و امکان rebuild کردن رو هم با setState داشت.
🟢دقیقا همین چیزی که الان هست فقط با انتقال متد build به کلاس StatefulWidget
❓حالا شما بگید اگه این اتفاق میوفتاد چه خوبی ها و یا چه بدی هایی داشت.؟
#challenge
#flutter_challenge
This media is not supported in your browser
VIEW IN TELEGRAM
یه افزوده کاربردی برای VS Code که میتونید ازش برای جستجو و اضافه کردن پکیج مورد نظرتون به فایل pubspec استفاده کنید
https://marketplace.visualstudio.com/items?itemName=jeroen-meijer.pubspec-assist
https://marketplace.visualstudio.com/items?itemName=jeroen-meijer.pubspec-assist
💊Capsule
Constructor vs Factory Constructor in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_constructor-factory-dart-activity-6930010995234856960-Gayn?utm_source=linkedin_share&utm_medium=android_app
#dart
#capsule
Constructor vs Factory Constructor in Dart
منبع :
https://www.linkedin.com/posts/vandadnp_constructor-factory-dart-activity-6930010995234856960-Gayn?utm_source=linkedin_share&utm_medium=android_app
#dart
#capsule
💊Capsule
🟢ViewInsets
پیکسل هایی هستن که سیستم عامل برای مواردی مثل کیبرد استفاده میکند(System UI)
در این نواحی هیچ محتوایی از اپ رندر نمیشود.
🟢ViewPadding
پیکسل هایی هستن که در طرفین دستگاه قرار دارن (بالا و پایین) مثل noch
🟢Padding
با استفاده از دو مقدار بالا محاسبه میشود.
Padding = max(0.0, viewPadding - viewInsets)
🔥این پراپرتی ها رو میتونید توی MediaQuery پیدا کنید.
#capsule
🟢ViewInsets
پیکسل هایی هستن که سیستم عامل برای مواردی مثل کیبرد استفاده میکند(System UI)
در این نواحی هیچ محتوایی از اپ رندر نمیشود.
🟢ViewPadding
پیکسل هایی هستن که در طرفین دستگاه قرار دارن (بالا و پایین) مثل noch
🟢Padding
با استفاده از دو مقدار بالا محاسبه میشود.
Padding = max(0.0, viewPadding - viewInsets)
🔥این پراپرتی ها رو میتونید توی MediaQuery پیدا کنید.
#capsule
💊Capsule
🔥توی اندروید های 10 به بعد یا Ui های اختصاصی شده مثل miui شاید دیده باشین که با کشیدن دست روی طرفین صفحه نمایش (چپ و راست) میتونیم صفجه رو بک کنیم.
🟢این قسمت ها یا این پیکسل ها در واقع پیکسل هایی هستن که محتوای اپ داخلشون رندر میشه ولی input gestures توی این پیکسل ها تشخیص داده نمیشه.
🟢در واقع سیستم عامل input gestures این پیکسل ها رو خودش مصرف میکنه و اجازه مدیریت اون توسط اپ رو نمیده.
🟢مثلا وقتی که کاربر میخواد منو کشویی رو باز کنه ولی با لمس اون نواحی به جای باز شدن منو صفحه بک میشه.
🔥مقدار پیکسلی که سیستم عامل توی این نواحی مصرف میکنه رو میشه با این پراپرتی از MediaQuery بدست اورد :
systemGestureInsets
#capsule
🔥توی اندروید های 10 به بعد یا Ui های اختصاصی شده مثل miui شاید دیده باشین که با کشیدن دست روی طرفین صفحه نمایش (چپ و راست) میتونیم صفجه رو بک کنیم.
🟢این قسمت ها یا این پیکسل ها در واقع پیکسل هایی هستن که محتوای اپ داخلشون رندر میشه ولی input gestures توی این پیکسل ها تشخیص داده نمیشه.
🟢در واقع سیستم عامل input gestures این پیکسل ها رو خودش مصرف میکنه و اجازه مدیریت اون توسط اپ رو نمیده.
🟢مثلا وقتی که کاربر میخواد منو کشویی رو باز کنه ولی با لمس اون نواحی به جای باز شدن منو صفحه بک میشه.
🔥مقدار پیکسلی که سیستم عامل توی این نواحی مصرف میکنه رو میشه با این پراپرتی از MediaQuery بدست اورد :
systemGestureInsets
#capsule
🔥Adaptive UI
🟢همون طور که میدونیم با فلاتر میتونیم برای پلتفرم های مختلف مثل وب، اندروید، ویندوز و... برنامه بنویسیم و از این رو برنامه ما ممکنه توی پلتفرم های مختلف یا اسکرین های مختلف (با سایزهای متفاوت) ران بشه.
🔥نکته ای که اهمیت پیدا میکنه این هست که برنامه انعطاف پذیر باشه و بتونه خودش رو با همه این شرایط وفق بده.
مثلا :
✔️تغییر چینش عناصر در سایزهای مختلف (سایز گوشی و دسکتاپ و....)
✔️استفاده از زبان طراحی مختلف در پلتفرم های مختلف
✔️ردیابی حرکات موس در پلتفرم های دسکتاپی
✔️و...
🔥برای این موضوع پکیجی با نام
https://pub.dev/packages/flutter_adaptive_ui
🔥پکیج رو بررسی کنید و نظرات و باگ های احتمالی رو بگید. 🙏
❤️❤️لطفا پکیج رو توی pub لایک کنید.❤️❤️
🔥در صورت تمایل میتونید در توسعه پکیج مشارکت کنید.
🟢همون طور که میدونیم با فلاتر میتونیم برای پلتفرم های مختلف مثل وب، اندروید، ویندوز و... برنامه بنویسیم و از این رو برنامه ما ممکنه توی پلتفرم های مختلف یا اسکرین های مختلف (با سایزهای متفاوت) ران بشه.
🔥نکته ای که اهمیت پیدا میکنه این هست که برنامه انعطاف پذیر باشه و بتونه خودش رو با همه این شرایط وفق بده.
مثلا :
✔️تغییر چینش عناصر در سایزهای مختلف (سایز گوشی و دسکتاپ و....)
✔️استفاده از زبان طراحی مختلف در پلتفرم های مختلف
✔️ردیابی حرکات موس در پلتفرم های دسکتاپی
✔️و...
🔥برای این موضوع پکیجی با نام
flutter_adaptive_ui
طراحی کردم. https://pub.dev/packages/flutter_adaptive_ui
🔥پکیج رو بررسی کنید و نظرات و باگ های احتمالی رو بگید. 🙏
❤️❤️لطفا پکیج رو توی pub لایک کنید.❤️❤️
🔥در صورت تمایل میتونید در توسعه پکیج مشارکت کنید.
Dart packages
flutter_adaptive_ui | Flutter package
A library that helps implement adaptive UI (based on OS , Screen size , ...) .
Pure Coder
🔥Adaptive UI 🟢همون طور که میدونیم با فلاتر میتونیم برای پلتفرم های مختلف مثل وب، اندروید، ویندوز و... برنامه بنویسیم و از این رو برنامه ما ممکنه توی پلتفرم های مختلف یا اسکرین های مختلف (با سایزهای متفاوت) ران بشه. 🔥نکته ای که اهمیت پیدا میکنه این هست که…
توی ورژن جدید پکیج
0.8.0-dev.2
ویجت های
PlatformBuilder
AdaptiveDesign
اضافه شدند
یک constructor با نام
Adaptivebuilder.custom
هم به ویجت AdaptiveBuilder اضافه شد و بعضی از پارامتر های constructor قبلی deprecated شدند
اگه نظری راجب این ها و موارد دیگه ای که میخواین به پکیج اضافه بشه دارین توی کامنت بگین.
0.8.0-dev.2
ویجت های
PlatformBuilder
AdaptiveDesign
اضافه شدند
یک constructor با نام
Adaptivebuilder.custom
هم به ویجت AdaptiveBuilder اضافه شد و بعضی از پارامتر های constructor قبلی deprecated شدند
اگه نظری راجب این ها و موارد دیگه ای که میخواین به پکیج اضافه بشه دارین توی کامنت بگین.
💊Capsule
BottomSheet
ℹ️
🔥توی متریال دیزاین دو نوع Bottom Sheet داریم.
✔️Persistent
این نوع در واقع مکمل محتوای اصلی هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو نمیگیره و با لمس کردن بقیه قسمت های اپ بسته نمیشه.
🟢این نوع رو میشه به دو روش استفاده کرد :
🔥پارامتر bottomSheet توی ویجت Scaffold
🔥🔥استفاده از فانکشن
showBottomSheet
و یا
Scaffold.of(context).showBottomSheet()
🔴هر کدوم از این روش ها تفاوت هایی دارن که بعدا اشاره میکنیم.
✔️Modal
این نوع درواقع یک گزینه جایگزین برای Dialog یا popup menu هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو میگیره.
🟢در صورتی که Dismissible باشه با لمس کردن قسمت های دیگه صفحه بسته میشه.
🔥این مورد رو میشه با استفاده از فانکشن
showModalBottomSheet
استفاده کرد.
#capsule
#intermediate
BottomSheet
ℹ️
🔥توی متریال دیزاین دو نوع Bottom Sheet داریم.
✔️Persistent
این نوع در واقع مکمل محتوای اصلی هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو نمیگیره و با لمس کردن بقیه قسمت های اپ بسته نمیشه.
🟢این نوع رو میشه به دو روش استفاده کرد :
🔥پارامتر bottomSheet توی ویجت Scaffold
🔥🔥استفاده از فانکشن
showBottomSheet
و یا
Scaffold.of(context).showBottomSheet()
🔴هر کدوم از این روش ها تفاوت هایی دارن که بعدا اشاره میکنیم.
✔️Modal
این نوع درواقع یک گزینه جایگزین برای Dialog یا popup menu هست و جلوی تعامل کاربر با بقیه قسمت های صفحه رو میگیره.
🟢در صورتی که Dismissible باشه با لمس کردن قسمت های دیگه صفحه بسته میشه.
🔥این مورد رو میشه با استفاده از فانکشن
showModalBottomSheet
استفاده کرد.
#capsule
#intermediate
💊Capsule
BottomSheet
2️⃣
✔️Persistent
گفتم که این مورد رو میشه به دو روش پیاده کرد.
🔥پارامتر bottomSheet توی Scaffold :
توی این حالت :
✅باتم شیت جزو محتوای اصلی صفحه حساب میشه.
✅جلوی تعامل کاربر با بقیه المان های صفحه رو نمیگیره
✅با لمس کردن بقیه قسمت های صفحه بسته نمیشه
❌امکان درگ کردن و بسته و باز کردن خود باتم شیت توسط کاربر نیست
❌دکمه بک به اپ بار اضافه نمیشه
❌با بک زدن یا Navigator.pop کل صفحه بسته میشه
🔥توی این حالت باتم شیت اون پایین صفحه میمونه و به هیچ وجه قابل بستن نیست مگر اینکه توی برنامه ست استیت کنی و توی build جدید باتم شیت نداشته باشی
#capsule
#intermediate
BottomSheet
2️⃣
✔️Persistent
گفتم که این مورد رو میشه به دو روش پیاده کرد.
🔥پارامتر bottomSheet توی Scaffold :
توی این حالت :
✅باتم شیت جزو محتوای اصلی صفحه حساب میشه.
✅جلوی تعامل کاربر با بقیه المان های صفحه رو نمیگیره
✅با لمس کردن بقیه قسمت های صفحه بسته نمیشه
❌امکان درگ کردن و بسته و باز کردن خود باتم شیت توسط کاربر نیست
❌دکمه بک به اپ بار اضافه نمیشه
❌با بک زدن یا Navigator.pop کل صفحه بسته میشه
🔥توی این حالت باتم شیت اون پایین صفحه میمونه و به هیچ وجه قابل بستن نیست مگر اینکه توی برنامه ست استیت کنی و توی build جدید باتم شیت نداشته باشی
#capsule
#intermediate