آموزش فلاتر و دارت
1.59K subscribers
54 photos
19 videos
12 files
44 links
Download Telegram
ما چیزی داریم به نام مدل OSI

بچه های شبکه توی دانشگاه یا کلاس های شبکه درموردش خوندن حتماً


از 7 لایه تشکیل شده
وقتی دارید با API کار میکنید دیتای که ارسال میکنید از این 7 لایه میگذره و به مقصد میرسه


وقتی دیتای ارسال میکنید مبدا از لایه هفتم این فرایند ارسال شروع میشه

ولی توی مقصد دریافت و پردازش داده از لایه اول شروع میشه تا برسه به لایه هفتم

لایه هفتم همون اپلیکیشن شما هستش
شبیه سازی که جدیدا اندروید استودیو روی نسخه عروس دریای گذاشته به صورت ریموت هستش و با وصل شده به فایر بیس و انتخاب یک پروژ از پروژه های فایربیس میتونید استفاده کنید

دیگه نگران منابع مصرفی توسط شبیه ساز به هیچ وجه نباشید 😍

همین الان دارم ازش استفاده میکنم واقعا عالیه با اینکه نسخه آلفا هستش باز خیلی خوبه
مهندس نرم افزار یک توسعه دهنده نیست
آیا میدانستید؟

در انتشار نسخه های اپلیکیشن (موبایل ، دسکتاپ ، وب و ...) ما چیزی به نام
Software release life cycle
که چند مرحله داره!

1) Pre-alpha
2) Alpha
3) Beta
3-1) Perpetual beta
3-2) Open and closed beta
4) Release candidate
5) Stable release
6) End-of-life

هر شرکتی برای اینکه اپلیکیشن یا پروژه ای قوی در سطح بین المللی منتشر کنه باید این 6 مرحله رو بگذرونه و خیلی از شرکت ها بزرگ این کار رو میکنند؟

حالا مرحله 6 برای زمانی هستش که نرم افزار از چرخه خارج میشه و عملا دیگه از یک زمان به بعد کار نخواهد کرد

* تقریبا توی تمام شرکت های که در ایران کار کرده بودم مستقیم میرفتیم روی مرحله 5 😅 و کلا روی این مرحله میموندیم


اگر بخوایم اپلیکیشن قوی داشته باشیم مرحله 1 تا 4 مهمترین مراحل انتشار یک اپلیکیشن یا فیچری که به اپلیکیشن اضافه کردیم هستند(توجه کنید گفتم فیچر جدید ممکنه اپلیکیشن توی مرحله 5 هستش و یک فیچری اضافه کردیم که شماره ورژن ماژور رو تغییر داده اون فیچر حتما باید این چرخه رو بگذرونه یعنی اپلیکیشن از 1.0.0 رفته روی 2.0.0 )

حتما درمورد این چرخه حیاتی انتشار اپلیکیشن و ورژن بندی اپلیکیشن تحقیق کنید

البته بین مرحله 2 و 3 چیزی به نام Feature-complete داریم که اینجا نیاوردم و معمولا از 2 مستقیم میرند روی 3 در بیشتر موارد
از وقتی که، از جاوا و کاتلین به سمت دارت و فلاتر سوئیچ کردم دنبال فرصتی بودم که یک فریمورک برای نوشتن بکند با دارت توسعه بدم

چند سالی گذشت تا رسید به یکی دوماه قبل که استارتش رو زدم روز ها پروژه های شرکت رو انجام میدادم شب ها و روز های جمعه هم روی فریم ورک وقت میگذاشتم تا یکی دو روز پیش که نسخه آلفا رو آماده کردم داکیومنتش هم بخش ORM و بخش AUTH مونده که باید تکمیل کنم

چند تا از بچه ها داوطلب شدن نسخه آلفا رو تست کنند 💙

ویژگی هاش
فعلاً فقط برای توسعه api هستش
امکان ایجاد وب سوکت درکنار api
استفاده از ORM برای دیتابیس (نیازی به نوشتن SQL نیست)
رویتنگ مشابه به لاراول
امکان ایجاد میدلور
ولیدیشن کردن درخواست ها
داشتن سرویس پروایدر
امکان استفاده از تمام پکیج های دارت
امکان دیپلوی بر روی داکر


دلیل ایجاد فریم ورک برای دارت هم این بود چون چند بار با خود دارت پروژه های تستی بکند زدم هم سرعت توسعه و هم سرعت لود واقعا خوب بودن مخصوصا که دارت کامپایلری هستش و میشه از ایزوله ها استفاده کرد و حتی از Future ها هم استفاده کرد

اسمش رو همنام دخترم گذاشتم و انتشار عمومی نسخه بتا روز تولد دخترم که 11 ام اسفنده هستش 💙
😂 بدبخت فلاتر 😂
خیلی از دوستان درمورد استفاده از دیتابیس ها و پکیچ های دارت توی فریمورک پرسیدن درمورد پکیچ ها باید بگم شما هر پکیچی که به وسیله دارت (فلاتری نباشند) رو میتونید راحت توی فریم ورک استفاده کنید و هیچ محدودیتی ندارید

