آموزش فلاتر و دارت - راهنمای کامل [نسخه 2023]

Flutter & Dart - The Complete Guide [2023 Edition]

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: راهنمای کامل Flutter SDK & Flutter Framework برای ساختن برنامه های بومی iOS و Android گام به گام Flutter و Dart را از پایه بیاموزید، برنامه های موبایلی جذاب را برای اندروید و iOS بسازید از ویژگی هایی مانند Google Maps، دوربین دستگاه استفاده کنید. ، احراز هویت و موارد دیگر! یاد بگیرید چگونه تصاویر را آپلود کنید و چگونه اعلان های فشاری دستی و خودکار ارسال کنید همه اصول اولیه را بدون توقف در پی آنها بیاموزید: عمیقاً در فلاتتر و دارت شیرجه بزنید و یک توسعه دهنده پیشرفته شوید. می توانید از Windows، macOS یا Linux برای توسعه برنامه اندروید استفاده کنید - برنامه های iOS فقط می توانند بر روی macOS ساخته شوند، اگرچه هیچ تجربه قبلی در توسعه iOS یا Android مورد نیاز نیست، تجربه قبلی Flutter یا Dart لازم نیست - این دوره از صفر شروع می شود!

به جامع ترین دوره پرفروش Flutter بپیوندید و یاد بگیرید که چگونه برنامه های شگفت انگیز iOS و Android بسازید!

برای ساختن برنامه های موبایل واقعی نیازی به یادگیری اندروید/جاوا و iOS/سوئیفت ندارید!

Flutter - چارچوبی که توسط Google توسعه یافته است - به شما امکان می دهد یک زبان (دارت) را یاد بگیرید و در کمترین زمان برنامه های تلفن همراه زیبای بومی بسازید. Flutter یک SDK است که ابزاری را برای کامپایل کد دارت به کد بومی ارائه می دهد و همچنین مجموعه ای غنی از عناصر رابط کاربری از پیش ساخته شده و از پیش طراحی شده (به اصطلاح ویجت ها) را در اختیار شما قرار می دهد که می توانید از آنها برای ایجاد رابط کاربری خود استفاده کنید.

Flutter بسیار پرطرفدار است و برای برنامه های اصلی Google مانند برنامه Adwords آنها استفاده می شود - اکنون به عنوان "آماده برای تولید" علامت گذاری شده است، بنابراین اکنون زمان آن است که وارد شوید و آن را یاد بگیرید!

این دوره فلاتتر دارت را از ابتدا آموزش می دهد، هیچ دانش قبلی در مورد هر یک از این دو مورد نیاز نیست! و مطمئناً نیازی به تجربه توسعه Android یا iOS ندارید زیرا کل ایده پشت Flutter یادگیری فقط یک زبان است.

شما Flutter را نه تنها به صورت تئوری یاد خواهید گرفت، بلکه ما یک برنامه کامل و واقعی در طول این دوره خواهیم ساخت. این برنامه هم تمام اصول اولیه و هم ویژگی‌های پیشرفته‌ای مانند استفاده از Google Maps، دوربین دستگاه، افزودن انیمیشن‌ها و موارد دیگر را دارد!

با Flutter، می‌توانید فقط یک‌بار کد بنویسید و برنامه‌های خود را به Apple AppStore و Google Play ارسال کنید.

از طراحی متریال Google برای ساختن برنامه‌های زیبا و در عین حال کاملاً قابل تنظیم در کمترین زمان و تقریباً بدون تلاش استفاده کنید. می‌توانید از مجموعه ویجت‌های غنی که Flutter ارائه می‌کند برای افزودن عناصر رابط کاربری رایج مانند دکمه‌ها، سوئیچ‌ها، فرم‌ها، نوار ابزار، فهرست‌ها و موارد دیگر استفاده کنید - یا به سادگی ویجت‌های خود را بسازید - Flutter این کار را نیز آسان می‌کند.

آنچه در این دوره گنجانده شده است:

  • دستورالعمل‌های راه‌اندازی دقیق برای macOS و Windows

  • معرفی کامل بر فلاتر، دارت و مفهوم پشت ویجت ها

  • نمای کلی از ویجت‌های داخلی و نحوه افزودن ویجت‌های خود

  • ترفندهای نکات رفع اشکال

  • پیمایش صفحه با زبانه ها، کشوهای کناری و پیمایش مبتنی بر پشته

  • راه حل های مدیریت ایالت

  • مدیریت و تأیید ورودی کاربر

  • اتصال برنامه Flutter خود به سرورهای پشتیبان با ارسال درخواست‌های Http

  • تأیید هویت کاربر

  • افزودن Google Maps

  • استفاده از ویژگی‌های دستگاه بومی مانند دوربین

  • افزودن جابجایی های صفحه انیمیشن های زیبا

  • آپلود تصویر

  • اعلان‌های فشاری - رویکرد دستی و خودکار

  • نحوه انتشار برنامه خود در فروشگاه های برنامه

  • و بیشتر!

