ما چیزی داریم به نام مدل OSI
بچه های شبکه توی دانشگاه یا کلاس های شبکه درموردش خوندن حتماً
از 7 لایه تشکیل شده
وقتی دارید با API کار میکنید دیتای که ارسال میکنید از این 7 لایه میگذره و به مقصد میرسه
وقتی دیتای ارسال میکنید مبدا از لایه هفتم این فرایند ارسال شروع میشه
ولی توی مقصد دریافت و پردازش داده از لایه اول شروع میشه تا برسه به لایه هفتم
لایه هفتم همون اپلیکیشن شما هستش
بچه های شبکه توی دانشگاه یا کلاس های شبکه درموردش خوندن حتماً
از 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 در بیشتر موارد
در انتشار نسخه های اپلیکیشن (موبایل ، دسکتاپ ، وب و ...) ما چیزی به نام
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 ام اسفنده هستش 💙
چند سالی گذشت تا رسید به یکی دوماه قبل که استارتش رو زدم روز ها پروژه های شرکت رو انجام میدادم شب ها و روز های جمعه هم روی فریم ورک وقت میگذاشتم تا یکی دو روز پیش که نسخه آلفا رو آماده کردم داکیومنتش هم بخش ORM و بخش AUTH مونده که باید تکمیل کنم
چند تا از بچه ها داوطلب شدن نسخه آلفا رو تست کنند 💙
ویژگی هاش
فعلاً فقط برای توسعه api هستش
امکان ایجاد وب سوکت درکنار api
استفاده از ORM برای دیتابیس (نیازی به نوشتن SQL نیست)
رویتنگ مشابه به لاراول
امکان ایجاد میدلور
ولیدیشن کردن درخواست ها
داشتن سرویس پروایدر
امکان استفاده از تمام پکیج های دارت
امکان دیپلوی بر روی داکر
دلیل ایجاد فریم ورک برای دارت هم این بود چون چند بار با خود دارت پروژه های تستی بکند زدم هم سرعت توسعه و هم سرعت لود واقعا خوب بودن مخصوصا که دارت کامپایلری هستش و میشه از ایزوله ها استفاده کرد و حتی از Future ها هم استفاده کرد
اسمش رو همنام دخترم گذاشتم و انتشار عمومی نسخه بتا روز تولد دخترم که 11 ام اسفنده هستش 💙
خیلی از دوستان درمورد استفاده از دیتابیس ها و پکیچ های دارت توی فریمورک پرسیدن درمورد پکیچ ها باید بگم شما هر پکیچی که به وسیله دارت (فلاتری نباشند) رو میتونید راحت توی فریم ورک استفاده کنید و هیچ محدودیتی ندارید
برای دیتابیس ها هم به صورت پیش فرض 2 تا دیتابیس رو میتونید به صورت ORM استفاه کنید Mysql و Postgresql ولی برای استفاده کردن از دیتابیس های NO-Sql مثل Hive هم محدودیتی ندارید
یک قابلیت خیلی خوبی توی فریم ورک گنجانده شده به نام ServiceProvider میتونید یک کلاس ایجاد کنید و از سرویس پروایدر فریمورک extends کنید دوتا متد داره رجیستر و بوت که رجیستر قبل از هر چیزی صدا زده میشه و کلاس های شما مقدار دهی میشن این هم نمونه استفاده از Hive نتیجه توی مروگر
برای دیتابیس ها هم به صورت پیش فرض 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
برای دیده شدن بیشتر پروژه و بهبود اون به حمایت شما نیاز داره
تشکر
اسم فریمورک وانیا(Vania) هستش که هم نام دخترم گذاشتم
سعی شده فریمورک شبیه به لاراول طراحی بشه چون لاراول طراحی ساده و قابل درکی داره
بزودی کانال و گروه آموزش فریمورک هم ایجاد میشه که میتونید آموزش های فریمورک رو اونجا ببینید
این نسخه بتا هستش و ممکن باگ های داشته باشه خوشحال میشم اگر باگ منطقی یا امنیتی توی پروژه دیدید از طریق ایشیو های گیت هاب مطرح کنید
برای استفاده از فریمورک میتونید از آدرس زیر داکیومنت اون رو مطالعه کنید
https://vdart.dev
اگر از پروژه استفاده کردید خوشحال میشم توی گیت هاب به پروژه ستاره بدید
https://github.com/vania-dart/framework
و توی سایت pub.dev اون رو لایک کنید
https://pub.dev/packages/vania
برای دیده شدن بیشتر پروژه و بهبود اون به حمایت شما نیاز داره
تشکر
vdart.dev
Vania Dart
دوستان من یک سوتی دادم تويتر بلاکم کرد 😅🤦♂
اطلاعاتم رو فرستادم درست کنه حساب رو
اگر میتونید تویت کنید با هشتگ دارت و فلاتر و متن انگلیسی ممنون میشم 🙏
اطلاعاتم رو فرستادم درست کنه حساب رو
اگر میتونید تویت کنید با هشتگ دارت و فلاتر و متن انگلیسی ممنون میشم 🙏
پروژه تست با فریمورک وانیا Github
توی این پروژه کاربر ثبت نامه میکنه
لاگین میکنه و توکن خودش رو میگیره
اطلاعات خودش رو ویرایش میکنه عکس پروفایل آپلود میکنه
پست ارسال میکنه و لیست پست ها رو دریافت میکنه
توی این پروژه کاربر ثبت نامه میکنه
لاگین میکنه و توکن خودش رو میگیره
اطلاعات خودش رو ویرایش میکنه عکس پروفایل آپلود میکنه
پست ارسال میکنه و لیست پست ها رو دریافت میکنه
GitHub
GitHub - vania-dart/example: Example project for Vania Framework
Example project for Vania Framework. Contribute to vania-dart/example development by creating an account on 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 و مشتقاتش رو هم خوب خوب و کاربردی درک کنید
پ.ن: اگه اشراف به این مباحث براتون سخت هست، گوشه ی ذهنتون داشته باشید تا به موقع خودش اتفاق بیوفته و تکه های پازل کم کم کنار هم قرار بگیرن
۱) استریم ها رو به خوبی درک کنید و درک عالی از reactive داشته باشید
۲) به درک خوبی از Observer pattern برسید که بی ربط با reactive نیست
۳) ساختار درختی فلاتر و لایف سایکلش و الکوریتم ها و پترن هایی که توی این ساختار نقش کلیدی دارن مثل recursive function و ...رو بشناسید
۴) بیلد کانتکست رو خوب بشناسید
۵)با state full widget و لایف سایکلش به خوبی آشنا بشید
۶) و inherited widget و مشتقاتش رو هم خوب خوب و کاربردی درک کنید
پ.ن: اگه اشراف به این مباحث براتون سخت هست، گوشه ی ذهنتون داشته باشید تا به موقع خودش اتفاق بیوفته و تکه های پازل کم کم کنار هم قرار بگیرن
و کد جنیریشن برای بخش route های فریمورک وانیا برای علاقهمندان به کدجنیریشن ها 😃
این پکیچ جدایی از خود فریمورک وانیا هستش و برای استفاده از اون باید به pubspec اضافش کنید
به این صورت عمل خواهد کرد که شما توی کنترلر میتونید تعیین کنید که تابع از چه نوع http method هستش و خودش بر اساس دادهای که میدید روت ها رو جنریت میکنه و فقط کافیه توی سرویس پروایدر یا api_route اصلی وانیا قرار بدید
تمام
این پکیچ جدایی از خود فریمورک وانیا هستش و برای استفاده از اون باید به pubspec اضافش کنید
به این صورت عمل خواهد کرد که شما توی کنترلر میتونید تعیین کنید که تابع از چه نوع http method هستش و خودش بر اساس دادهای که میدید روت ها رو جنریت میکنه و فقط کافیه توی سرویس پروایدر یا api_route اصلی وانیا قرار بدید
تمام
دوستانی که بکند میخوان بکند کار کنند این ها رو داشته باشند Route ها بر اساس این متد هت نوشته میشند