آموزش پروژه محور برنامه نویسی فلاتر و دارت در قالب 34 فصل.
روزانه یک قسمت از دوره آموزشی در کانال یوتیوب منتشر میشود.
پروژه بازی دوز اولین پروژه این دوره هست که پیادهسازی آن را انجام میدهید و هدف آشنایی بهتر با منطق برنامهنویسی و تفکر الگوریتمی هست.
در پروژه طراحی چت روم نیز یک چتروم ساده دوطرفه طراحی میکنیم که هدف از انجام این پروژه آشنایی با وبسوکت میباشد.
برای آمادگی بیشتر و تسلط در مباحث طراحی رابط کاربری اپلیکیشنهای فلاتر، در این پروژه بهصورت کاملاً 0 تا 100 طراحی رابط کاربری یک صرافی ارز دیجیتال را با زبان دارت و فریمورک فلاتر انجام میدهیم.
این پروژه بهشکل کاملاً رسپانسیو طراحی شده و روی گوشیهای موبایل و دستکتاپ (بهصورت PWA) تست میشود.
برای تمرین بیشتر، هم بخشی از این پروژه را بهوسیله وبسوکت Socket.io به یک صرافی واقعی متصل میکنیم تا اطلاعات لحظهای (مانند قیمتها و معاملات) را دریافت کنیم.
در این پروژه بهطور کامل طراحی یک رابط کاربری زیبا و خلاقانه را انجام میدهیم تا با نحوه ساخت ویجتهای مختلف و استفاده از آنها در کنار یکدیگر آشنا شوید.
همچنین در پروژه دیگری، رابط کاربری یک صفحه از وبسایت فیلم را با استفاده از نسخه وب فلاتر پیادهسازی میکنیم. در این پروژه از انیمیشن برای جابهجایی صفحات استفاده میشود و پروژه بهشکل کاملاً رسپانسیو (واکنشگرا) طراحی میشود.
پروژه طراحی شبکه اجتماعی در فلاتر، با استفاده از بکاند جنگو پیادهسازی شده است و یک شبکه اجتماعی ساده را پیادهسازی میکنیم.
- ثبتنام و ورود کاربر
- احراز هویت بهوسیله JWT
- مشاهده پستها
- لایک کردن مطالب و ارسال کامنت
- ارسال درخواست دنبالکردن کاربران
- ارسال پست بههمراه آپلود تصویر
| فصل | قسمت |
|---|---|
| فصل اول: مقدمه دوره آموزشی | 1- آشنایی با دوره و توضیحات |
| 2- نصب پیش نیازها | |
| 3- نسخه جدید اندروید استودیو | |
| 4- نصب سیستم عامل مک روی ویندوز | |
| فصل دوم: مباحث پایه برنامه نویسی دارت | 1- تعریف متغیر |
| 2- عملگرهای ریاضی | |
| 3- عملگرهای Unary assignment | |
| 4- عبارت های شرطی - ساختار if/else | |
| 5- عبارت های شرطی - ساختار Switch case | |
| 6- حلقه های تکرار | |
| 7- آشنایی با نوع داده List | |
| 8- آشنایی با نوع داده Map | |
| 9- آشنایی با نوع داده Set | |
| 10- آشنایی با نوع داده Enum | |
| 11- تعریف تابع در برنامه نویسی | |
| 12- بررسی عمیق تر توابع | |
| 13- نوع داده Records | |
| فصل سوم: مباحث پیشرفته برنامه نویسی دارت | 1- برنامه نویسی شی گرایی: تعریف کلاس |
| 2- مفاهیم اصلی شی گرایی | |
| 3- ارث بری در شی گرایی | |
| 4- برنامه نویسی شی گرایی: طراحی اینترفیس | |
| 5- مدیریت خطا | |
| 6- برنامه نویسی Async | |
| 7- خواندن و نوشتن از فایل | |
| فصل چهارم: ویجت های لایه در فلاتر | 1- ساخت اولین پروژه فلاتر |
| 2- ویجت Container | |
| 3- ویجت های Column, Row | |
| 4- ساخت لیست ویو , GridView | |
| فصل پنجم: ویجت های پایه ای فلاتر | 1- نمایش متن ویجت Text |
| 2- کار با دکمه و رویدادهای کلیک | |
| 3- ساخت ویجت Stateful | |
| 4- دریافت اطلاعات از کاربر با Textfield | |
| 5- طراحی دکمه Checkbox و Radio Button | |
| 6- ساخت منو Drop down | |
| 7- اضافه کردن تصویر و فونت به برنامه | |
| 9- دریافت اطلاعات با TextForm | |
| 10- طراحی فرم OTP دریافت کد | |
| فصل ششم: متریال دیزاین | 1-متریال دیزاین چیست؟ طراحی Appbar |
| 2- ساخت منو Navigation drawer | |
| 3- ساخت دکمه شناور FAB | |
| 4- طراحی منو Bottom Navigation | |
| 5- طراحی تب در اپلیکیشن Tabview | |
| 6- طراحی اسلایدر | |
| 7- پیاده سازی ویجت Banner | |
| 8- آشنایی با Theme در فلاتر | |
| 9- پیاده سازی Date picker | |
| فصل هفتم: مسیریابی | 1- جا به جایی بین صفحات و مسیریابی عادی |
| 2- مسیریابی با نام | |
| 3- مسیریابی با go_router | |
| فصل هشتم: ذخیره سازی اطلاعات | 1- استفاده از SharedPrefences |
| 2- پیاده سازی Secure SharedPrefences | |
| 3- پیاده سازی دیتابیس Sqlite | |
| فصل نهم: مدیریت State | 1- آموزش کار با Inherited widget |
| 2- آموزش استفاده از Provider | |
| 3- روش های دریافت اطلاعات در Provider | |
| 4- آموزش Proxy Provider | |
| 5- پیاده سازی Stream | |
| 6- پیاده سازی الگوی Bloc | |
| 7- پیاده سازی الگوی Cubit | |
| فصل دهم: ارتباط با سرور | 1- آشنایی با Rest API |
| 2- نمایش لیست اطلاعات از سرور | |
| 3- ارسال درخواست POST | |
| 4- آموزش فرآیند لاگین در سرور | |
| 5- آموزش دانلود فایل | |
| فصل یازدهم: پروژه رابط کاربری | 1- پروژه عملی طراحی رابط کاربری |
| فصل دوازدهم: انیمیشن ها | 1- استفاده از ویجت های ویژه انیمیشن |
| 2- انیمیشن | |
| 3- انیمیشن | |
| 4- انیمیشن Hero | |
| فصل سیزدهم: بازی دوز | 1- طراحی بازی دوز |
| فصل چهاردهم: کار با نقشه | 1- نمایش نقشه در اپلیکیشن |
| 2- دریافت لوکیشن کاربر | |
| 3- کار با Google map | |
| فصل پانزدهم: مدیا | 1- طراحی موزیک پلیر |
| 2- کار با فایل های ویدیویی | |
| فصل شانزدهم: پکیج Getx | 1- بررسی قابلیت های Getx |
| فصل هفدهم: ترسیم اشکال | 1- ترسیم شکل های مختلف با کلاس CustomPainter |
| 2- طراحی شکل موج با کلاس CustomClipper | |
| فصل هجدهم: نوتیفیکیشن | 1- نمایش انواع نوتیفیکیشن |
| فصل نوزدهم: شبکه اجتماعی | 1- طراحی صفحه ورود |
| 2- طراحی تایم لاین | |
| 3- لایک کردن مطالب | |
| 4- ارسال کامنت | |
| 5- نمایش کامنت ها | |
| 6- طراحی صفحه پروفایل | |
| 7- صفحه ارسال پست | |
| 8- ویرایش اطلاعات پروفایل | |
| 9- پیاده سازی فالو و آنفالو کردن | |
| فصل بیستم: معماری نرم افزار | 1- پیاده سازی معماری MVVM |
| 2- تزریق وابستگی Get_it | |
| 3- معماری تمیز Clean architecture | |
| فصل بیست و یکم: فلاتر وب | 1- ایجاد اولین پروژه فلاتر وب |
| 2- طراحی وب اپلیکیشن موضوع فیلم | |
| فصل بیست و دوم: ساخت مرورگر | 1- طراحی اپلیکیشن مرورگر اینترنتی |
| فصل بیست و سوم: درگاه پرداخت آنلاین | 1- پیاده سازی قابلیت Deep link |
| 2- پیاده سازی درگاه پرداخت اینترنتی | |
| فصل بیست و چهارم: خروجی برنامه | 1- خروجی گرفتن از پروژه |
| فصل بیست و پنجم: طراحی چت روم با سوکت سرور | 1- طراحی اپلیکیشن چت روم |
| فصل بیست و ششم: آموزش گیت | 1- آشنایی با گیت |
| 2- مفاهیم اولیه گیت | |
| 3- گیتهاب | |
| 4- gitignore | |
| 5- بازگردانی تغییرات | |
| 6- ایجاد Branch | |
| 7- ترکیب دو Branch | |
| 8- کاربرد Stash | |
| 9- پیاده سازی CI/CD | |
| فصل بیست و هفتم: تست نرم افزار | 1- تست نرم افزار چیست؟ |
| 2- نوشتن Unit test | |
| 3- تست ویجت قسمت اول | |
| 4- تست ویجت قسمت دوم | |
| 5- تست ویجت Mockito | |
| 6- تست Integration test | |
| فصل بیست و هشتم: دیتابیس Realm | 1- آشنایی با Realm |
| 2- ساخت کلاس دسته بندی | |
| 3- ویرایش و حذف اطلاعات در Realm | |
| 4- ساخت کلاس پست ها | |
| 5- جستجو در Realm | |
| 6- گزارش گیری CSV و دسترسی ها در اندروید 13 | |
| فصل بیست و نهم: کار با Isolate | 1- آشنایی با برنامه نویسی Multi Thread |
| 2- ارتباط با سرور در Isolate | |
| 3- کاربرد Isolate.run | |
| 4- استفاده از متد compute | |
| فصل سی ام: کار با Method channel | 1- ساخت MethodChannel |
| 2- دریافت SMS های گوشی و ارسال به فلاتر | |
| فصل سی و یکم: پروژه طراحی رابط کاربری صرافی | 1- پیش نمایش پروژه |
| 2- طراحی هدر | |
| 3- طراحی بخش اطلاعات | |
| 4- طراحی پنل ها | |
| 5- طراحی بخش Orderbook | |
| 6- طراحی بخش خرید و فروش | |
| 7- بخش تاریخچه معاملات | |
| 8- اضافه کردن چارت قیمت | |
| 9- طراحی منو موبایل | |
| 10- لایه بندی صفحه موبایل | |
| 11- بخش سفارشات در موبایل | |
| 12- بخش خرید و فروش در موبایل | |
| 13- تاریخچه سفارشات در موبایل | |
| 14- اتصال به صرافی با سوکت Socket.io | |
| فصل سی و دوم: کار با سرویس های فایربیس | 1- راه اندازی فایربیس و FCM |
| 2- آموزش فایربیس API V1 | |
| 3- بررسی Topic | |
| 4- ارسال نوتیفیکیشن در حالت Terminated | |
| 5- پیاده سازی in-app messaging | |
| 6- ثبت نام کاربر در فایربیس | |
| 7- ورود با گوگل | |
| فصل سی و سوم: کار با سرویس ها | 1- انواع سرویس |
| 2- پیاده سازی Foreground | |
| فصل سی و چهارم: کار با gRPC | 1- ساخت سرور gRPC با Go |
| 2- پیاده سازی gRPC در فلاتر | |
| 3- استریم در gRPC | |
| 4- احراز هویت در gRPC |