این دوره برای شما مناسب است اگر ...

  • شما علاقه مند به ساخت برنامه های تلفن همراه بومی واقعی برای دو پلتفرم محبوب تلفن همراه - iOS و Android هستید

  • می‌خواهید مجموعه کاملی از ویژگی‌های پیشنهادی Flutter را کاوش کنید

  • نمی‌خواهید ساعت‌ها صرف یادگیری دو زبان کاملاً متفاوت کنید

پیش نیازهای دوره:

  • دانش پایه زبان برنامه نویسی کمک زیادی خواهد کرد اما نیاز سختی نیست

  • لازم نیست فلاتر یا دارت را بدانید

  • نیازی به دانستن iOS (Swift/ObjectiveC) یا Android (جاوا) ندارید


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • فلاتر چیست؟ What is Flutter?

  • به انجمن آموزش آنلاین ما بپیوندید Join our Online Learning Community

  • آشنایی با معماری فلاتر Understanding the Flutter Architecture

  • چگونه کد فلاتر و دارت در برنامه های بومی کامپایل می شود How Flutter & Dart Code Gets Compiled To Native Apps

  • آشنایی با نسخه های فلاتر Understanding Flutter Versions

  • Flutter macOS Setup Flutter macOS Setup

  • محیط توسعه macOS macOS Development Environment

  • Flutter Windows Setup Flutter Windows Setup

  • محیط توسعه ویندوز Windows Development Environment

  • فلاتر و طراحی متریال Flutter & Material Design

  • جایگزین های فلوتر Flutter Alternatives

  • طرح کلی دوره Course Outline

  • چگونه از دوره بیشترین بهره را ببریم How To Get The Most Out Of The Course

  • منابع و لینک های مفید Useful Resources & Links

مبانی فلاتر [برنامه QUIZ] Flutter Basics [QUIZ APP]

  • معرفی ماژول Module Introduction

  • ایجاد یک پروژه جدید Creating a New Project

  • مروری بر فایل ها و پوشه های تولید شده An Overview of the Generated Files & Folders

  • اطلاعات بیشتر در مورد Git (سیستم کنترل نسخه) More on Git (Version Control System)

  • تجزیه و تحلیل برنامه پیش فرض Analyzing the Default App

  • مبانی دارت Dart Basics

  • بیشتر مبانی دارت More Dart Basics

  • مبانی دارت - خلاصه Dart Basics - Summary

  • مبانی دارت Dart Fundamentals

  • ساختن یک اپلیکیشن از ابتدا Building an App From Scratch

  • اجرای برنامه روی شبیه ساز Running the App on an Emulator

  • سازندگان کلاس و آرگومان های نامگذاری شده Class Constructors & Named Arguments

  • اولین خلاصه و نحو اضافی First Summary & Additional Syntax

  • مبانی برنامه Flutter Flutter App Basics

  • ساخت یک درخت ویجت Building a Widget Tree

  • ویجت های قابل مشاهده (ورودی/خروجی) و نامرئی (طرح بندی/کنترل). Visible (Input / Output) & Invisible (Layout / Control) Widgets

  • افزودن ویجت های Layout Adding Layout Widgets

  • با استفاده از دکمه های "قدیمی". Using The "Old" Buttons

  • مبانی ویجت Widget Basics

  • اتصال توابع و دکمه ها Connecting Functions & Buttons

  • توابع ناشناس Anonymous Functions

  • به‌روزرسانی داده‌های ویجت (یا: استفاده نادرست از ویجت Stateless) Updating Widget Data (Or: Using StatelessWidget Incorrectly)

  • [DART DEEP DIVE] درک لیست ها [DART DEEP DIVE] Understanding Lists

  • به‌روزرسانی صحیح با ویجت‌های Stateful Updating Correctly with Stateful Widgets

  • ویجت های دولتی و بدون تابعیت Stateful & Stateless Widgets

  • نگاهی کوتاه به زیر کاپوت A Brief Look Under The Hood

  • استفاده از خصوصیات خصوصی Using Private Properties

  • ایجاد یک ویجت جدید و سفارشی Creating a New, Custom Widget

  • اولین مراحل استایل و چیدمان First Styling & Layouting Steps

  • Enums & Multiple Constructors Enums & Multiple Constructors

  • اسناد رسمی و کاتالوگ ویجت Official Docs & The Widget Catalog

  • دکمه های یک ظاهر طراحی شده Styling Buttons

  • توابع ارسال پاسخ به تماس در اطراف Passing Callback Functions Around

  • معرفی نقشه ها Introducing Maps

  • نگاشت لیست ها به ابزارک ها Mapping Lists to Widgets

  • نهایی در مقابل نتیجه final vs const

  • مبانی فلاتر و دارت پیشرفته Advanced Flutter & Dart Basics

  • معرفی بیانیه های «اگر». Introducing "if" Statements

  • [DART DEEP DIVE] بیشتر در مورد "اگر" اظهارات [DART DEEP DIVE] More on "if" Statements

  • [DART DEEP DIVE] ارزش "تهی" و ایمنی پوچ [DART DEEP DIVE] The "null" Value & Null Safety

  • خروجی ویجت ها به صورت مشروط Outputting Widgets Conditionally

  • تقسیم برنامه به ابزارک Splitting the App Into Widgets

  • محاسبه نمره کل Calculating a Total Score

  • گیرندگان و "دیگر-اگر" Getters & "else-if"

  • بازنشانی آزمون Resetting the Quiz

  • ابزارک دکمه "قدیمی" در مقابل ویجت دکمه "جدید". "Old" Button Widgets vs "New" Button Widgets

  • زمان تمرین: اصول فلاتر Time to Practice: Flutter Basics

  • بسته شدن Wrap Up

  • منابع ماژول Module Resources

