Flutter Zone | فلاتر و دارت
739 subscribers
522 photos
312 videos
1.07K files
817 links
ناحیه‌ی فلاتر
برای فلاتر
اموزش های فلاتر و دارت از یودمی

لینک گروه : https://t.me/flutterzone_group
Download Telegram
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 میگذاریم 🤪
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 | 👩‍💻🧑‍💻
▪️ از امروز محیط توسعه آنلاین DartPad از bloc و flutter_bloc پشتیبانی میکنه و میتونید بدون مشکل استفاده کنید


⚜️اولین مرجع فارسی فلاتر @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
A fully-functional video streaming app made in Flutter using Custom Nodejs backend

https://github.com/Hritik-Chaurasia/Lavender
‏یک اشتباه متداول در بین برنامه نویس ها این هست که به در تمام زبان ها با یک سبک کد میزن.

به این معنا که اگر فرد اولین زبان برنامه نویسی که یاد گرفته باشد جاوا یا... باشد
در زبان بعدی برای مثال پایتون یا همان طرز فکر کد می‌زند!


یادگیری یک زبان جدید چیزی فراتر از یادگیری سیتکس جدید هست :)

هر زبان برنامه نویسی برای هدفی به وجود اومده و سبک و ساختار مخصوص خود را دارد.
نحوه نام گذاری متغییر ها از هر زبان به زبان دیگر می‌تواند متفاوت باشد و حتی این نام گذاری ها روی معنا و رفتار نیز متاثر هستن.

‏برای مثال در زبان 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
Forwarded from Pure Coder
⚡️⚡️Flutter Key⚡️⚡️
5⃣

تقسیم بندی انواع key ها در فلاتر

✔️اون هایی که رنگ مشکی دارن abstract هستن و بقیه کلاس های معمولی هستن .

✔️اون هایی که با <T> مشخص شدن Generic هستن.

#key #local_key
#flutter_key #flutter_key
#value_key #object_key #unique_key
Forwarded from IranCoderz (Farid Ghaderi)
کلین کدِ بچه های دیتا سنتر🤤

* SMhdHsn *

🆔 @IranCoderz | 👩‍💻🧑‍💻
اگر میخواهید ارتفاع ایتم های GridView رو تغییر بدید میتونید از کلاس زیر استفاده کنید
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
Forwarded from Pure Coder
⚡️⚡️Flutter Key⚡️⚡️
9️⃣ GlobalKey

آیا کاری که توی پست قبلی کردیم توی پرفرمانس تاثیر داره؟؟

😍😍صدردرصد بلههههه.

🔥🔥وقتی که از
Navigator.of
استفاده میکنیم شروع میکنه توی درخت حرکت کردن و به دنبال Navigator گشتن.

هرچه ویجت Navigator به ویجتی که داخلش این متد رو call کردیم نزدیکتر باشه این جستجو سریع تر انجام میشه و هر چقدر دورتر باشه زمان بیشتری میبره.

ولی وقتی از GlobalKey استفاده میکنیم دیگه نیازی به جستجو نیست و همون موقع در لحظه با استفاده از key میتونیم به NavigatorSate برسیم.



#key
#flutter_key
#local_key
#global_key