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
Flutter Starter Project
View project on github
#Flutter #GetX #Starter #Github
GetX, GetStorage & Http Package IncludedSample is available
View project on github
#Flutter #GetX #Starter #Github
Forwarded from Pure Coder
⚡️⚡️⚡️سطوح دسترسی در دارت ⚡️⚡️⚡️
با استفاده از این قابلیت میتونیم دسترسی به اعضای یه کلاس رو محدود کنیم.
🔥مثلن توی زبان JAVA چهار سطح دسترسی مختلف داریم.
public
private
protected
package
✔️حالت پیش فرض وقتی هست که قبل از field یا method هیچی نگذاریم که در این صورت سطح دسترسی package میشه و کلاس هایی که توی یه پکیج مشترک هستن میتونن به اون عضو دسترسی داشته باشن.
✔️اگه از public استفاده کنیم اون عضو همه جا قابل دسترسیه.
✔️اگه از private استفاده کنیم اون عضو فقط و فقط داخل همون کلاس قابل دسترسیه.
✔️اگه از protected استفاده کنیم اون عضو داخل اون کلاس و کلاس هایی که ازش ارث بری میکنن قابل دسترسیه.
🔥اگه بخوایم یه معادل سازی با JAVA داشته باشیم توی Dart دو نوع سطح دسترسی public و package (library) رو داریم.
✔️حالت public حالت پیش فرض هست .
✔️حالت package هم که توی دارت یه جورایی میتونیم اسمش رو بگذاریم library با گذاشتن یه دونه _ قبل field یا method ایجاد میشه.
در این صورت اون عضو در تمام کلاس ها یا function های اون library قابل دسترسیه.
🔥اگ library تعریف نکردید میتونید هرفایل .dart رو به عنوان یه library در نظر بگیرید.
❌از نظر من این موضوع یعنی سطوح دسترسی یکی از نقاط ضعف Dart هست.
🔥این نقطه ضعف توی فلاتر با استفاده از annotation ها تا حدودی برطرف شده.
مثلن اگه از فلاتر استفاده میکنید میتونید از
@protected
استفاده کنید.
با استفاده از این قابلیت میتونیم دسترسی به اعضای یه کلاس رو محدود کنیم.
🔥مثلن توی زبان JAVA چهار سطح دسترسی مختلف داریم.
public
private
protected
package
✔️حالت پیش فرض وقتی هست که قبل از field یا method هیچی نگذاریم که در این صورت سطح دسترسی package میشه و کلاس هایی که توی یه پکیج مشترک هستن میتونن به اون عضو دسترسی داشته باشن.
✔️اگه از public استفاده کنیم اون عضو همه جا قابل دسترسیه.
✔️اگه از private استفاده کنیم اون عضو فقط و فقط داخل همون کلاس قابل دسترسیه.
✔️اگه از protected استفاده کنیم اون عضو داخل اون کلاس و کلاس هایی که ازش ارث بری میکنن قابل دسترسیه.
🔥اگه بخوایم یه معادل سازی با JAVA داشته باشیم توی Dart دو نوع سطح دسترسی public و package (library) رو داریم.
✔️حالت public حالت پیش فرض هست .
✔️حالت package هم که توی دارت یه جورایی میتونیم اسمش رو بگذاریم library با گذاشتن یه دونه _ قبل field یا method ایجاد میشه.
در این صورت اون عضو در تمام کلاس ها یا function های اون library قابل دسترسیه.
🔥اگ library تعریف نکردید میتونید هرفایل .dart رو به عنوان یه library در نظر بگیرید.
❌از نظر من این موضوع یعنی سطوح دسترسی یکی از نقاط ضعف Dart هست.
🔥این نقطه ضعف توی فلاتر با استفاده از annotation ها تا حدودی برطرف شده.
مثلن اگه از فلاتر استفاده میکنید میتونید از
@protected
استفاده کنید.
سلام وقتتون بخیر
بنده برنامه نویس اندروید هستم و یکی از مشتریام میخواد که یه اکانت گوگل پلی دولوپر براش درست کنم و چون تو ایران تحریم هستیم نمیتونیم مستقیم انجام بدیم
کسی هست بتونه انجام بده برامون و هزینه ساخت اکانت ۲۵ دلار هستش و میتونم ۲۵ دلار هم بابت هزینه انجام کار پرداخت کنم
اگر هم خودتون وقت ندارید انجام بدید یا نمیخواهید که انجام بدید در صورتی که شخصی رو میشناسین که بتونه برامون انجام بده ممنون میشم به بنده معرفیش کنید
🌹🌹🌹
@ETara1
بنده برنامه نویس اندروید هستم و یکی از مشتریام میخواد که یه اکانت گوگل پلی دولوپر براش درست کنم و چون تو ایران تحریم هستیم نمیتونیم مستقیم انجام بدیم
کسی هست بتونه انجام بده برامون و هزینه ساخت اکانت ۲۵ دلار هستش و میتونم ۲۵ دلار هم بابت هزینه انجام کار پرداخت کنم
اگر هم خودتون وقت ندارید انجام بدید یا نمیخواهید که انجام بدید در صورتی که شخصی رو میشناسین که بتونه برامون انجام بده ممنون میشم به بنده معرفیش کنید
🌹🌹🌹
@ETara1