اجرای برنامه ها در دستگاه های مختلف و برنامه های اشکال زدایی Running Apps on Different Devices & Debugging Apps

  • معرفی ماژول Module Introduction

  • اجرای برنامه بر روی یک دستگاه اندروید واقعی Running the App on a Real Android Device

  • اجرای برنامه در شبیه ساز iOS Running the App on an iOS Emulator

  • اجرای برنامه بر روی یک دستگاه iOS واقعی Running the App on a Real iOS Device

  • کار با شبیه سازها/استفاده از شبیه سازها Working with the Emulators / Using the Emulators

  • درک پیام های خطا و رفع خطاها Understanding Error Messages & Fixing Errors

  • با استفاده از Debugger Using the Debugger

  • شروع به کار با Dart DevTools Getting Started with the Dart DevTools

  • درک مجدد رنگین کمان Understanding the Repaint Rainbow

  • بسته بندی Dart DevTools Wrapping up the Dart DevTools

  • منابع و لینک های مفید Useful Resources & Links

ویجت‌ها، استایل‌سازی، افزودن منطق - ساختن یک برنامه واقعی [برنامه هزینه‌های شخصی] Widgets, Styling, Adding Logic - Building a Real App [PERSONAL EXPENSES APP]

  • معرفی ماژول Module Introduction

  • مروری بر ابزارک های فلوتر اصلی An Overview of the Core Flutter Widgets

  • برنامه ریزی اپلیکیشن Planning the App

  • ترکیب ابزارک ها Combining Widgets

  • درک تراز ستون Understanding Column Alignment

  • ستون ها و ردیف ها Columns & Rows

  • ویجت نیست: اضافه کردن مدل تراکنش و داده تراکنش Not a Widget: Adding a Transaction Model & Transaction Data

  • نگاشت داده ها در ابزارک ها Mapping Data Into Widgets

  • ساخت یک آیتم لیست سفارشی Building a Custom List Item

  • طراحی یک ظرف Styling a Container

  • استایل دادن به متن Styling Text

  • یک ظاهر طراحی بیشتر! More Styling!

  • زمان یک ظاهر طراحی شده! Styling Time!

  • کانتینرها در مقابل ستونها در مقابل ردیفها Containers vs Columns vs Rows

  • با استفاده از درون یابی رشته ای Using String Interpolation

  • نصب بسته های خارجی و قالب بندی تاریخ ها Installing External Packages & Formatting Dates

  • الگوهای DateFormat DateFormat Patterns

  • افزودن ابزارک های ورودی متن (TextField) Adding Text Input Widgets (TextField)

  • واکشی ورودی کاربر Fetching User Input

  • تقسیم برنامه به ابزارک Splitting the App Into Widgets

  • اتصال ابزارک ها و مدیریت داده ها/وضعیت Connecting Widgets & Managing Data / State

  • افزودن تراکنش های کاربر به لیست Adding User Transactions to the List

  • ساخت لیست قابل پیمایش! Making the List Scrollable!

  • کار با ListViews Working with ListViews

  • فهرست ها، پیمایش و ورودی متن Lists, Scrolling & Text Input

  • شکل و پیکربندی بیشتر ورودی و خروجی Further Input & Output Styling and Configuration

  • افزودن دکمه‌های AppBar و دکمه‌های عمل شناور Adding AppBar Buttons & Floating Action Buttons

  • نمایش یک برگه پایین مدال Showing a Modal Bottom Sheet

  • بهبود و حالت دادن به برگه پایین مدال Improving & Styling the Modal Bottom Sheet

  • پیکربندی و استفاده از تم Configuring & Using Themes

  • فونت های سفارشی و کار با مضامین متنی Custom Fonts & Working with Text Themes

  • ویژگی های تم متن به روز شد Updated Text Theme Properties

  • موضوع بندی Theming

  • افزودن تصاویر به برنامه Adding Images to the App

  • برنامه ریزی ویجت نمودار Planning the Chart Widget

  • چرخش از طریق فهرست ها Looping Through Lists

  • بیشتر در مورد "برای" حلقه ها More on "for" Loops

  • استخراج معاملات اخیر Deriving Recent Transactions

  • ایجاد میله برای نمودار ما Creating Bars for our Chart

  • پر کردن نمودار با ارزش ها Populating the Chart with Values

  • اتمام میله های نمودار Finishing the Chart Bars

  • انعطاف پذیر و توسعه یافته: شیرجه عمیق Flexible & Expanded: Deep Dive

  • افزودن ویجت ListTile Adding a ListTile Widget

  • بهبود نمودار کلی Improving the Overall Chart

  • ابزارک ها و پیکربندی ویجت ها - خلاصه/نمای کلی Widgets & Configuring Widgets - Summary / Overview

  • شروع با انتخاب تاریخ Getting Started with Date Selection

  • نمایش یک DatePicker Showing a DatePicker

  • افزودن معاملات با تاریخ Adding Transactions with a Date

  • حذف تراکنش ها و استفاده از IconButtons Deleting Transactions & Using IconButtons

  • پرداخت نهایی! Final Polishing!

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

