Forwarded from Pure Coder
⚡️⚡️یه نکته ⚡️⚡️
🔥توی هر 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 IranCoderz (Farid Ghaderi)
آپدیت 1.61 VS Code یکی از قابلیتهای خوبی که اضافه کرده، Bracket pair guides هستش که کار اکستنشنهایی مثل Bracket pair colorizer رو انجام میده و دیگه نیازی به اونها ندارید. به گفته خود مایکروسافت، الگوریتمهای به کار برده شده تو این قابلیت 10,000 برابر سریعتر از بقیه اکستنشنها هست.
برای فعال کردنش کافیه تو settings.json برنامه، مقدار editor.guides.bracketPairs رو برابر true قرار بدید.
https://code.visualstudio.com/updates/v1_61
🆔 @IranCoderz | 👩💻🧑💻
برای فعال کردنش کافیه تو settings.json برنامه، مقدار editor.guides.bracketPairs رو برابر true قرار بدید.
https://code.visualstudio.com/updates/v1_61
🆔 @IranCoderz | 👩💻🧑💻
Forwarded from آموزش برنامه نویسی فلاتر Flutter
▪️ از امروز محیط توسعه آنلاین DartPad از bloc و flutter_bloc پشتیبانی میکنه و میتونید بدون مشکل استفاده کنید
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
Forwarded from Pure Coder
⚡️⚡️Function⚡️⚡️
1⃣
🔥توی دارت هر function خودش یه آبجکت به حساب میاد.
یعنی چی؟
✅یعنی دقیقن مثل وقتی که یک کلاس داریم و از اون کلاس یه آبجکت (نمونه /شی) میسازیم :
class User{}
var user = User() ;
یا وقتی که به عدد صحیح تعریف میکنیم :
int a = 2;
و a یه ابجکت از کلاس int به حساب میاد.
دقیقن همین اتفاق هم برای function ها میوفته.
🔥توی دارت یه کلاس داریم به اسم
Function
همه function هایی که میسازیم یه ابجکت (نمونه) از این کلاس به حساب میان.
void myFunc() {}
print(myFunc is Function) //true
🔥پس وقتی که یه function مینویسیم، دارت واسمون یه ابجکت جدید از کلاس Function ایجاد میکنه و اسمی که ما برای اون function گذاشتیم مثل اسم یه متغیر هست (که یه رفرنس از اون ابجکت توی حافظه هست)
پس توی مثال بالا یه ابجکت از کلاس Function ایجاد میشه و myFunc یه متغیری هست که رفرنس اون ابجکت رو نگه میداره (دقیقن مثل قضیه کلاس ها)
#function
1⃣
🔥توی دارت هر function خودش یه آبجکت به حساب میاد.
یعنی چی؟
✅یعنی دقیقن مثل وقتی که یک کلاس داریم و از اون کلاس یه آبجکت (نمونه /شی) میسازیم :
class User{}
var user = User() ;
یا وقتی که به عدد صحیح تعریف میکنیم :
int a = 2;
و a یه ابجکت از کلاس int به حساب میاد.
دقیقن همین اتفاق هم برای function ها میوفته.
🔥توی دارت یه کلاس داریم به اسم
Function
همه function هایی که میسازیم یه ابجکت (نمونه) از این کلاس به حساب میان.
void myFunc() {}
print(myFunc is Function) //true
🔥پس وقتی که یه function مینویسیم، دارت واسمون یه ابجکت جدید از کلاس Function ایجاد میکنه و اسمی که ما برای اون function گذاشتیم مثل اسم یه متغیر هست (که یه رفرنس از اون ابجکت توی حافظه هست)
پس توی مثال بالا یه ابجکت از کلاس Function ایجاد میشه و myFunc یه متغیری هست که رفرنس اون ابجکت رو نگه میداره (دقیقن مثل قضیه کلاس ها)
#function
A fully-functional video streaming app made in Flutter using Custom Nodejs backend
https://github.com/Hritik-Chaurasia/Lavender
https://github.com/Hritik-Chaurasia/Lavender
Pure Coder
⚡️⚡️Function⚡️⚡️ 1⃣ 🔥توی دارت هر function خودش یه آبجکت به حساب میاد. یعنی چی؟ ✅یعنی دقیقن مثل وقتی که یک کلاس داریم و از اون کلاس یه آبجکت (نمونه /شی) میسازیم : class User{} var user = User() ; یا وقتی که به عدد صحیح تعریف میکنیم : int a = 2; و a یه…
جوین شید تو این چنل عه 😐
https://t.me/flutter_challenges
https://t.me/flutter_challenges
Build your first API with Dart | Dart server with gRPC Complete course 2021
https://github.com/Santos-Enoque/dart-grpc-server-course
https://www.youtube.com/watch?v=DzelfUzjVMk
https://github.com/Santos-Enoque/dart-grpc-server-course
https://www.youtube.com/watch?v=DzelfUzjVMk
Style: Incoming backend framework project for Dart
https://medium.com/@mehmet_76940/style-incoming-backend-framework-for-dart-d544bdb78a36?source=email-4bcbe0699430-1633993638159-digest.reader-5b301f10ddcd-d544bdb78a36----0-58------------------461c6dca_119f_44d1_8d23_1f13abf9cb26-1-8a1de519_3c49_416b_92ac_a1588def8c08
https://medium.com/@mehmet_76940/style-incoming-backend-framework-for-dart-d544bdb78a36?source=email-4bcbe0699430-1633993638159-digest.reader-5b301f10ddcd-d544bdb78a36----0-58------------------461c6dca_119f_44d1_8d23_1f13abf9cb26-1-8a1de519_3c49_416b_92ac_a1588def8c08
Forwarded from DevTwitter | توییت برنامه نویسی
یک اشتباه متداول در بین برنامه نویس ها این هست که به در تمام زبان ها با یک سبک کد میزن.
به این معنا که اگر فرد اولین زبان برنامه نویسی که یاد گرفته باشد جاوا یا... باشد
در زبان بعدی برای مثال پایتون یا همان طرز فکر کد میزند!
یادگیری یک زبان جدید چیزی فراتر از یادگیری سیتکس جدید هست :)
هر زبان برنامه نویسی برای هدفی به وجود اومده و سبک و ساختار مخصوص خود را دارد.
نحوه نام گذاری متغییر ها از هر زبان به زبان دیگر میتواند متفاوت باشد و حتی این نام گذاری ها روی معنا و رفتار نیز متاثر هستن.
برای مثال در زبان go ما اگر متغییر (یا اسم تابع) رو با حروف بزرگ شروع کنیم باعث میشود از خارج از Package اش بهش دسترسی داشته باشیم درحالی که اگر با حروف کوچک شروع شود از خارج از پکیج به آن دسترسی نداریم .
حتی قوائد و ساختار چیدمان کد در هر زبان متفاوت هست.
پس بهتر است قبل از شروع به کد نویسی در زبان جدید برای جلوگیری از ایجاد کد های بی کیفیت ابتدا چند نمونه پروژه OpenSource خوب از زبان مطالعه کنیم.
@DevTwitter | <MAHDI AKBARI/>
به این معنا که اگر فرد اولین زبان برنامه نویسی که یاد گرفته باشد جاوا یا... باشد
در زبان بعدی برای مثال پایتون یا همان طرز فکر کد میزند!
یادگیری یک زبان جدید چیزی فراتر از یادگیری سیتکس جدید هست :)
هر زبان برنامه نویسی برای هدفی به وجود اومده و سبک و ساختار مخصوص خود را دارد.
نحوه نام گذاری متغییر ها از هر زبان به زبان دیگر میتواند متفاوت باشد و حتی این نام گذاری ها روی معنا و رفتار نیز متاثر هستن.
برای مثال در زبان go ما اگر متغییر (یا اسم تابع) رو با حروف بزرگ شروع کنیم باعث میشود از خارج از Package اش بهش دسترسی داشته باشیم درحالی که اگر با حروف کوچک شروع شود از خارج از پکیج به آن دسترسی نداریم .
حتی قوائد و ساختار چیدمان کد در هر زبان متفاوت هست.
پس بهتر است قبل از شروع به کد نویسی در زبان جدید برای جلوگیری از ایجاد کد های بی کیفیت ابتدا چند نمونه پروژه OpenSource خوب از زبان مطالعه کنیم.
@DevTwitter | <MAHDI AKBARI/>
This media is not supported in your browser
VIEW IN TELEGRAM
Animated Segmented Tab Control
A customizable segment tab control. Can be used with or without TabView.
https://pub.dev/packages/animated_segmented_tab_control
A customizable segment tab control. Can be used with or without TabView.
https://pub.dev/packages/animated_segmented_tab_control
This media is not supported in your browser
VIEW IN TELEGRAM
Example of how to create scenes with Rive content in Flutter!
https://github.com/luigi-rosso/rive-centaur
https://github.com/luigi-rosso/rive-centaur
Make live location tracker using flutter and firebase
https://github.com/ManthanSutariya23/live_location_tracker
https://github.com/ManthanSutariya23/live_location_tracker
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 IranCoderz (Farid Ghaderi)
Forwarded from Pure Coder
⚡️⚡️Flutter Key⚡️⚡️
8️⃣ GlobalKey
مثال )
میدونیم که وقتی که از MaterialApp استفاده میکنیم یه دونه Navigator برامون میسازه و توی درخت قراره میده.
بعد از اون هر موقع که بخوایم از نویگیتور استفاده کنیم میگیم :
Navigator.of(context)
❓این کد دقیقن چکار مکینه ؟
با استفاده از context ای که بهش دادیم شروع میکنه به جستجو توی درخت (از parent ویجت شروع میکنه) و میره بالا تا یه نویگتور توی درخت پیدا کنه و بعد state اون رو برمیگیردونه , یعنی خروجی این متد یه NavigatorState هست.
🔥ویجت Navigator یه StatefulWidget هست و یه state به نام NavigatorState داره و متد Navigator.of(context) یه NavigatorState برمیگردونه.
حالا بعد از اون میگیم
Navigator.of(context).push...
که این متد push و بقیه متد هایی که استفاده میکنیم متد هایی هستن که داخل NavigatorState تعریف شدن.
🔥🔥حالا به جای این کار میتونیم موقع ساخت MaterialApp یه پارامتر به اسم navigatorKey بهش بدیم. و توی این پارامتر یه GlobalKey بدیم. در نتیجه MaterialApp این key رو میده به Navigator و بعد از اون میتونیم ازش برای پیدا کردن NavigatorState استفاده کنیم :
var myNavKey = GlobalKey<NavigatorState>();
......
return MaterialApp(
navigatorKey: myNavKey,
.....
);
حالا به جای :
Navigator.of(context)
میگیم :
myNavKey.currentState.push...
🔥پس بدون نیاز به context تونستیم که نویگیت رو انجام بدیم.
🔥این کاری هست که پکیج GetX انجام میده.
#key
#flutter_key
#local_key
#global_key
8️⃣ GlobalKey
مثال )
میدونیم که وقتی که از MaterialApp استفاده میکنیم یه دونه Navigator برامون میسازه و توی درخت قراره میده.
بعد از اون هر موقع که بخوایم از نویگیتور استفاده کنیم میگیم :
Navigator.of(context)
❓این کد دقیقن چکار مکینه ؟
با استفاده از context ای که بهش دادیم شروع میکنه به جستجو توی درخت (از parent ویجت شروع میکنه) و میره بالا تا یه نویگتور توی درخت پیدا کنه و بعد state اون رو برمیگیردونه , یعنی خروجی این متد یه NavigatorState هست.
🔥ویجت Navigator یه StatefulWidget هست و یه state به نام NavigatorState داره و متد Navigator.of(context) یه NavigatorState برمیگردونه.
حالا بعد از اون میگیم
Navigator.of(context).push...
که این متد push و بقیه متد هایی که استفاده میکنیم متد هایی هستن که داخل NavigatorState تعریف شدن.
🔥🔥حالا به جای این کار میتونیم موقع ساخت MaterialApp یه پارامتر به اسم navigatorKey بهش بدیم. و توی این پارامتر یه GlobalKey بدیم. در نتیجه MaterialApp این key رو میده به Navigator و بعد از اون میتونیم ازش برای پیدا کردن NavigatorState استفاده کنیم :
var myNavKey = GlobalKey<NavigatorState>();
......
return MaterialApp(
navigatorKey: myNavKey,
.....
);
حالا به جای :
Navigator.of(context)
میگیم :
myNavKey.currentState.push...
🔥پس بدون نیاز به context تونستیم که نویگیت رو انجام بدیم.
🔥این کاری هست که پکیج GetX انجام میده.
#key
#flutter_key
#local_key
#global_key
Forwarded from Pure Coder
⚡️⚡️Flutter Key⚡️⚡️
9️⃣ GlobalKey
❓آیا کاری که توی پست قبلی کردیم توی پرفرمانس تاثیر داره؟؟
😍😍صدردرصد بلههههه.
🔥🔥وقتی که از
Navigator.of
استفاده میکنیم شروع میکنه توی درخت حرکت کردن و به دنبال Navigator گشتن.
هرچه ویجت Navigator به ویجتی که داخلش این متد رو call کردیم نزدیکتر باشه این جستجو سریع تر انجام میشه و هر چقدر دورتر باشه زمان بیشتری میبره.
ولی وقتی از GlobalKey استفاده میکنیم دیگه نیازی به جستجو نیست و همون موقع در لحظه با استفاده از key میتونیم به NavigatorSate برسیم.
#key
#flutter_key
#local_key
#global_key
9️⃣ GlobalKey
❓آیا کاری که توی پست قبلی کردیم توی پرفرمانس تاثیر داره؟؟
😍😍صدردرصد بلههههه.
🔥🔥وقتی که از
Navigator.of
استفاده میکنیم شروع میکنه توی درخت حرکت کردن و به دنبال Navigator گشتن.
هرچه ویجت Navigator به ویجتی که داخلش این متد رو call کردیم نزدیکتر باشه این جستجو سریع تر انجام میشه و هر چقدر دورتر باشه زمان بیشتری میبره.
ولی وقتی از GlobalKey استفاده میکنیم دیگه نیازی به جستجو نیست و همون موقع در لحظه با استفاده از key میتونیم به NavigatorSate برسیم.
#key
#flutter_key
#local_key
#global_key