مرورگر شما از این ویدیو پشتیبانی نمی کند.
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
(صرفا برای مشاهده نمونه ویدیو، ممکن هست نیاز به شکن داشته باشید.)
بارگزاری مجدد
توضیحات دوره:
راهنمای کامل 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!
نمایش نظرات