رابط های کاربری و برنامه های پاسخگو و تطبیقی Responsive & Adaptive User Interfaces and Apps

  • معرفی ماژول Module Introduction

  • "پاسخگو" و "تطبیقی" به چه معناست؟ What does "Responsive" and "Adaptive" Mean?

  • مثال‌ها: جایی که می‌توانیم برنامه را بهبود بخشیم! Examples: Where we could improve the App!

  • محاسبه سایز به صورت پویا Calculating Sizes Dynamically

  • کار با "textScaleFactor" Working with the "textScaleFactor"

  • با استفاده از ویجت LayoutBuilder Using the LayoutBuilder Widget

  • پاسخگویی Responsiveness

  • کنترل جهت گیری دستگاه Controlling the Device Orientation

  • ارائه محتوای چشم انداز جایگزین - 1 Rendering Alternative Landscape Content - 1

  • اتمام حالت افقی Finishing Landscape Mode

  • نمایش محتوای متفاوت بر اساس جهت گیری دستگاه Showing Different Content Based on Device Orientation

  • احترام به صفحه کلید نرم افزاری Respecting the Softkeyboard Insets

  • استفاده از اندازه دستگاه در شرایط Using the Device Size in Conditions

  • مدیریت شی MediaQuery Managing the MediaQuery Object

  • بررسی پلت فرم دستگاه Checking the Device Platform

  • استفاده از ابزارک های کوپرتینویی (iOS). Using Cupertino (iOS) Widgets

  • با استفاده از SafeArea Using the SafeArea

  • سبک های کوپرتینویی بیشتر More Cupertino Styles

  • استفاده از دکمه های کوپرتینو Using Cupertino Buttons

  • ایجاد ابزارک های تطبیقی ​​سفارشی Creating Custom Adaptive Widgets

  • ابزارک های تطبیقی Adaptive Widgets

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

ابزارک و فلاتر داخلی - شیرجه عمیق Widget & Flutter Internals - Deep Dive

  • معرفی ماژول Module Introduction

  • مشکل در دست The Problem At Hand

  • درخت ویجت و درخت عنصر - چه، چرا و چگونه؟ Widget Tree & Element Tree - What, Why and How?

  • چگونه Flutter صفحه را بازسازی و رنگ آمیزی می کند How Flutter Rebuilds & Repaints the Screen

  • چگونه Flutter بیلد() را اجرا می کند How Flutter Executes build()

  • استفاده از ویجت‌ها و سازندگان "const". Using "const" Widgets & Constructors

  • ابزارک ها، عناصر، build() Widgets, Elements, build()

  • نوشتن کد خوب Writing Good Code

  • استخراج ابزارک ها Extracting Widgets

  • استفاده از روش های سازنده Using Builder Methods

  • زمان تمرین: روش‌های سازنده Time to Practice: Builder Methods

  • آشنایی با چرخه حیات ویجت Understanding the Widget Lifecycle

  • فراخوانی super.initState() و غیره Calling super.initState() etc.

  • آشنایی با چرخه حیات اپلیکیشن Understanding the App Lifecycle

  • درک زمینه Understanding Context

  • مشکل با لیست ها و ویجت های Stateful A Problem with Lists & Stateful Widgets

  • درک ریشه مشکل Understanding the Problem Root

  • با استفاده از کلیدها Using Keys

  • کلیدها، فهرست‌ها، ویجت‌های Stateful Keys, Lists, Stateful Widgets

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

