⚡️⚡️یه نکته ⚡️⚡️
🔥توی هر function کدهای بعد از return اجرا نمیشن.
String getName() {
return 'mohammad';
}
🤔🤔حالا اگه یه موقعی خواستیم یه کدی بعد از return بنویسیم و اجرا شه باید چکار کنیم؟
😍با یک ترفند خیلی ساده.
String getName() {
try{
return 'Mohammad';
}finally{
print('something') ;
}
}
🔥از بلوک try... finaly استفاده میکنیم
کد های اصلی رو داخل try مینویسیم و return رو هم همون جا قرار میدیم و کدهایی که میخایم بعد return اجرا شن رو توی بلوک finaly میگذاریم 🤪
🔥توی هر function کدهای بعد از return اجرا نمیشن.
String getName() {
return 'mohammad';
}
🤔🤔حالا اگه یه موقعی خواستیم یه کدی بعد از return بنویسیم و اجرا شه باید چکار کنیم؟
😍با یک ترفند خیلی ساده.
String getName() {
try{
return 'Mohammad';
}finally{
print('something') ;
}
}
🔥از بلوک try... finaly استفاده میکنیم
کد های اصلی رو داخل try مینویسیم و return رو هم همون جا قرار میدیم و کدهایی که میخایم بعد return اجرا شن رو توی بلوک finaly میگذاریم 🤪
Forwarded from Pure Coder
⚡️⚡️Flutter Key⚡️⚡️
5⃣
تقسیم بندی انواع key ها در فلاتر
✔️اون هایی که رنگ مشکی دارن abstract هستن و بقیه کلاس های معمولی هستن .
✔️اون هایی که با <T> مشخص شدن Generic هستن.
#key #local_key
#flutter_key #flutter_key
#value_key #object_key #unique_key
5⃣
تقسیم بندی انواع key ها در فلاتر
✔️اون هایی که رنگ مشکی دارن abstract هستن و بقیه کلاس های معمولی هستن .
✔️اون هایی که با <T> مشخص شدن Generic هستن.
#key #local_key
#flutter_key #flutter_key
#value_key #object_key #unique_key
Forwarded from Pure Coder
⚡️⚡️یه نکته ⚡️⚡️
کد بالا رو نگاه کنید.
یه کلاس Point داریم که دو تا instance field داریم به اسم های x و y که توی constructor مقدار گرفتن.
یه instance field دیگه هم داریم
distanceToOrigin
که میخوایم اون رو با استفاده از دو تا فیلد دیگه مقدار بدیم.
❌ولی بهمون ارور میده چون که نمیتونیم از یه instance field برای مقدار دهی یه instance field دیگه استفاده کنیم.
🤔🤔راه حل چیه؟
کد بالا رو نگاه کنید.
یه کلاس Point داریم که دو تا instance field داریم به اسم های x و y که توی constructor مقدار گرفتن.
یه instance field دیگه هم داریم
distanceToOrigin
که میخوایم اون رو با استفاده از دو تا فیلد دیگه مقدار بدیم.
❌ولی بهمون ارور میده چون که نمیتونیم از یه instance field برای مقدار دهی یه instance field دیگه استفاده کنیم.
🤔🤔راه حل چیه؟
Forwarded from Pure Coder
🔥راه حل اول استفاده از getter هست
double get distanceToOrigin => ....
و به این روش میشه از مقادیر instance field های دیگه داخل این getter استفاده کرد.
✅چون که getter یه متد هست و داخلش میشه از instance field های کلاس استفاده کرد.
double get distanceToOrigin => ....
و به این روش میشه از مقادیر instance field های دیگه داخل این getter استفاده کرد.
✅چون که getter یه متد هست و داخلش میشه از instance field های کلاس استفاده کرد.
Forwarded from Pure Coder
🔥راه حل دوم استفاده از late هست.
late final distanceToOrigin = ...
در این حالت distanceToOrigin هم یه instance field هست ولی چون از late استفاده کردیم همون اول کار که از کلاس ابجکت ساخته میشه مقدار دهی نمیشه و اولین باری که میخوایم از این فیلد استفاده کنیم مقدار دهی میشه.
❌در این حالت امکان استفاده از const constructor نیست.
چرا؟ 🤔
late final distanceToOrigin = ...
در این حالت distanceToOrigin هم یه instance field هست ولی چون از late استفاده کردیم همون اول کار که از کلاس ابجکت ساخته میشه مقدار دهی نمیشه و اولین باری که میخوایم از این فیلد استفاده کنیم مقدار دهی میشه.
❌در این حالت امکان استفاده از const constructor نیست.
چرا؟ 🤔
Forwarded from Pure Coder
🔥کاربرد :
کاربرد دو راه حل بالا :
✅توی State یه Stateful
جایی که میخوایم توی یه فیلد از پروپرتی widget استفاده کنیم.
مثلن :
Color color = widget.color:
که به مشکل میخوریم.
که با استفاده از getter و یا late میشه برطرفش کرد.
Color get color => widget.color;
Or
late Color color = widget.color;
✅توی abstract classها (که میخوایم constructor نداشته باشن و فقط یه interface باشن) هم میتونیم بعضی فیلد ها رو با توجه به فیلد های دیگه مقدار بدیم.
✅و...
کاربرد دو راه حل بالا :
✅توی State یه Stateful
جایی که میخوایم توی یه فیلد از پروپرتی widget استفاده کنیم.
مثلن :
Color color = widget.color:
که به مشکل میخوریم.
که با استفاده از getter و یا late میشه برطرفش کرد.
Color get color => widget.color;
Or
late Color color = widget.color;
✅توی abstract classها (که میخوایم constructor نداشته باشن و فقط یه interface باشن) هم میتونیم بعضی فیلد ها رو با توجه به فیلد های دیگه مقدار بدیم.
✅و...
Forwarded from Pure Coder
⚡️⚡️یه نکته ⚡️⚡️
توی زبان دارت چیزی به صورت صریح به اسم interface نداریم و هر کلاسی میتونه در حکم یک interface عمل کنه.
یعنی با implement کردن یک کلاس به جای extend کردن میتونیم از اون کلاس به عنوان interface استفاده کنیم.
✔️پس یه کلاس توی دارت هم قابلیت ارث بری داره و هم اینکه میشه به عنوان interface ازش استفاده کرد.
🔥حالا اگه بخوایم یه کلاسی بنویسیم که فقط و فقط یه interface باشه باید چکار کنیم؟
یعنی اینکه کلاسمون نه قابلیت ارث بری داشته باشه و نه بشه ازش نمونه ساخت و دقیقن مثل یک interface فقط بشه implement اش کرد.
برای اینکار از پترن ساده زیر استفاده میکنیم.
abstract class MyInterface {
MyInterface._() ;
}
😍یعنی با یه private constructor امکان نمونه ساختن و ارث بری رو ازش میگیریم و فقط میتونیم implement اش کنیم.
توی زبان دارت چیزی به صورت صریح به اسم interface نداریم و هر کلاسی میتونه در حکم یک interface عمل کنه.
یعنی با implement کردن یک کلاس به جای extend کردن میتونیم از اون کلاس به عنوان interface استفاده کنیم.
✔️پس یه کلاس توی دارت هم قابلیت ارث بری داره و هم اینکه میشه به عنوان interface ازش استفاده کرد.
🔥حالا اگه بخوایم یه کلاسی بنویسیم که فقط و فقط یه interface باشه باید چکار کنیم؟
یعنی اینکه کلاسمون نه قابلیت ارث بری داشته باشه و نه بشه ازش نمونه ساخت و دقیقن مثل یک interface فقط بشه implement اش کرد.
برای اینکار از پترن ساده زیر استفاده میکنیم.
abstract class MyInterface {
MyInterface._() ;
}
😍یعنی با یه private constructor امکان نمونه ساختن و ارث بری رو ازش میگیریم و فقط میتونیم implement اش کنیم.
Forwarded from وب سایت آموزشی کدفلو (Hasan Noroozi)
https://b2n.ir/r07455
قسمت دوازدهم دوره فلاتر وب منتشر شد😍🤩🥳
✅ نمایش تصاویر
✅ پیاده سازی فرم ها
✅طراحی صفحه ثبتنام
قسمت دوازدهم دوره فلاتر وب منتشر شد😍🤩🥳
✅ نمایش تصاویر
✅ پیاده سازی فرم ها
✅طراحی صفحه ثبتنام
@h_noroozi_t_96
حسن نوروزی عزیز تولدت مبارک🌹
این رو توی کانال گذاشتم که بچه ها بدونند امروز تولدته بتونند تخفیف توپی ازت بگیرند برای امروز 😂😂
حسن نوروزی عزیز تولدت مبارک🌹
این رو توی کانال گذاشتم که بچه ها بدونند امروز تولدته بتونند تخفیف توپی ازت بگیرند برای امروز 😂😂
Forwarded from وب سایت آموزشی کدفلو (Hasan Noroozi)
Forwarded from وب سایت آموزشی کدفلو (Hasan Noroozi)
سرفصل های آموزشی اولین وتنها دوره GetX فلاتر به زبان فارسی وب سایت کد فلو
✅مقدمات و دلیل استفاده
✅کار با snackBar و نمایش پیغام ها
✅نمایش bottom sheet ها و تغیر تم برنامه در أGetX
✅جابجایی بین صفحات و navigation ها به صورت کامل
✅کار با state management و مدیریت داده ها در برنامه با Obx (اشنایی با انواع متغیر ها)
✅کار با reactive state management
✅کار با انواع کنترل های reactive و اموزش simple state management
✅کار با worker ها و unique ID
✅چند زبانه کردن اپلیکیشن ها و internationalization
✅کار با Dependency Injection و Binding ها
✅گرفتن اطلاعات از api و نمایش ان با استفاده از GetX
✅اشنایی با GetView و GetWidget
✅پروژه ایجاد یک todo اپ به صورت کامل که با سرور در ارتباط هست و موارد زیر رو پوشش میده
📍 ثبت نام در اپلیکیشن
📍 اعتبار سنجی فرم ها
📍 ذخیره سازی اطلاعات لاگین حافظه لوکال
📍 گرفتن و نمایش موارد از سرور
📍 افزودن موارد
📍 حذف موارد
📍 ویرایش موارد
📍 جستجو در موارد اضافه شده
🛑🛑اگه مورد خاص دیگه مد نظر دوستان هستش بیان کنن که ما اضافه کنیم در این دوره فوق آلعاده
آدرس دوره Getx در فلاتر
http://codeflow.ir/UKvpS
✅مقدمات و دلیل استفاده
✅کار با snackBar و نمایش پیغام ها
✅نمایش bottom sheet ها و تغیر تم برنامه در أGetX
✅جابجایی بین صفحات و navigation ها به صورت کامل
✅کار با state management و مدیریت داده ها در برنامه با Obx (اشنایی با انواع متغیر ها)
✅کار با reactive state management
✅کار با انواع کنترل های reactive و اموزش simple state management
✅کار با worker ها و unique ID
✅چند زبانه کردن اپلیکیشن ها و internationalization
✅کار با Dependency Injection و Binding ها
✅گرفتن اطلاعات از api و نمایش ان با استفاده از GetX
✅اشنایی با GetView و GetWidget
✅پروژه ایجاد یک todo اپ به صورت کامل که با سرور در ارتباط هست و موارد زیر رو پوشش میده
📍 ثبت نام در اپلیکیشن
📍 اعتبار سنجی فرم ها
📍 ذخیره سازی اطلاعات لاگین حافظه لوکال
📍 گرفتن و نمایش موارد از سرور
📍 افزودن موارد
📍 حذف موارد
📍 ویرایش موارد
📍 جستجو در موارد اضافه شده
🛑🛑اگه مورد خاص دیگه مد نظر دوستان هستش بیان کنن که ما اضافه کنیم در این دوره فوق آلعاده
آدرس دوره Getx در فلاتر
http://codeflow.ir/UKvpS
وظیفه متد بالا چیست؟
Anonymous Quiz
10%
افزودن به لیست دیگر
6%
مقایسه دو لیست
54%
فیلتر بر اساس نام
18%
تبدیل مقادیر نام به حروف کوچک
12%
مشاهده نتایج
Forwarded from آموزش فلاتر و دارت
Media is too big
VIEW IN TELEGRAM
تا حالا به این فکر کردید که چطوری بتونید پردازش های سنگین رو توی دارت هندل کنید بدون اینکه برنامه بسته بشه یا توی کار نرم افزار وقفه ای ایجاد بشه ؟
توی این ویدیو با isolate آشنا میشید که کار رو برای شما خیلی راحت انجام میشده
ویدیو رایگان از دوره فلیمو
codevolution.ir
توی این ویدیو با isolate آشنا میشید که کار رو برای شما خیلی راحت انجام میشده
ویدیو رایگان از دوره فلیمو
codevolution.ir
Forwarded from Pure Coder
⚡️⚡️debug vs profile vs release⚡️⚡️
توی فلاتر سه حالت برای خروجی گرفتن و اجرا کردن اپ داریم.
✔️debug
✔️profile
✔️release
حالت release که برای خروجی گرفتن نهایی و انتشار اپلیکیشن هست.
❓ولی چه تفاوتی بین حالت debug و profile هست ؟
🔥یکی از نکات مهم این هست که برای تست پرفرمانس اپ و بررسی مشکلات احتمالی و به اصطلاح لگ هایی که ممکنه موقع کار با اپ پیش بیاد باید از حالت profile استفاده کنیم.
❓چرا؟
🔥یکی از دلایل این هست که در حالت debug برای کمک به روند توسعه و خطایابی بهتر تعداد زیادی assert هنگام اجرای کد های فریمورک اجرا میشه که باعث افت پرفرمانس اپ در حالت debug میشه که این assert ها در حالت profile و release هیچ تاثیری ندارن.
🔥پس برای تست پرفرمانس اپ به هیچ وجه از حالت debug استفاده نکنید چون که ۱۰۰ درصد نتیجه نادرست خواهد بود.
🔥نکته دیگه این که برای اینکه بهترین تست پرفرمانس رو داشته باشید از دیوایس واقعی استفاده کنید.
پس
Profile mode + Real device
🔥همچنین میتونید از ابزارهایی که فلاتر در حالت profile در اختیارتون میگذاره برای تست پرفرمانس اپ و... استفاده کنید.
توی فلاتر سه حالت برای خروجی گرفتن و اجرا کردن اپ داریم.
✔️debug
✔️profile
✔️release
حالت release که برای خروجی گرفتن نهایی و انتشار اپلیکیشن هست.
❓ولی چه تفاوتی بین حالت debug و profile هست ؟
🔥یکی از نکات مهم این هست که برای تست پرفرمانس اپ و بررسی مشکلات احتمالی و به اصطلاح لگ هایی که ممکنه موقع کار با اپ پیش بیاد باید از حالت profile استفاده کنیم.
❓چرا؟
🔥یکی از دلایل این هست که در حالت debug برای کمک به روند توسعه و خطایابی بهتر تعداد زیادی assert هنگام اجرای کد های فریمورک اجرا میشه که باعث افت پرفرمانس اپ در حالت debug میشه که این assert ها در حالت profile و release هیچ تاثیری ندارن.
🔥پس برای تست پرفرمانس اپ به هیچ وجه از حالت debug استفاده نکنید چون که ۱۰۰ درصد نتیجه نادرست خواهد بود.
🔥نکته دیگه این که برای اینکه بهترین تست پرفرمانس رو داشته باشید از دیوایس واقعی استفاده کنید.
پس
Profile mode + Real device
🔥همچنین میتونید از ابزارهایی که فلاتر در حالت profile در اختیارتون میگذاره برای تست پرفرمانس اپ و... استفاده کنید.
👍1