برای دیتابیس ها هم به صورت پیش فرض 2 تا دیتابیس رو میتونید به صورت ORM استفاه کنید Mysql و Postgresql ولی برای استفاده کردن از دیتابیس های NO-Sql مثل Hive هم محدودیتی ندارید

یک قابلیت خیلی خوبی توی فریم ورک گنجانده شده به نام ServiceProvider میتونید یک کلاس ایجاد کنید و از سرویس پروایدر فریمورک extends کنید دوتا متد داره رجیستر و بوت که رجیستر قبل از هر چیزی صدا زده میشه و کلاس های شما مقدار دهی میشن این هم نمونه استفاده از Hive نتیجه توی مروگر
آموزش فلاتر و دارت
😂 بدبخت فلاتر 😂
Headspace
نرم افزاری که میلیون ها کاربر داره از ریکت نیتیو به فلاتر مهاجرت کرده و الان اپش با فلاتر داره کار میکنه


بعد این دوستمون میگه فلاتر آزمایشی هستش 🤦‍♂️
همانطور که گفتم امروز نسخه بتا فریمورک قرار بود منتشر بشه

اسم فریمورک وانیا(Vania) هستش که هم نام دخترم گذاشتم

سعی شده فریمورک شبیه به لاراول طراحی بشه چون لاراول طراحی ساده و قابل درکی داره

بزودی کانال و گروه آموزش فریمورک هم ایجاد میشه که میتونید آموزش های فریمورک رو اونجا ببینید

این نسخه بتا هستش و ممکن باگ های داشته باشه خوشحال میشم اگر باگ منطقی یا امنیتی توی پروژه دیدید از طریق ایشیو های گیت هاب مطرح کنید


برای استفاده از فریمورک میتونید از آدرس زیر داکیومنت اون رو مطالعه کنید

https://vdart.dev


اگر از پروژه استفاده کردید خوشحال میشم توی گیت هاب به پروژه ستاره بدید

https://github.com/vania-dart/framework

و توی سایت pub.dev اون رو لایک کنید

https://pub.dev/packages/vania

برای دیده شدن بیشتر پروژه و بهبود اون به حمایت شما نیاز داره

تشکر
دوستان من یک سوتی دادم تويتر بلاکم کرد 😅🤦‍♂

اطلاعاتم رو فرستادم درست کنه حساب رو


اگر میتونید تویت کنید با هشتگ دارت و فلاتر و متن انگلیسی ممنون میشم 🙏
پروژه تست با فریمورک وانیا Github

توی این پروژه کاربر ثبت نامه میکنه
لاگین میکنه و توکن خودش رو میگیره
اطلاعات خودش رو ویرایش میکنه عکس پروفایل آپلود میکنه
پست ارسال میکنه و لیست پست ها رو دریافت میکنه
Media is too big
VIEW IN TELEGRAM
ایجاد دیتابیس رایگان بر روی لیارا و استفاده در فریم ورک وانیا
Media is too big
VIEW IN TELEGRAM
استقرار پروژه ساخته شده با وانیا بر روی لیارا به صورت رایگان
واقعا زیبا نیست ؟ ورژن بندی روت ها و تمیزی روت ها ؟
Forwarded from Mohammad Taheri
پیسنهادم برای دوستانی که تازه دارن شروع میکنن یا میانه راه هستن این هست که‌صرف نظر از هر استیت منیجمنتی که کار می‌کنید سعی کنید

۱) استریم ها رو به خوبی درک کنید و درک عالی از reactive داشته باشید

۲) به درک خوبی از Observer pattern برسید که بی ربط با reactive نیست

۳) ساختار درختی فلاتر و لایف سایکلش و الکوریتم ها و پترن هایی که توی این ساختار نقش کلیدی دارن مثل recursive function و ...رو بشناسید

۴) بیلد کانتکست رو خوب بشناسید

‌۵)با state full widget و لایف سایکلش به خوبی آشنا بشید

۶) و inherited widget و مشتقاتش رو هم خوب خوب و کاربردی درک کنید

پ.ن: اگه اشراف به این مباحث براتون سخت هست، گوشه ی ذهنتون داشته باشید تا به موقع خودش اتفاق بیوفته و تکه های پازل کم کم کنار هم قرار بگیرن
و کد جنیریشن برای بخش route های فریمورک وانیا برای علاقه‌مندان به کدجنیریشن ها 😃

این پکیچ جدایی از خود فریمورک وانیا هستش و برای استفاده از اون باید به pubspec اضافش کنید

به این صورت عمل خواهد کرد که شما توی کنترلر میتونید تعیین کنید که تابع از چه نوع http method هستش و خودش بر اساس دادهای که میدید روت ها رو جنریت میکنه و فقط کافیه توی سرویس پروایدر یا api_route اصلی وانیا قرار بدید

تمام
دوستانی که بکند میخوان بکند کار کنند این ها رو داشته باشند Route ها بر اساس این متد هت نوشته میشند