پیمایش و چند صفحه [برنامه غذایی] Navigation & Multiple Screens [MEALS APP]

  • معرفی ماژول Module Introduction

  • برنامه ریزی اپلیکیشن Planning the App

  • شروع با برنامه - افزودن داده های پایه Starting With The App - Adding Base Data

  • ایجاد یک شبکه و کار با گرادیان های خطی Creating a Grid & Working with Linear Gradients

  • ثبت یک صفحه به عنوان صفحه اصلی Registering a Screen as the Main Screen

  • یک ظاهر طراحی و تم Styling & Theming

  • پیمایش به صفحه جدید Navigating to a New Page

  • انتقال داده از طریق سازنده Passing Data via the Constructor

  • استفاده از مسیرهای نامگذاری شده و ارسال داده با مسیرهای نامگذاری شده Using Named Routes & Passing Data With Named Routes

  • صفحه نمایش و ناوبری Screens & Navigation

  • غواصی عمیق تر در مسیرهای نامگذاری شده Diving Deeper into Named Routes

  • افزودن مدل و داده های غذا Adding a Meal Model & Data

  • انتخاب وعده های غذایی برای یک دسته انتخابی Selecting Meals for a Chosen Category

  • نمایش اقلام دستور غذا و استفاده از تصاویر شبکه Displaying Recipe Items & Using Network Images

  • اتمام آیتم فهرست غذا Finishing the Meal List Item

  • پیمایش به صفحه جزئیات غذا Navigating to the Meal Detail Page

  • onGenerateRoute و onUnknownRoute onGenerateRoute & onUnknownRoute

  • ناوبری بیشتر! More Navigation!

  • اتمام صفحه جزئیات غذا Finishing the Meal Detail Page

  • اضافه کردن TabBar به Appbar Adding a TabBar to the Appbar

  • اضافه کردن نوار تب پایین Adding a Bottom TabBar

  • اضافه کردن کشو سفارشی Adding a Custom Drawer

  • افزودن لینک به کشو Adding Links to the Drawer

  • زبانه ها و کشوها! Tabs & Drawers!

  • جایگزینی صفحات (به جای فشار دادن) Replacing Pages (Instead of Pushing)

  • باز شدن صفحات و بازگرداندن داده ها Popping Pages & Passing Data Back

  • جایگزین کردن، ظاهر شدن و داده ها Replacing, Popping & Data

  • افزودن فیلتر سوئیچ Adding Filter Switches

  • اضافه کردن منطق فیلترینگ Adding Filtering Logic

  • افزودن ویژگی "علامت گذاری به عنوان مورد علاقه". Adding a "Mark as Favorite" Feature

  • مشکل! A Problem!

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

مدیریت دولتی [SHOP APP] State Management [SHOP APP]

  • معرفی ماژول Module Introduction

  • برنامه ریزی اپلیکیشن Planning the App

  • تعریف مدل داده Defining a Data Model

  • کار بر روی "محصولات" Grid & Item Widgets Working on the "Products" Grid & Item Widgets

  • یک ظاهر طراحی و قالب بندی برنامه Styling & Theming the App

  • افزودن ناوبری به برنامه Adding Navigation to the App

  • چرا مدیریت دولتی؟ و «دولت» و «مدیریت دولتی» چیست؟ Why State Management? And what is "State" and "State Management"?

  • درک بسته و رویکرد "ارائه دهنده". Understanding the "Provider" Package & Approach

  • کار با ارائه دهندگان و شنوندگان Working with Providers & Listeners

  • [DART DEEP DIVE] وراثت ("امتداد می یابد") در مقابل Mixins ("با") [DART DEEP DIVE] Inheritance ("extends") vs Mixins ("with")

  • ارائه غیر اشیاء Providing non-Objects

  • گوش دادن در مکان ها و راه های مختلف Listening in Different Places & Ways

  • بسته/رویکرد ایالت، مدیریت ایالتی و ارائه دهنده State, State Management & The Provider Package/ Approach

  • استفاده از مدل‌ها و ارائه‌دهندگان تودرتو Using Nested Models & Providers

  • بررسی نحوهای ارائه دهنده جایگزین Exploring Alternative Provider Syntaxes

  • استفاده از "Consumer" به جای "Provider.of" Using "Consumer" instead of "Provider.of"

  • ایالت محلی در مقابل ایالت گسترده برنامه Local State vs App-wide State

  • افزودن اطلاعات سبد خرید Adding Shopping Cart Data

  • اطلاعات بیشتر در مورد مدیریت دولتی و بسته ارائه دهنده More on State Management & The Provider Package

  • کار با چندین ارائه دهنده Working with Multiple Providers

  • اتصال ارائه دهنده سبد خرید Connecting the Cart Provider

  • کار بر روی سبد خرید و نمایش کل Working on the Shopping Cart & Displaying a Total

  • نمایش لیست اقلام سبد خرید Displaying a List of Cart Items

  • رد کردن اقلام سبد خرید Making Cart Items Dismissible

  • افزودن اطلاعات جزئیات محصول Adding Product Detail Data

  • ارائه یک شیء سفارشات Providing an Orders Object

  • افزودن سفارشات Adding Orders

  • افزودن صفحه سفارشات Adding an Orders Screen

  • با استفاده از کشو کناری Using a Side Drawer

  • ایجاد سفارشات ویجت‌های قابل گسترش و حالت در مقابل ارائه‌دهندگان Making Orders Expandable & Stateful Widgets vs Providers

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

