آموزش فلاتر و دارت
1.59K subscribers
54 photos
19 videos
12 files
44 links
Download Telegram
خیلی دوست داشتم این رو به صورت پادکست منتشر کنم ولی خوب وقتش ندارم

خیلی ها میگن فلاتر آینده نداره
یکسری دیدم میگن Kotlin و Kmp و کامپوز فلاتر رو نابود میکنه و ته دل خیلی ها رو خالی میکنند

بزارید یک چیزی بگم خیالتون رو راحت کنم


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

گوگل اومد Kotlin رو حمایت کرد ولی باز کاتلین داره از جاوا استفاده میکنه باز گوگل وابسته اوراکل هستش چیکار کنه؟!

یعنی گوگل این قول تکنولوژی نمیتونه زبان و OS برای خودش ابدا کنه

و گوگل Chrome Os رو ایجاد کرد و بعد فوشیا و در ادامه از دارت توی فوشیا استفاده کرد و طبق اخباری که خوندم قرار هستش فلاتر Min SDK فوشیا بشه

و یکی دو هفته قبل خوندم گوگل با چند تا شرکت سازنده لپ‌تاپ صحبت کرده که os پیش فرض فوشیا باشه


شاید در 3-4 ساله آینده فوشیا جای اندروید روی موبایل ها بیاد و اگر بیاد اون وقت جایگاه فلاتر را خواهید دید


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

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

بزرگ شدن و دیده شدن جامعه فلاتر فارسی برای همه خوبه شاید در آینده بتونیم کسی رو داشته باشیم به نمایندگی از جامعه فلاتر فارسی بتونه در i/o های گوگل یا جوامع فلاتر کشور های مطرح بحث تحریم ها رو پیش بکشه و بتونیم حداقل بگیم ما هم هستیم


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

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


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


منتظرر خبر های خوب باشید.
یکی از موارد مهمی که توی کار تیمی خیلی مهم هستش اینه که تیم کد های یک دست بنویسند نه اینکه هرکسی بیاد برای خودش یک شکل کد بنویسه

منظورم معماری پروژه نیست منظور من اینه که یک سری نکات رو هنگام کد نویسی رعایت بشه

مثلا توی پروژه کسی حق استفاده از print نداره یا اگر استفاده مشخص بشه کجا استفاده شده
مثلا بجای استفاده از " بزای رشته ها از ' استفاده بشه
خط نباید بیشتر از 80 کارکتر باشه و....

دارت اومده یک سری دستورات به نام linter رو ایجاد کرده که میتونید توی
analysis_options.yaml
استفاده کنید

سه قسمت داره

include
برای وارد کردن دستورات از یک فایل دیگه
مثلا از پکیج fluttet_lints

analyzer
برای کاستوم کردن static analysis

linter
برای استفاده برخی از دستورات linter


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


فایل
analysis_options
خودم که توی پروژه هام استفاده میکنم رو بعد از این پست ارسال میکنم میتونید توی پروژه های خودتون استفاده کنید


نکته مهم : اینکه این فایل رو به هیچ وجه به پروژه ای فعلی که دستورات linter پیش فرض فلاتر استفاده شده استفاده نکنید که پروژه تبدیل میشه یک پروژه پر از خطا( البته چون خطا ها سینتکسی نیستند پروژه اجرا میشه ولی فایل ها پر از خط های قرمط میشن 😁 برای تست از فایل فعلی کپی بگیرید و فایل خودم رو بزارید )
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
به این آمار توجه کنید

از بین اپلیکیشن های منتشر شده در گوگل پلی 19% فلاتر و از زیکت نیتیو جلو زده
و توی اپ استور هم داره به ریکت نیتیو میرسه کم کم
منبع

https://appfigures.com/top-sdks/development/apps
Media is too big
VIEW IN TELEGRAM
هر زبانی که از بکند پشتیبانی میکنه نیاز به یک فریمورک خوبی داره

فریمورکی که استفاده از اون راحت باشه

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

منم تصمیم گرفتم یک فریمورکی رو توسعه بدم که برنامه نویس های دارت بتونند راحت بکند توسعه بدن

و شما با این فریم ورک در کنار فلاتر به یک فول استک دولپر تبدیل خواهید شد😁😁
واکشی دیتا از Mysql به همین راحتی با استفاده از Model ها

Easy peasy lemon squeezy
تست نویسی از نظر من و خیلی از برنامه نویسان یکی از مهمترین بخش های توسعه یک نرم افزار هستش اینکه قبل از انتشار نرم افزاری یا پکیجی براش تست بنویسی میشه گفت از به وجود اومدن باگ های زیادی جلوگیری میکنید

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

سعی کردم فریم ورک سطح بالا و قابل درک باشه تا بچه های که با بکند آشنایی ندارند راحتر بتونند یک بکند حداقل برای اپلیکیشن های خودشون بنویسند.

بزودی بنچ مارک این فریم ورک رو هم قرار میدم
com_fluttershark_fluttersharkapp_v1.3.8.apk
4.4 MB
این نرم افزار رو نصب کنید ببینید چه اپلیکیشنی با فلاتر نوشته شده روی گوشی شما و ببینید از چه پکیج های استفاده کرده
کدام توزیع از لینوکس را ترجیح میدید؟ (برای همه کار ها برنامه نویسی، کار های روز مره و....)
Anonymous Poll
11%
Debian
76%
Ubuntu
11%
Arch Linux
9%
Mint
6%
Manjaro
6%
Fedora
ما چیزی داریم به نام مدل 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 ام اسفنده هستش 💙