کار با ورودی و فرم‌های کاربر [SHOP APP] Working with User Input & Forms [SHOP APP]

  • معرفی ماژول Module Introduction

  • Snackbars & Undoing "Add to Cart" اقدامات Snackbars & Undoing "Add to Cart" Actions

  • استفاده از ScaffoldMessenger برای Snackbars Using ScaffoldMessenger for Snackbars

  • نمایش دیالوگ های هشدار Showing Alert Dialogs

  • افزودن صفحه "مدیریت محصولات". Adding a "Manage Products" Page

  • صفحه "ویرایش محصول" و مشکل "Edit Product" Screen & A Problem

  • استفاده از فرم ها و کار با ورودی های فرم Using Forms & Working with Form Inputs

  • ListView یا Column ListView or Column

  • مدیریت فوکوس ورودی فرم Managing Form Input Focus

  • ورودی های چند خطی و دفع اشیاء Multiline Inputs & Disposing Objects

  • افزودن پیش نمایش تصویر Adding an Image Preview

  • ورودی تصویر و پیش نمایش تصویر Image Input & Image Preview

  • ارسال فرم ها Submitting Forms

  • اعتبار سنجی ورودی کاربر Validating User Input

  • افزودن اعتبارسنجی به همه ورودی ها Adding Validation to All Inputs

  • [اختیاری] کار با عبارات منظم [OPTIONAL] Working with Regular Expressions

  • ذخیره محصولات جدید Saving New Products

  • زمان به روز رسانی محصولات است! Time to Update Products!

  • امکان حذف محصولات به کاربران Allowing Users to Delete Products

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

ارسال درخواست Http [SHOP APP] Sending Http Requests [SHOP APP]

  • معرفی ماژول Module Introduction

  • روی دستگاه در مقابل فضای ذخیره سازی وب On-Device vs Web Storage

  • نحوه اتصال فلاتر به پایگاه داده How to Connect Flutter to a Database

  • آماده سازی Backend ما Preparing Our Backend

  • نحوه ارسال درخواست های Http How To Send Http Requests

  • با استفاده از بسته Http Using the Http Package

  • ارسال درخواست های POST Sending POST Requests

  • کار با Futures در دارت Working with Futures in Dart

  • [DART DEEP DIVE] Futures & Async Code [DART DEEP DIVE] Futures & Async Code

  • درخواست های Http و آینده Http Requests & Futures

  • نمایش نشانگر بارگذاری Showing a Loading Indicator

  • رسیدگی به خطاها با ظرافت Handling Errors Gracefully

  • کار با "async" و "wait" Working with "async" & "await"

  • واکشی داده، initState و "of(context)" Fetching Data, initState & "of(context)"

  • نحوه تبدیل داده های واکشی شده How to Transform Fetched Data

  • پیاده سازی Pull-to-Refresh Implementing Pull-to-Refresh

  • به روز رسانی داده ها از طریق درخواست های PATCH Updating Data via PATCH Requests

  • استفاده از به روز رسانی خوش بینانه Utilizing Optimistic Updating

  • ایجاد استثناهای سفارشی و مدیریت بیشتر خطا Creating Custom Exceptions & More Error Handling

  • یک چالش برای شما! A Challenge For You!

  • به روز رسانی وضعیت "مورد علاقه" خوش بینانه Updating the "Favorite" Status Optimistically

  • ذخیره سفارشات در وب Storing Orders in the Web

  • واکشی سفارشات و رفع یک مشکل Fetching Orders & Fixing an Issue

  • استفاده از ویجت "FutureBuilder" و بهبود کد Using the "FutureBuilder" Widget & Improving the Code

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

افزودن احراز هویت کاربر [SHOP APP] Adding User Authentication [SHOP APP]

  • معرفی ماژول Module Introduction

  • احراز هویت چگونه کار می کند How Authentication Works

  • Backend را آماده کنید Prepare Backend

  • افزودن صفحه تأیید اعتبار Adding the Auth Screen

  • درخواست های ثبت نام و آدرس های اینترنتی Signup Requests & URLs

  • اضافه کردن ثبت نام کاربر Adding User Signup

  • امکان ورود کاربران به سیستم Allowing Users to Log In

  • رسیدگی به خطاهای احراز هویت Handling Authentication Errors

  • مدیریت توکن Auth به صورت محلی (در برنامه) Managing the Auth Token Locally (in the App)

  • استفاده از «ProxyProvider» و پیوست کردن توکن به درخواست‌های Http خروجی Using the "ProxyProvider" and Attaching the Token to Outgoing Http Requests

  • افزودن توکن به همه درخواست ها Adding the Token to All Requests

  • اتصال وضعیت "مورد علاقه" به کاربران Connecting the "Favorite" Status to Users

  • پیوست کردن محصولات به کاربران و فیلتر کردن توسط سازنده Attaching Products to Users & Filtering By Creator

  • پیوست کردن سفارشات به کاربران Attaching Orders to Users

  • افزودن یک عملکرد خروج Adding a Logout Functionality

  • خروج خودکار کاربران (بعد از مدتی) Automatically Logging Users Out (After Some Time)

  • ورود خودکار کاربران به سیستم Automatically Logging Users In

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

افزودن انیمیشن ها [SHOP APP] Adding Animations [SHOP APP]

  • معرفی ماژول Module Introduction

  • انیمیشن ها از ابتدا (کنترل کاملا دستی) Animations From Scratch (Completely Manually Controlled)

  • با استفاده از ویجت "AnimatedBuilder". Using the "AnimatedBuilder" Widget

  • کار با "AnimatedContainer" Working with the "AnimatedContainer"

  • ویجت‌های داخلی بیشتر انیمیشن و انتقال More Built-in Animation & Transition Widgets

  • محو شدن تصاویر بارگذاری شده در (و نمایش یک مکان نگهدار) Fading Loaded Images In (And Showing a Placeholder)

  • اضافه کردن یک انتقال "قهرمان". Adding a "Hero" Transition

  • کار با Slivers Working with Slivers

  • تمرین: متحرک سازی جعبه های سفارش Practice: Animating Order Boxes

  • راه حلی برای آخرین نسخه فلاتر A Fix for the Latest Version of Flutter

  • پیاده سازی انتقال مسیرهای سفارشی Implementing Custom Route Transitions

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

استفاده از ویژگی‌های دستگاه بومی (دوربین، نقشه‌ها، مکان، ...) [برنامه مکان‌های عالی] Using Native Device Features (Camera, Maps, Location, ...) [GREAT PLACES APP]

  • معرفی ماژول Module Introduction

  • برنامه ریزی اپلیکیشن Planning the App

  • PlaceList & Place Provider Setup PlaceList & Place Provider Setup

  • افزودن صفحه «افزودن مکان» و ورودی تصویر Adding the "Add Place" Screen & An Image Input

  • با استفاده از Image Picker & The Device Camera Using Image Picker & The Device Camera

  • ذخیره تصویر در سیستم فایل (در دستگاه) Storing the Image on the Filesystem (on the Device)

  • مدیریت داده ها و تصاویر از طریق بسته ارائه دهنده Managing Data & Images via the Provider Package

  • رسیدگی به خطاها Handling Errors

  • تست بر روی دستگاه های واقعی Testing on Real Devices

  • در حال آماده سازی SQLite Preparing SQLite

  • ذخیره و واکشی داده ها با SQLite Storing & Fetching Data with SQLite

  • افزودن یک ورودی مکان و بسته "مکان". Adding a Location Input & The "location" Package

  • واکشی مختصات کاربر Fetching the User Coordinates

  • نمایش یک عکس فوری نقشه ایستا Displaying a Static Map Snapshot

  • ارائه نقشه پویا (از طریق نقشه های گوگل) Rendering a Dynamic Map (via Google Maps)

  • امکان انتخاب مکان روی نقشه به کاربران Allowing Users to Pick a Location on the Map

  • ذخیره مکان در SQLite Storing the Location in SQLite

  • افزودن یک صفحه "جزئیات مکان" و باز کردن نقشه در حالت "فقط خواندن". Adding a "Place Detail" Screen & Opening the Map in "readonly" Mode

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

Firebase، آپلود تصویر، Push Notifications - ساختن یک برنامه چت Firebase, Image Upload, Push Notifications - Building a Chat App

  • معرفی ماژول Module Introduction

  • Firebase چیست؟ What is Firebase?

  • ایجاد یک برنامه جدید Creating a New App

  • شروع کار با Firebase Getting Started with Firebase

  • مهم: نسخه های Flutter Firebase Important: Flutter Firebase Versions

  • شروع به کار با Flutter و Firebase SDK Getting Started with Flutter & the Firebase SDK

  • افزودن «GoogleServices-Info.plist» به درستی به iOS Adding "GoogleServices-Info.plist" correctly to iOS

  • ارائه داده های جریان با StreamBuilder Rendering Stream Data with StreamBuilder

  • افزودن داده ها Adding Data

  • یک صفحه احراز هویت اولیه A Basic Authentication Screen

  • اضافه کردن تم برنامه Adding an App Theme

  • ایجاد فرم احراز هویت Creating an Authentication Form

  • اتصال فرم Auth & Auth Screen Connecting Auth Form & Auth Screen

  • افزودن بسته firebase_auth Adding the firebase_auth Package

  • پیاده سازی احراز هویت Implementing Authentication

  • ذخیره اطلاعات اضافی کاربر Storing Extra User Data

  • تکمیل احراز هویت و خروج Finishing Authentication & Logout

  • افزودن قوانین امنیتی Firebase Adding Firebase Security Rules

  • گوش دادن به پیام های چت Listening to Chat Messages

  • ارسال و سفارش پیام های چت Sending & Ordering Chat Messages

  • ایجاد یک ویجت حباب چت اولیه Creating a Basic Chat Bubble Widget

  • بهبود حباب های چت Improving the Chat Bubbles

  • تست بر روی چندین دستگاه Testing on Multiple Devices

  • نمایش نام کاربری Displaying User Names

  • ImagePicker: آخرین نسخه ImagePicker: Latest Version

  • افزودن انتخابگر تصویر Adding an Image Picker

  • آماده سازی آپلود فایل و اعتبارسنجی تصاویر Preparing File Upload & Validating Images

  • آپلود تصاویر Uploading Images

  • بهبود آپلود تصویر Improving Image Upload

  • در حال اجرا بر روی یک دستگاه iOS واقعی Running on a Real iOS Device

  • نمایش تصاویر کاربر Displaying User Images

  • نحوه عملکرد Push Notifications How Push Notifications Work

  • افزودن بسته firebase_messaging Adding the firebase_messaging Package

  • مقدمه ای بر Firebase Cloud Messaging An Introduction to Firebase Cloud Messaging

  • Android & Push Notifications Android & Push Notifications

  • iOS & Push Notifications iOS & Push Notifications

  • مدیریت Push Notifications Handling Push Notifications

  • شروع کار با Firebase Cloud Functions Getting Started with Firebase Cloud Functions

  • باید بخوانید: Firebase Cloud Functions & Billing MUST READ: Firebase Cloud Functions & Billing

  • تنظیم یک ماشه Firestore Setting a Firestore Trigger

  • ارسال اعلان‌های فشار خودکار Sending Automated Push Notifications

  • پولیش و بسته بندی Polishing & Wrap Up

  • به‌روزرسانی به آخرین نسخه‌های بسته Firebase Updating to the latest Firebase Package Versions

  • منابع ماژول Module Resources

اجرای Native Swift، ObjectiveC، Java یا Kotlin Code Running Native Swift, ObjectiveC, Java or Kotlin Code

  • معرفی ماژول Module Introduction

  • استفاده از راه اندازی پروژه مناسب Using a Proper Project Setup

  • ارسال تماس متد از فلاتر Sending a Method Call from Flutter

  • اجرای کد اندروید Running Android Code

  • اجرای کد iOS Running iOS Code

  • بسته شدن Wrap Up

  • منابع و لینک های مفید Useful Resources & Links

انتشار در اپ استور Publishing to the App Stores

  • معرفی ماژول Module Introduction

  • تهیه کد Preparing the Code

  • آماده سازی پیکربندی برنامه Preparing the App Configuration

  • آماده سازی خدمات شخص ثالث Preparing Third-Party Services

  • اضافه کردن آیکون ها و صفحه نمایش چلپ چلوپ Adding Icons & Splash Screens

  • انتشار اپلیکیشن های اندروید Publishing Android Apps

  • انتشار اپلیکیشن های iOS Publishing iOS Apps

  • منابع و لینک های مفید Useful Resources & Links

جمع بندی و مراحل بعدی Roundup & Next Steps

  • توانجامش دادی! You did it!

  • مراحل بعدی شما (برای تبدیل شدن به یک توسعه دهنده عالی!) Your Next Steps (To Become an Awesome Developer!)

  • نحوه برنامه ریزی و توسعه اپلیکیشن های موفق How to Plan & Develop Successful Apps

به روز رسانی فلاتر 2 Flutter 2 Update

  • فلاتر 2 - چه خبر؟ تاثیر این دوره چیست؟ Flutter 2 - What's New? What's The Impact On This Course?

  • ویجت های دکمه "قدیمی" در مقابل "جدید". "Old" vs "New" Button Widgets

جمع بندی Roundup

  • خلاصه دوره Course Roundup

  • امتیاز: محتوای بیشتر! Bonus: More Content!

نمایش نظرات

نظری ارسال نشده است.

آموزش فلاتر و دارت - راهنمای کامل [نسخه 2023]
خرید اشتراک و دانلود خرید تکی و دانلود | 480,000 تومان (7 روز مهلت دانلود) در صورت خرید اشتراک، این آموزش بدلیل حجم بالا معادل 4 دوره است و 4 دوره از اشتراک شما کم می شود. زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
42 hours
379
Udemy (یودمی) udemy-small
11 آبان 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
239,781
4.5 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Academind by Maximilian Schwarzmüller Academind by Maximilian Schwarzmüller

آموزش آنلاین

Maximilian Schwarzmüller Maximilian Schwarzmüller

دارای گواهینامه AWS، توسعه دهنده وب و مدرس حرفه ای

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.