آموزش Dart and Flutter: The Complete Developer's Guide

Dart and Flutter: The Complete Developer's Guide

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: همه چیزهایی که برای ساخت اپلیکیشن های موبایل با فلاتر و دارت نیاز دارید، از جمله RxDart و انیمیشن ها! ساخت برنامه های چند صفحه ای زیبا با Flutter درک روش های مختلف برای بارگیری و نگهداری داده ها در برنامه های Flutter ایجاد و انتشار پروژه های منبع باز با استفاده از Dart یاد بگیرید چگونه برنامه های آفلاین فعال با بارگذاری داده های فوق العاده کارآمد بسازید بهترین روش برای خواندن حجم باورنکردنی را درک کنید. اسناد Flutter داده های طولانی مدت را بر روی دستگاه فیزیکی کاربر با استفاده از جریان های SQLite Master ذخیره کنید و برنامه نویسی واکنشی را برای ایجاد برنامه های Flutter درک کنید.

اگر از چرخاندن چرخ های خود برای یادگیری سوئیفت یا اندروید خسته شده اید، این دوره برای شما مناسب است.

انیمیشن ها؟ آن را یاد خواهید گرفت. الگوهای معماری؟ مشمول. جهت یابی ؟ البته!

Flutter یک تازه وارد به صحنه توسعه تلفن همراه است. به شدت توسط Google پشتیبانی می‌شود و در حال حاضر به‌عنوان یک پلتفرم ایده‌آل برای جایگزینی Swift و توسعه Android در نظر گرفته می‌شود. به لطف کتابخانه استاندارد شگفت‌انگیز ویجت‌ها، زمان‌های کامپایل سریع و مستندات شگفت‌انگیز، توسعه‌دهندگان عاشق Flutter شده‌اند!

این دوره از MacOS و Windows پشتیبانی می کند - برنامه های Android و iOS را به راحتی توسعه دهید!

برنامه‌های فلاتر با استفاده از زبان Dart ایجاد می‌شوند. مشکلی نیست اگر قبلاً با دارت آشنایی ندارید. این دوره شامل معرفی سریع دارت در آغاز، همراه با ساعت ها سخنرانی پاداش در پایان دوره است که صرفاً بر روی دارت و ویژگی های پیشرفته آن متمرکز شده است. اگر از پس زمینه ای هستید که با جاوا، روبی یا جاوا اسکریپت کار می کنید، با دارت احساس راحتی می کنید - نحو تقریباً یکسان است، فقط چند مفهوم اصلی باید یاد بگیرید. دارت یک زبان قوی تایپ شده است - اما اگر طرفدار انواع قوی نیستید ناامید نشوید! من زمان خاصی را در این دوره می گذرانم تا مشخص کنم که چرا توسعه با یک زبان قوی تایپ شده یک نسیم است!

یکی از بزرگترین چالش‌های توسعه برنامه‌های Flutter در حال حاضر، درک نحوه طراحی و معماری برنامه‌ها است. Flutter هنوز در حال توسعه سریع است و جامعه در کل هنوز در تلاش است تا بهترین تکنیک ها را بیابد. با در نظر گرفتن این موضوع، توجه ویژه‌ای در این دوره برای اطمینان از درک الگوهای طراحی اولیه مورد حمایت تیم Flutter Google، از جمله الگوی "ویجت حالت" و الگوی "BLOC" معطوف شده است. الگوی 'BLOC' به شدت از تکنیک های برنامه نویسی واکنشی استفاده می کند که در این دوره نیز با آنها آشنا خواهید شد. این تکنیک ها را می توان به راحتی در سایر زبان ها و چارچوب ها نیز اعمال کرد - در مورد یک جایزه صحبت کنید!

البته، هیچ برنامه موبایلی بدون چند انیمیشن زیبا کامل نمی شود. شما یاد خواهید گرفت که چگونه با استفاده از کتابخانه استاندارد Flutter، انیمیشن بسازید، که به راحتی می توان از آن برای ایجاد تعاملاتی استفاده کرد که کاربران شما را دوست دارند. باید برنامه ریزی کنید که دوره را با دانش نحوه ارجاع به کتابخانه استاندارد ویجت های فلاتر برای جمع آوری انیمیشن های پیچیده تکمیل کنید.

امروز ثبت نام کنید و خواهید داشت:

  • زبان دارت و ویژگی های اصلی آن را بدانید
  • ذخیره اطلاعات برای مدت طولانی در دستگاه کاربر با حافظه آفلاین
  • با نحوه بهینه سازی درخواست های شبکه برای بهبود عملکرد در شبکه های تلفن همراه آشنا شوید
  • کاربران خود را با انیمیشن های پیچیده خوشحال کنید
  • عملکرد برنامه های خود را با پیمایش چند صفحه نمایش
  • نشان دهید
  • از حجم باورنکردنی مستندات فلاتر عبور کنید
  • با استفاده از RxDart
  • بر برنامه نویسی واکنشی با جریان ها مسلط شوید
  • پیاده سازی الگوهای طراحی پیشرفته  که توسط تیم رسمی Flutter Google حمایت می شود
  • مدیریت ورودی کاربر با اعتبار سنجی فرم
  • آموزش ساخت بسته‌های دارت منبع باز و توزیع آن‌ها بین توسعه‌دهندگان دیگر

من دوره‌ای را ساخته‌ام که می‌خواستم زمانی که فلاتر را یاد می‌گرفتم بگذرانم. دوره ای که مفاهیم و نحوه اجرای آنها را به بهترین نحو توضیح می دهد تا شما آنها را یاد بگیرید و عمیقاً درک کنید.



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

بیایید شیرجه بزنیم! Let's Dive In!

  • نحوه دریافت کمک How to Get Help

  • منابع دوره Course Resources

  • به انجمن ما بپیوندید! Join Our Community!

  • سازمان دوره Course Organization

بیایید شیرجه بزنیم! Let's Dive In!

  • نحوه دریافت کمک How to Get Help

  • منابع دوره Course Resources

  • به انجمن ما بپیوندید! Join Our Community!

  • سازمان دوره Course Organization

مقدمه دارت A Dart Introduction

  • بررسی اجمالی دارت Dart Overview

  • ویرایشگر Dartpad The Dartpad Editor

  • اولین برنامه ما Our First Program

  • جدا کردن قطعات Pulling the Pieces Apart

  • توابع در دارت Functions in Dart

  • مقدمه ای بر انواع Introduction to Types

  • چرا از انواع استفاده کنیم؟ Why Use Types?

  • درون یابی رشته ای String Interpolation

  • برنامه نویسی شی گرا در دارت Object Oriented Programming in Dart

  • ایجاد کلاس ها Creating Classes

  • ایجاد نمونه های کلاس Creating Class Instances

  • توابع سازنده Constructor Functions

  • بررسی سازنده ها Review on Constructors

مقدمه دارت A Dart Introduction

  • بررسی اجمالی دارت Dart Overview

  • ویرایشگر Dartpad The Dartpad Editor

  • اولین برنامه ما Our First Program

  • جدا کردن قطعات Pulling the Pieces Apart

  • توابع در دارت Functions in Dart

  • مقدمه ای بر انواع Introduction to Types

  • چرا از انواع استفاده کنیم؟ Why Use Types?

  • درون یابی رشته ای String Interpolation

  • برنامه نویسی شی گرا در دارت Object Oriented Programming in Dart

  • ایجاد کلاس ها Creating Classes

  • ایجاد نمونه های کلاس Creating Class Instances

  • توابع سازنده Constructor Functions

  • بررسی سازنده ها Review on Constructors

ماندن در هدف با دارت Staying on Target with Dart

  • نمای کلی برنامه App Overview

  • جریان طراحی OOP OOP Design Flow

  • افزودن فیلدها به کلاس ها Adding Fields to Classes

  • روش های مرتبط Associated Methods

  • مقداردهی اولیه بیشتر با سازندگان More Initialization with Constructors

  • برای حلقه ها For Loops

  • افزودن عناصر به لیست ها Adding Elements to Lists

  • اطلاعات بیشتر در مورد مقداردهی اولیه متغیر More on Variable Initialization

  • سفارشی سازی بیانیه های چاپی Customizing Print Statements

  • ToString روی کارت ها ToString on Cards

  • به هم ریختن یک لیست Shuffling a List

  • حاشیه نویسی انواع استدلال Annotating Argument Types

  • فیلتر کردن لیست ها Filtering Lists

  • حاشیه نویسی انواع استدلال Annotating Argument Types

  • فیلتر کردن لیست ها Filtering Lists

  • نحو توابع مختصر Shorthand Function Syntax

  • حذف سوابق فردی Removing Individual Records

  • پیاده سازی RemoveCard RemoveCard Implementation

  • پارامترهای نامگذاری شده Named Parameters

ماندن در هدف با دارت Staying on Target with Dart

  • نمای کلی برنامه App Overview

  • جریان طراحی OOP OOP Design Flow

  • افزودن فیلدها به کلاس ها Adding Fields to Classes

  • روش های مرتبط Associated Methods

  • مقداردهی اولیه بیشتر با سازندگان More Initialization with Constructors

  • برای حلقه ها For Loops

  • افزودن عناصر به لیست ها Adding Elements to Lists

  • اطلاعات بیشتر در مورد مقداردهی اولیه متغیر More on Variable Initialization

  • سفارشی سازی بیانیه های چاپی Customizing Print Statements

  • ToString روی کارت ها ToString on Cards

  • به هم ریختن یک لیست Shuffling a List

  • حاشیه نویسی انواع استدلال Annotating Argument Types

  • فیلتر کردن لیست ها Filtering Lists

  • حاشیه نویسی انواع استدلال Annotating Argument Types

  • فیلتر کردن لیست ها Filtering Lists

  • نحو توابع مختصر Shorthand Function Syntax

  • حذف سوابق فردی Removing Individual Records

  • پیاده سازی RemoveCard RemoveCard Implementation

  • پارامترهای نامگذاری شده Named Parameters

تنظیم محیط فلوتر - MacOS Flutter Environment Setup - MacOS

  • Flutter Setup در MacOS Flutter Setup on MacOS

  • استخراج SDK SDK Extraction

  • ویرایش متغیر PATH Editing the PATH Variable

  • مجوز XCode XCode License

  • تولید پروژه های فلاتر Generating Flutter Projects

تنظیم محیط فلوتر - MacOS Flutter Environment Setup - MacOS

  • Flutter Setup در MacOS Flutter Setup on MacOS

  • استخراج SDK SDK Extraction

  • ویرایش متغیر PATH Editing the PATH Variable

  • مجوز XCode XCode License

  • تولید پروژه های فلاتر Generating Flutter Projects

راه اندازی MacOS - Android MacOS Setup - Android

  • راه اندازی اندروید در MacOS Android Setup on MacOS

  • وابستگی های اندروید Android Dependencies

  • راه اندازی پروژه اندروید Android Project Setup

  • وابستگی های بیشتر اندروید! More Android Dependencies!

  • ایجاد شبیه ساز اندروید Android Emulator Creation

  • راه اندازی فلاتر Flutter Startup

  • راه اندازی اندروید تمام شد Finished Android Setup

راه اندازی MacOS - Android MacOS Setup - Android

  • راه اندازی اندروید در MacOS Android Setup on MacOS

  • وابستگی های اندروید Android Dependencies

  • راه اندازی پروژه اندروید Android Project Setup

  • وابستگی های بیشتر اندروید! More Android Dependencies!

  • ایجاد شبیه ساز اندروید Android Emulator Creation

  • راه اندازی فلاتر Flutter Startup

  • راه اندازی اندروید تمام شد Finished Android Setup

راه اندازی MacOS - iOS MacOS Setup - iOS

  • iOS در Mac Setup iOS on Mac Setup

  • راه اندازی XCode XCode Setup

  • راه اندازی شبیه ساز iOS iOS Simulator Startup

  • راه اندازی برنامه App Startup

راه اندازی MacOS - iOS MacOS Setup - iOS

  • iOS در Mac Setup iOS on Mac Setup

  • راه اندازی XCode XCode Setup

  • راه اندازی شبیه ساز iOS iOS Simulator Startup

  • راه اندازی برنامه App Startup

Flutter Setup در کامپیوتر Flutter Setup on PC

  • فلاتر نصب کنید Flutter Install

  • نصب بیشتر فلاتر More Flutter Installation

  • اندروید نصب کنید Android Install

  • وابستگی های اضافی Additional Dependencies

  • تولید یک پروژه Generating a Project

  • انتخاب یک تصویر Selecting an Image

  • راه اندازی شبیه ساز Starting the Emulator

  • در حال اتمام راه اندازی اندروید Finishing Android Setup

Flutter Setup در کامپیوتر Flutter Setup on PC

  • فلاتر نصب کنید Flutter Install

  • نصب بیشتر فلاتر More Flutter Installation

  • اندروید نصب کنید Android Install

  • وابستگی های اضافی Additional Dependencies

  • تولید یک پروژه Generating a Project

  • انتخاب یک تصویر Selecting an Image

  • راه اندازی شبیه ساز Starting the Emulator

  • در حال اتمام راه اندازی اندروید Finishing Android Setup

زمان ساخت اپلیکیشن! App Building Time!

  • راه اندازی ویرایشگر کد Code Editor Setup

  • به هر حال فلاتر درباره چیست؟ What's Flutter About, Anyways?

  • نمای کلی برنامه App Overview

  • فرآیند طراحی چهار مرحله ای The Four Step Design Process

  • بیانیه های واردات Import Statements

  • ایجاد ابزارک Creating Widgets

  • نمایش محتوا روی صفحه Displaying Content on Screen

  • نمایش یک داربست Showing a Scaffold

  • سفارشی کردن نوار برنامه Customizing the App Bar

  • به نام شفاف سازی پارامتر Named Parameter Clarification

  • پارامترهای مورد نیاز Required Parameters

  • پارامترهای کودک Child Parameters

  • نمایش آیکون ها Displaying Icons

  • افزودن ویجت های سفارشی Adding Custom Widgets

زمان ساخت اپلیکیشن! App Building Time!

  • راه اندازی ویرایشگر کد Code Editor Setup

  • به هر حال فلاتر درباره چیست؟ What's Flutter About, Anyways?

  • نمای کلی برنامه App Overview

  • فرآیند طراحی چهار مرحله ای The Four Step Design Process

  • بیانیه های واردات Import Statements

  • ایجاد ابزارک Creating Widgets

  • نمایش محتوا روی صفحه Displaying Content on Screen

  • نمایش یک داربست Showing a Scaffold

  • سفارشی کردن نوار برنامه Customizing the App Bar

  • به نام شفاف سازی پارامتر Named Parameter Clarification

  • پارامترهای مورد نیاز Required Parameters

  • پارامترهای کودک Child Parameters

  • نمایش آیکون ها Displaying Icons

  • افزودن ویجت های سفارشی Adding Custom Widgets

طراحی حالت با اپلیکیشن های فلاتر State Design with Flutter Apps

  • ویجت های بدون تابعیت در مقابل Stateful Stateless vs Stateful Widgets

  • روش ساخت The Build Method

  • بیانیه های واردات محلی Local Import Statements

  • تنفس سریع و بررسی Quick Breather and Review

  • تبدیل بی تابعیت به حالت دار Refactoring Stateless to Stateful

  • Refactoring بیشتر به ویجت های Stateful More Refactoring to Stateful Widgets

طراحی حالت با اپلیکیشن های فلاتر State Design with Flutter Apps

  • ویجت های بدون تابعیت در مقابل Stateful Stateless vs Stateful Widgets

  • روش ساخت The Build Method

  • بیانیه های واردات محلی Local Import Statements

  • تنفس سریع و بررسی Quick Breather and Review

  • تبدیل بی تابعیت به حالت دار Refactoring Stateless to Stateful

  • Refactoring بیشتر به ویجت های Stateful More Refactoring to Stateful Widgets

دارت سطح بالا High-Level Dart

  • ژنریک در دارت Generics in Dart

  • چرا دو کلاس؟ Why Two Classes?

دارت سطح بالا High-Level Dart

  • ژنریک در دارت Generics in Dart

  • چرا دو کلاس؟ Why Two Classes?

درخواست های HTTP با فلاتر HTTP Requests with Flutter

  • Photos API Photos API

  • کار با JSON Working with JSON

  • ارسال JSON به نمونه‌های مدل Casting JSON to Model Instances

  • سازندگان به نام Named Constructors

  • اضافه کردن یک مدل تصویر Adding an Image Model

  • مراجع تابع Function References

  • بسته HTTP The HTTP Package

  • صدور درخواست های HTTP Issuing HTTP Requests

  • مدیریت دارت فیوچر Handling Dart Futures

  • تجزیه پاسخ های آینده در یک مدل Parsing Future Responses into a Model

  • به روز رسانی ابزارک AppState Updating the AppState Widget

  • ساخت لیست ویجت ها Building Lists of Widgets

  • ارسال تصاویر به ImageList Sending Images to the ImageList

  • کلیدواژه نهایی The Final Keyword

  • ساخت لیست با ListView Building Lists with ListView

  • URL های فهرست شده Listing URL's

  • متن به تصاویر Text to Images

  • ظروف برای موقعیت یابی Containers for Positioning

  • اضافه کردن سبک حاشیه Adding Border Style

  • ویجت های ستونی برای طرح بندی Column Widgets for Layout

  • بالشتک انتخابی Selective Padding

  • بررسی برنامه App Review

درخواست های HTTP با فلاتر HTTP Requests with Flutter

  • Photos API Photos API

  • کار با JSON Working with JSON

  • ارسال JSON به نمونه‌های مدل Casting JSON to Model Instances

  • سازندگان به نام Named Constructors

  • اضافه کردن یک مدل تصویر Adding an Image Model

  • مراجع تابع Function References

  • بسته HTTP The HTTP Package

  • صدور درخواست های HTTP Issuing HTTP Requests

  • مدیریت دارت فیوچر Handling Dart Futures

  • تجزیه پاسخ های آینده در یک مدل Parsing Future Responses into a Model

  • به روز رسانی ابزارک AppState Updating the AppState Widget

  • ساخت لیست ویجت ها Building Lists of Widgets

  • ارسال تصاویر به ImageList Sending Images to the ImageList

  • کلیدواژه نهایی The Final Keyword

  • ساخت لیست با ListView Building Lists with ListView

  • URL های فهرست شده Listing URL's

  • متن به تصاویر Text to Images

  • ظروف برای موقعیت یابی Containers for Positioning

  • اضافه کردن سبک حاشیه Adding Border Style

  • ویجت های ستونی برای طرح بندی Column Widgets for Layout

  • بالشتک انتخابی Selective Padding

  • بررسی برنامه App Review

فرم ها و اعتبارسنجی با فلاتر Forms and Validation with Flutter

  • نمای کلی برنامه App Overview

  • کد برنامه Boilerplate Boilerplate App Code

  • ایجاد صفحه ورود Creating the Login Screen

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

  • برچسب ها و متن اشاره Labels and Hint Text

  • سفارشی کردن نوع صفحه کلید Customizing Keyboard Type

  • مدیریت ورودی های رمز عبور Handling Password Inputs

  • نمایش دکمه ها با RaisedButton Displaying Buttons with RaisedButton

  • تغییر رنگ ویجت Changing Widget Colors

  • کنترل طرح Layout Control

  • اعتبار سنجی فرم Form Validation

  • ارجاع دادن به ویجت ها با کلیدهای جهانی Referencing Widgets with Global Keys

  • ویجت Form و FormState The Form Widget and FormState

  • ایجاد یک کلید جهانی Creating a Global Key

  • ارجاع به FormState با کلیدهای جهانی Referencing FormState with Global Keys

  • اعتبارسنجی از طریق FormState Validating via FormState

  • احراز اعتبار Triggering Validation

  • بازیابی مقادیر فرم Retrieving Form Values

  • ارسال فرم نهایی Final Form Submittal

  • استفاده مجدد از کد با Mixins Code Reuse with Mixins

  • Mixin Validator پیاده سازی Mixin Validator Implementation

فرم ها و اعتبارسنجی با فلاتر Forms and Validation with Flutter

  • نمای کلی برنامه App Overview

  • کد برنامه Boilerplate Boilerplate App Code

  • ایجاد صفحه ورود Creating the Login Screen

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

  • برچسب ها و متن اشاره Labels and Hint Text

  • سفارشی کردن نوع صفحه کلید Customizing Keyboard Type

  • مدیریت ورودی های رمز عبور Handling Password Inputs

  • نمایش دکمه ها با RaisedButton Displaying Buttons with RaisedButton

  • تغییر رنگ ویجت Changing Widget Colors

  • کنترل طرح Layout Control

  • اعتبار سنجی فرم Form Validation

  • ارجاع دادن به ویجت ها با کلیدهای جهانی Referencing Widgets with Global Keys

  • ویجت Form و FormState The Form Widget and FormState

  • ایجاد یک کلید جهانی Creating a Global Key

  • ارجاع به FormState با کلیدهای جهانی Referencing FormState with Global Keys

  • اعتبارسنجی از طریق FormState Validating via FormState

  • احراز اعتبار Triggering Validation

  • بازیابی مقادیر فرم Retrieving Form Values

  • ارسال فرم نهایی Final Form Submittal

  • استفاده مجدد از کد با Mixins Code Reuse with Mixins

  • Mixin Validator پیاده سازی Mixin Validator Implementation

برنامه نویسی واکنشی با دارت Reactive Programming with Dart

  • یک انحراف سریع A Quick Detour

  • جریان ها توسط قیاس Streams by Analogy

  • ویژگی های جریان Characteristics of Streams

  • استریم کنترلرها و سینک ها StreamControllers and Sinks

  • نقشه برداری یک جریان Mapping a Stream

  • اضافه کردن StreamTransformer Adding a StreamTransformer

  • پیاده سازی شنونده Implementing the Listener

  • نقد جریان Stream Review

  • بیایید یک بازی بسازیم Let's Build a Game

  • چرا استریم ها؟ Why Streams?

  • حدس زدن کلمه Word Guessing

  • عملکردهای "Take" و "Where" استریم Stream's 'Take' and 'Where' Functions

  • اعتبارسنجی با Streams Validation with Streams

  • اعتبار سنجی ایمیل Email Validation

  • سیم کشی خطا Wiring up the Error

برنامه نویسی واکنشی با دارت Reactive Programming with Dart

  • یک انحراف سریع A Quick Detour

  • جریان ها توسط قیاس Streams by Analogy

  • ویژگی های جریان Characteristics of Streams

  • استریم کنترلرها و سینک ها StreamControllers and Sinks

  • نقشه برداری یک جریان Mapping a Stream

  • اضافه کردن StreamTransformer Adding a StreamTransformer

  • پیاده سازی شنونده Implementing the Listener

  • نقد جریان Stream Review

  • بیایید یک بازی بسازیم Let's Build a Game

  • چرا استریم ها؟ Why Streams?

  • حدس زدن کلمه Word Guessing

  • عملکردهای "Take" و "Where" استریم Stream's 'Take' and 'Where' Functions

  • اعتبارسنجی با Streams Validation with Streams

  • اعتبار سنجی ایمیل Email Validation

  • سیم کشی خطا Wiring up the Error

معماری فلاتر پیشرفته - الگوی بلوک Advanced Flutter Architecture - The Bloc Pattern

  • ویجت‌های BLOC در مقابل Stateful BLOC's vs Stateful Widgets

  • هدف از جریان با بلوک The Purpose of Streams with Blocs

  • تولید یک پروژه جدید Generating a New Project

  • برنامه Boilerplate App Boilerplate

  • بار دوم در صفحه ورود Second Time on LoginScreen

  • فیلدهای متنی با دکمه های برجسته TextFields with RaisedButtons

  • نحوه استفاده از TextFields How to Use TextFields

  • طراحی BLOC برای TextFields BLOC Design for TextFields

  • حاشیه نویسی انواع جریان Annotating Stream Types

  • مشکلات مربوط به دسترسی بلوک Issues with Bloc Access

  • دسترسی میانبر با Getters Shortcut Access with Getters

  • فیلدهای عمومی در مقابل خصوصی Public vs Private Fields

  • بهبود BLOC Api Improving the BLOC Api

  • ترانسفورماتورهای اعتبارسنجی Validation Transformers

  • فنی در اطراف مخلوط A Technicality Around Mixins

  • تمیز کردن کنترلرها Cleaning Up Controllers

  • برنامه بلوک Bloc Application

معماری فلاتر پیشرفته - الگوی بلوک Advanced Flutter Architecture - The Bloc Pattern

  • ویجت‌های BLOC در مقابل Stateful BLOC's vs Stateful Widgets

  • هدف از جریان با بلوک The Purpose of Streams with Blocs

  • تولید یک پروژه جدید Generating a New Project

  • برنامه Boilerplate App Boilerplate

  • بار دوم در صفحه ورود Second Time on LoginScreen

  • فیلدهای متنی با دکمه های برجسته TextFields with RaisedButtons

  • نحوه استفاده از TextFields How to Use TextFields

  • طراحی BLOC برای TextFields BLOC Design for TextFields

  • حاشیه نویسی انواع جریان Annotating Stream Types

  • مشکلات مربوط به دسترسی بلوک Issues with Bloc Access

  • دسترسی میانبر با Getters Shortcut Access with Getters

  • فیلدهای عمومی در مقابل خصوصی Public vs Private Fields

  • بهبود BLOC Api Improving the BLOC Api

  • ترانسفورماتورهای اعتبارسنجی Validation Transformers

  • فنی در اطراف مخلوط A Technicality Around Mixins

  • تمیز کردن کنترلرها Cleaning Up Controllers

  • برنامه بلوک Bloc Application

مصرف داده های BLOC Consuming BLOC Data

  • ویجت StreamBuilder The StreamBuilder Widget

  • Streambuilder برای فیلدهای رمز عبور Streambuilder for Password Fields

  • رویکرد بلوک محدوده Scoped Bloc Approach

  • پیاده سازی ارائه دهنده Provider Implementation

  • عملکرد ارائه دهنده The Provider's 'of' Function

  • سازنده ارائه دهنده The Provider's Constructor

  • ارائه دهنده در عمل The Provider in Action

  • دسترسی به بلوک Accessing the Bloc

  • تنفس و بررسی Breather and Review

  • فعال کردن ارسال فرم Enabling Form Submission

  • امکان ادغام جریان Stream Merging Possibilities

مصرف داده های BLOC Consuming BLOC Data

  • ویجت StreamBuilder The StreamBuilder Widget

  • Streambuilder برای فیلدهای رمز عبور Streambuilder for Password Fields

  • رویکرد بلوک محدوده Scoped Bloc Approach

  • پیاده سازی ارائه دهنده Provider Implementation

  • عملکرد ارائه دهنده The Provider's 'of' Function

  • سازنده ارائه دهنده The Provider's Constructor

  • ارائه دهنده در عمل The Provider in Action

  • دسترسی به بلوک Accessing the Bloc

  • تنفس و بررسی Breather and Review

  • فعال کردن ارسال فرم Enabling Form Submission

  • امکان ادغام جریان Stream Merging Possibilities

RxDart برای برنامه نویسی واکنشی RxDart for Reactive Programming

  • معرفی RxDart Introducing RxDart

  • بیشتر در RxDart More on RxDart

  • تابع CombineLatest The CombineLatest Function

  • Combine Latest در عمل CombineLatest in Action

  • بیشتر در StreamBuilder More on StreamBuilder

  • تفسیر ارزش های جریان Interpreting Stream Values

  • پخش جریانی Broadcast Streams

  • به صورت پیش فرض غیرفعال شده است Disabled by Default

  • جایگزینی کنترلرها با سوژه ها Replacing Controllers with Subjects

  • بررسی BLOC ها Review of BLOCs

RxDart برای برنامه نویسی واکنشی RxDart for Reactive Programming

  • معرفی RxDart Introducing RxDart

  • بیشتر در RxDart More on RxDart

  • تابع CombineLatest The CombineLatest Function

  • Combine Latest در عمل CombineLatest in Action

  • بیشتر در StreamBuilder More on StreamBuilder

  • تفسیر ارزش های جریان Interpreting Stream Values

  • پخش جریانی Broadcast Streams

  • به صورت پیش فرض غیرفعال شده است Disabled by Default

  • جایگزینی کنترلرها با سوژه ها Replacing Controllers with Subjects

  • بررسی BLOC ها Review of BLOCs

ساخت انیمیشن های لذت بخش Building Delightful Animations

  • نمای کلی برنامه App Overview

  • کلاس های کتابخانه انیمیشن Animation Library Classes

  • برنامه Boilerplate App Boilerplate

  • StatefulWidgets برای انیمیشن ها StatefulWidgets for Animations

  • ساختار ویجت Widget Structure

  • نمایش گربه Displaying a Cat

  • روش InitState The InitState Method

  • اعلام TickerProvider Declaring the TickerProvider

  • توئین با منحنی Tweens with Curves

  • صرفه جویی در عملکرد با AnimatedBuilder Performance Savings with AnimatedBuilder

  • ماهیت انیمیشن Nature of Animation

  • شروع انیمیشن Starting the Animation

  • تماشای ضربه ها با GestureDetector Watching for Taps with GestureDetector

  • معکوس کردن حالت های انیمیشن Reversing Animation States

  • ساخت جعبه Building the Box

  • طرح بندی با ویجت پشته Layouts with the Stack Widget

  • ترتیب ابزارک های طراحی Order of Drawing Widgets

  • افزودن ویجت مرکز Add Center Widget

  • ابزارک های موقعیت یابی شده Positioned Widgets

  • گسترش ابعاد پشته Expanding Stack Dimensions

  • سه دلیل برای چیدمان های عجیب Three Reasons for Strange Layouts

  • محدودیت های موقعیت Positioned Constraints

  • افست های منفی Negative Offsets

  • تنظیمات کلیپ پشته Stack Clip Settings

  • تنظیم محدوده توئین Adjusting Tween Ranges

  • اضافه کردن فلپ های جعبه Adding Box Flaps

  • ابزارک های چرخشی Rotating Widgets

  • چرخش توسط رادیان ها Rotation by Radians

  • تغییر نقطه چرخش Changing Rotation Point

  • لمسی از موقعیت یابی A Touch of Positioning

  • کنترلر BoxAnimation BoxAnimation Controller

  • اضافه کردن سازندگان متحرک Adding Animated Builders

  • بازنشانی انیمیشن ها Resetting Animations

  • محدود کردن محدوده انیمیشن Constraining Animation Range

  • اضافه کردن فلپ سمت راست Adding the Right Flap

  • مقادیر چرخش منفی Negative Rotation Values

  • تغییر وضعیت انیمیشن Toggling Animation State

  • جمع بندی انیمیشن Animation Wrapup

ساخت انیمیشن های لذت بخش Building Delightful Animations

  • نمای کلی برنامه App Overview

  • کلاس های کتابخانه انیمیشن Animation Library Classes

  • برنامه Boilerplate App Boilerplate

  • StatefulWidgets برای انیمیشن ها StatefulWidgets for Animations

  • ساختار ویجت Widget Structure

  • نمایش گربه Displaying a Cat

  • روش InitState The InitState Method

  • اعلام TickerProvider Declaring the TickerProvider

  • توئین با منحنی Tweens with Curves

  • صرفه جویی در عملکرد با AnimatedBuilder Performance Savings with AnimatedBuilder

  • ماهیت انیمیشن Nature of Animation

  • شروع انیمیشن Starting the Animation

  • تماشای ضربه ها با GestureDetector Watching for Taps with GestureDetector

  • معکوس کردن حالت های انیمیشن Reversing Animation States

  • ساخت جعبه Building the Box

  • طرح بندی با ویجت پشته Layouts with the Stack Widget

  • ترتیب ابزارک های طراحی Order of Drawing Widgets

  • افزودن ویجت مرکز Add Center Widget

  • ابزارک های موقعیت یابی شده Positioned Widgets

  • گسترش ابعاد پشته Expanding Stack Dimensions

  • سه دلیل برای چیدمان های عجیب Three Reasons for Strange Layouts

  • محدودیت های موقعیت Positioned Constraints

  • افست های منفی Negative Offsets

  • تنظیمات کلیپ پشته Stack Clip Settings

  • تنظیم محدوده توئین Adjusting Tween Ranges

  • اضافه کردن فلپ های جعبه Adding Box Flaps

  • ابزارک های چرخشی Rotating Widgets

  • چرخش توسط رادیان ها Rotation by Radians

  • تغییر نقطه چرخش Changing Rotation Point

  • لمسی از موقعیت یابی A Touch of Positioning

  • کنترلر BoxAnimation BoxAnimation Controller

  • اضافه کردن سازندگان متحرک Adding Animated Builders

  • بازنشانی انیمیشن ها Resetting Animations

  • محدود کردن محدوده انیمیشن Constraining Animation Range

  • اضافه کردن فلپ سمت راست Adding the Right Flap

  • مقادیر چرخش منفی Negative Rotation Values

  • تغییر وضعیت انیمیشن Toggling Animation State

  • جمع بندی انیمیشن Animation Wrapup

واکشی داده های عملکردی Performant Data Fetching

  • نمای کلی برنامه App Overview

  • Hacker News API Hacker News API

  • چالش های بیشتر API More API Challenges

  • استراتژی عملکرد API API Performance Strategy

  • ایجاد کلاس ItemModel Creating the ItemModel Class

  • چند ویژگی ItemModel بیشتر A Few More ItemModel Properties

  • پیاده سازی ارائه دهنده API API Provider Implementation

  • واکشی اقلام فردی Fetching Individual Items

واکشی داده های عملکردی Performant Data Fetching

  • نمای کلی برنامه App Overview

  • Hacker News API Hacker News API

  • چالش های بیشتر API More API Challenges

  • استراتژی عملکرد API API Performance Strategy

  • ایجاد کلاس ItemModel Creating the ItemModel Class

  • چند ویژگی ItemModel بیشتر A Few More ItemModel Properties

  • پیاده سازی ارائه دهنده API API Provider Implementation

  • واکشی اقلام فردی Fetching Individual Items

تست با فلاتر و دارت Testing with Flutter and Dart

  • تست با دارت Testing with Dart

  • چند واردات A Few Imports

  • انتظارات نوشتاری Writing Expectations

  • تمسخر درخواست های HTTP Mocking HTTP Requests

  • در حال بازگشت JSON Returning JSON

  • تست FetchItem Testing FetchItem

تست با فلاتر و دارت Testing with Flutter and Dart

  • تست با دارت Testing with Dart

  • چند واردات A Few Imports

  • انتظارات نوشتاری Writing Expectations

  • تمسخر درخواست های HTTP Mocking HTTP Requests

  • در حال بازگشت JSON Returning JSON

  • تست FetchItem Testing FetchItem

ذخیره سازی اطلاعات آفلاین Offline Data Storage

  • ارائه دهنده SQLite DB SQLite DB Provider

  • واردات پایگاه داده Database Imports

  • سازندگان Async Async Constructors

  • ایجاد یک اتصال DB Creating a DB Connection

  • ساخت جداول با SQLite Creating Tables with SQLite

  • اضافه کردن ستون های جدول Adding Table Columns

  • صدور پرس و جو Issuing Queries

  • سازنده های چندگانه با نام Multiple Named Constructors

  • ماساژ نقشه های بازگشت DB Massaging DB Return Maps

  • تبدیل نمونه‌های کلاس به Maps Turning Class Instances to Maps

  • پیاده سازی مخزن Implementing the Repository

  • اطلاعات بیشتر در مورد مخزن More on the Repository

  • Annotations را تایپ کنید Type Annotations

  • لیست های بازیگری Casting Lists

ذخیره سازی اطلاعات آفلاین Offline Data Storage

  • ارائه دهنده SQLite DB SQLite DB Provider

  • واردات پایگاه داده Database Imports

  • سازندگان Async Async Constructors

  • ایجاد یک اتصال DB Creating a DB Connection

  • ساخت جداول با SQLite Creating Tables with SQLite

  • اضافه کردن ستون های جدول Adding Table Columns

  • صدور پرس و جو Issuing Queries

  • سازنده های چندگانه با نام Multiple Named Constructors

  • ماساژ نقشه های بازگشت DB Massaging DB Return Maps

  • تبدیل نمونه‌های کلاس به Maps Turning Class Instances to Maps

  • پیاده سازی مخزن Implementing the Repository

  • اطلاعات بیشتر در مورد مخزن More on the Repository

  • Annotations را تایپ کنید Type Annotations

  • لیست های بازیگری Casting Lists

طراحی تایپ Type Design

  • اطلاعات بیشتر در مورد مخزن More on the Repository

  • کلاس های چکیده Abstract Classes

  • نیاز به کلاس های انتزاعی The Need for Abstract Classes

  • چرا کلاس های انتزاعی؟ Why Abstract Classes?

  • بیشتر در مورد کلاس های انتزاعی More on Abstract Classes

  • طراحی رابط مخزن Repository Interface Design

  • تعریف منبع Defining the Source

  • تعاریف کش Cache Definitions

  • فهرست منابع و حافظه های پنهان Lists of Sources and Caches

  • قابلیت استفاده مجدد نهایی Ultimate Reusability

  • گوچا سریع Quick Gotcha

  • یک گوچای سریع دیگر! Another Quick Gotcha!

  • پیاده سازی FetchTopIds FetchTopIds Implementation

طراحی تایپ Type Design

  • اطلاعات بیشتر در مورد مخزن More on the Repository

  • کلاس های چکیده Abstract Classes

  • نیاز به کلاس های انتزاعی The Need for Abstract Classes

  • چرا کلاس های انتزاعی؟ Why Abstract Classes?

  • بیشتر در مورد کلاس های انتزاعی More on Abstract Classes

  • طراحی رابط مخزن Repository Interface Design

  • تعریف منبع Defining the Source

  • تعاریف کش Cache Definitions

  • فهرست منابع و حافظه های پنهان Lists of Sources and Caches

  • قابلیت استفاده مجدد نهایی Ultimate Reusability

  • گوچا سریع Quick Gotcha

  • یک گوچای سریع دیگر! Another Quick Gotcha!

  • پیاده سازی FetchTopIds FetchTopIds Implementation

رندر ویجت بر حسب تقاضا On Demand Widget Rendering

  • راه اندازی برنامه App Setup

  • لمسی از دیگ بخار A Touch of Boilerplate

  • نگرانی های واکشی داده ها Data Fetching Concerns

  • طرح کلی راه حل Solution Outline

  • FutureBuilder در عمل FutureBuilder in Action

  • ارائه دهنده داستان ها The Stories Provider

  • طراحی بلوک Bloc Design

  • افشای بلوک گیرندگان Exposing Bloc Getters

  • سیم کشی ارائه دهنده داستان ها Wiring up the Stories Provider

  • تست بلوک Bloc Testing

  • تایپ Annotations حل مسائل Type Annotations Solve Problems

  • نشانگر پیشرفت دایره ای Circular Progress Indicator

  • معماری واکشی آیتم Item Fetching Architecture

  • Gotcha غول پیکر با StreamBuilder Giant Gotcha with StreamBuilder

  • راه حل غول پیکر گوچا Giant Gotcha Solution

  • پیاده سازی ScanStreamTransformer Implementing ScanStreamTransformer

  • اتمام ScanStreamTransformer Finishing the ScanStreamTransformer

  • افزودن کنترلر آیتم ها Adding the Items Controller

  • گوچا در اطراف جریان ها؟ غیر ممکن! A Gotcha Around Streams? Impossible!

  • برنامه تک ترانسفورماتور Single Transformer Application

  • کاشی ListView The ListView Tile

  • راه اندازی StreamBuilder StreamBuilder Setup

  • بسته بندی FutureBuilder Wrapping Up the FutureBuilder

  • دو گوچا! Double Gotcha!

  • اشتراک های جریان Stream Subscriptions

  • رفع اشتراک جریان Stream Subscription Fix

  • جریان های اضافی Additional Streams

  • یک Refactor زحمت کش A Laborious Refactor

  • نتیجه Refactor Result of Refactor

  • جلسه رفع اشکال سریع Quick Debug Session

  • حل تعارضات پایگاه داده Resolving Database Conflicts

  • کاشی های داستانی ساختمان Building Story Tiles

  • نماد نظرات Comments Icon

  • استفاده از تقسیم کننده ها با ارتفاع Applying Dividers with Height

  • Loading Container Stand-in Loading Container Stand-in

  • ساخت کانتینر بارگیری Building the Loading Container

  • نمایش کانتینر بارگیری Showing the Loading Container

  • ارزش های کش طولانی مدت Long-Lived Cache Values

  • انگشت خود را به نشانگر Refresh بکشید Swipe to Refresh Indicator

  • پیاده سازی یک ویجت Refresh Implementing a Refresh Widget

  • پاک کردن جداول پایگاه داده Clearing Database Tables

  • ارتباط آینده با onRefresh Communicating a Future to onRefresh

رندر ویجت بر حسب تقاضا On Demand Widget Rendering

  • راه اندازی برنامه App Setup

  • لمسی از دیگ بخار A Touch of Boilerplate

  • نگرانی های واکشی داده ها Data Fetching Concerns

  • طرح کلی راه حل Solution Outline

  • FutureBuilder در عمل FutureBuilder in Action

  • ارائه دهنده داستان ها The Stories Provider

  • طراحی بلوک Bloc Design

  • افشای بلوک گیرندگان Exposing Bloc Getters

  • سیم کشی ارائه دهنده داستان ها Wiring up the Stories Provider

  • تست بلوک Bloc Testing

  • تایپ Annotations حل مسائل Type Annotations Solve Problems

  • نشانگر پیشرفت دایره ای Circular Progress Indicator

  • معماری واکشی آیتم Item Fetching Architecture

  • Gotcha غول پیکر با StreamBuilder Giant Gotcha with StreamBuilder

  • راه حل غول پیکر گوچا Giant Gotcha Solution

  • پیاده سازی ScanStreamTransformer Implementing ScanStreamTransformer

  • اتمام ScanStreamTransformer Finishing the ScanStreamTransformer

  • افزودن کنترلر آیتم ها Adding the Items Controller

  • گوچا در اطراف جریان ها؟ غیر ممکن! A Gotcha Around Streams? Impossible!

  • برنامه تک ترانسفورماتور Single Transformer Application

  • کاشی ListView The ListView Tile

  • راه اندازی StreamBuilder StreamBuilder Setup

  • بسته بندی FutureBuilder Wrapping Up the FutureBuilder

  • دو گوچا! Double Gotcha!

  • اشتراک های جریان Stream Subscriptions

  • رفع اشتراک جریان Stream Subscription Fix

  • جریان های اضافی Additional Streams

  • یک Refactor زحمت کش A Laborious Refactor

  • نتیجه Refactor Result of Refactor

  • جلسه رفع اشکال سریع Quick Debug Session

  • حل تعارضات پایگاه داده Resolving Database Conflicts

  • کاشی های داستانی ساختمان Building Story Tiles

  • نماد نظرات Comments Icon

  • استفاده از تقسیم کننده ها با ارتفاع Applying Dividers with Height

  • Loading Container Stand-in Loading Container Stand-in

  • ساخت کانتینر بارگیری Building the Loading Container

  • نمایش کانتینر بارگیری Showing the Loading Container

  • ارزش های کش طولانی مدت Long-Lived Cache Values

  • انگشت خود را به نشانگر Refresh بکشید Swipe to Refresh Indicator

  • پیاده سازی یک ویجت Refresh Implementing a Refresh Widget

  • پاک کردن جداول پایگاه داده Clearing Database Tables

  • ارتباط آینده با onRefresh Communicating a Future to onRefresh

ناوبری با فلاتر Navigation with Flutter

  • ناوبری در فلاتر Navigation in Flutter

  • مسیریابی مبتنی بر نقشه Map Based Routing

  • ناوبری مبتنی بر مسیر تولید OnGenerateRoute-Based Navigation

  • پیاده سازی OnGenerateRoute OnGenerateRoute Implementation

  • پیمایش به سبک! Navigating in Style!

  • یک مسیر صفحه برای جزئیات اخبار A PageRoute for NewsDetail

  • داربست در NewsDetail A Scaffold in NewsDetail

  • تنظیمات مسیر تجزیه Parsing Route Settings

  • ارائه دهنده بلوک نظرات The Comments Bloc Provider

  • طراحی بلوک نظرات Comments Bloc Design

  • بیشتر در بلوک نظرات More on Comments Bloc

  • واکشی بازگشتی داده ها Recursive Data Fetching

  • تعمیر سریع Quick Fix

  • اتصال ارائه دهنده نظرات Connecting the Comments Provider

  • تست واکشی بازگشتی Testing Recursive Fetching

  • مصرف نقشه آیتم Consuming the Item Map

  • نمایش عنوان داستان Displaying the Story Title

  • سبک سازی متن Text Styling

  • تراز کانتینر Container Alignment

  • ساخت فهرست نظرات Building the Comments List

  • استخراج منطق بیشتر More Logic Extraction

  • ویجت نظرات The Comment Widget

  • FutureBuilder نظرات Comment's FutureBuilder

  • نمایش نظرات فردی Showing Individual COmments

  • رندر بازگشتی Recursive Rendering

  • حالت دادن به لیست نظرات Styling the Comment List

  • پیش‌فرض مقادیر تهی Defaulting Null Values

  • رسیدگی به نظرات حذف شده Handling Deleted Comments

  • نظرات تو در تو Nested Comments

  • ویژگی ContentPadding ListTile ListTile's ContentPadding Property

  • جایگزینی کاراکترهای نگهدارنده مکان Replacing Placeholder Characters

  • بارگیری ظروف برای نظرات Loading Containers for Comments

  • جمع بندی برنامه App Wrapup

  • آخرین اصلاح! Last Fix!

ناوبری با فلاتر Navigation with Flutter

  • ناوبری در فلاتر Navigation in Flutter

  • مسیریابی مبتنی بر نقشه Map Based Routing

  • ناوبری مبتنی بر مسیر تولید OnGenerateRoute-Based Navigation

  • پیاده سازی OnGenerateRoute OnGenerateRoute Implementation

  • پیمایش به سبک! Navigating in Style!

  • یک مسیر صفحه برای جزئیات اخبار A PageRoute for NewsDetail

  • داربست در NewsDetail A Scaffold in NewsDetail

  • تنظیمات مسیر تجزیه Parsing Route Settings

  • ارائه دهنده بلوک نظرات The Comments Bloc Provider

  • طراحی بلوک نظرات Comments Bloc Design

  • بیشتر در بلوک نظرات More on Comments Bloc

  • واکشی بازگشتی داده ها Recursive Data Fetching

  • تعمیر سریع Quick Fix

  • اتصال ارائه دهنده نظرات Connecting the Comments Provider

  • تست واکشی بازگشتی Testing Recursive Fetching

  • مصرف نقشه آیتم Consuming the Item Map

  • نمایش عنوان داستان Displaying the Story Title

  • سبک سازی متن Text Styling

  • تراز کانتینر Container Alignment

  • ساخت فهرست نظرات Building the Comments List

  • استخراج منطق بیشتر More Logic Extraction

  • ویجت نظرات The Comment Widget

  • FutureBuilder نظرات Comment's FutureBuilder

  • نمایش نظرات فردی Showing Individual COmments

  • رندر بازگشتی Recursive Rendering

  • حالت دادن به لیست نظرات Styling the Comment List

  • پیش‌فرض مقادیر تهی Defaulting Null Values

  • رسیدگی به نظرات حذف شده Handling Deleted Comments

  • نظرات تو در تو Nested Comments

  • ویژگی ContentPadding ListTile ListTile's ContentPadding Property

  • جایگزینی کاراکترهای نگهدارنده مکان Replacing Placeholder Characters

  • بارگیری ظروف برای نظرات Loading Containers for Comments

  • جمع بندی برنامه App Wrapup

  • آخرین اصلاح! Last Fix!

پیوست یک: ساخت متن باز با دارت Appendix One: Building Open Source with Dart

  • نصب محلی دارت Dart Local Installation

  • نصب دارت در مک Dart Install on Mac

  • راه اندازی ویرایشگر برای دارت Editor Setup for Dart

  • نمای کلی برنامه App Overview

  • پوشه و ساختار فایل Folder and File Structure

  • فایل PubSpec The PubSpec File

  • اجرای فایل های دارت Running Dart Files

  • روش طراحی برنامه Program Design Methodology

  • ایجاد کلاس Class Creation

  • طراحی ترمینال Terminal Design

  • اجرای ترمینال Terminal Implementation

  • Stdout و Stdin Stdout and Stdin

  • بیانیه های واردات Import Statements

  • نمونه Stdout Stdout Instance

  • بیشتر در مورد اظهارنامه واردات More on Import Statements

  • تست کلاس واردات Testing the Import Class

  • بررسی سیستم عامل Checking Operating System

  • پاک کردن ترمینال ویندوز Clearing Windows Terminal

  • پاکسازی پایانه های دیگر Clearing Other Terminals

  • تست ClearScreen Testing ClearScreen

  • جمع آوری ورودی از طریق Stdin Collecting Input Over Stdin

  • فیلدهای کلاس گزینه Option Class FIelds

  • افزودن فیلدهای پویا Adding Dynamic Fields

  • چاپ گزینه های فردی Printing Individual Options

  • تست گزینه چاپ Testing Option Printing

  • لیست کاستی ها List Shortcomings

  • نقشه ها در دارت Maps in Dart

  • Refactor به Maps Refactor to Maps

  • کلاس Prompter The Prompter Class

  • تست Prompter Testing the Prompter

  • استخراج ترمینال Extracting the Terminal

  • Var vs Final for Variables Var vs Final for Variables

  • تاثیر نهایی بر ارزش ها Final's Affect on Values

  • طبیعت دوگانه Const Const's Dual Nature

  • رفتار Const بر اساس نوع Const's Behavior by Type

  • علامت گذاری پایانه به عنوان Const Marking Terminal as Const

  • متغیرهای خصوصی Private Variables

  • تکمیل کننده پرومتر Finishing Prompter

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

  • پرسیدن سوالات باینری Asking Binary Questions

  • تست ورودی های باینری Testing Binary Inputs

  • شباهت های کد Code Similarities

  • Refactor برای استفاده مجدد از کد Refactor for Code Reuse

  • بیشتر در مورد خصوصی More on Private

  • فایل Central Lib Central Lib File

  • یک نقطه صادرات واحد A Single Export Point

  • یک فایل نمونه مرتبط A Relevant Example File

  • پیکربندی پروژه برجسته Outstanding Project Config

  • در حال آپلود Prompter Lib Uploading the Prompter Lib

پیوست یک: ساخت متن باز با دارت Appendix One: Building Open Source with Dart

  • نصب محلی دارت Dart Local Installation

  • نصب دارت در مک Dart Install on Mac

  • راه اندازی ویرایشگر برای دارت Editor Setup for Dart

  • نمای کلی برنامه App Overview

  • پوشه و ساختار فایل Folder and File Structure

  • فایل PubSpec The PubSpec File

  • اجرای فایل های دارت Running Dart Files

  • روش طراحی برنامه Program Design Methodology

  • ایجاد کلاس Class Creation

  • طراحی ترمینال Terminal Design

  • اجرای ترمینال Terminal Implementation

  • Stdout و Stdin Stdout and Stdin

  • بیانیه های واردات Import Statements

  • نمونه Stdout Stdout Instance

  • بیشتر در مورد اظهارنامه واردات More on Import Statements

  • تست کلاس واردات Testing the Import Class

  • بررسی سیستم عامل Checking Operating System

  • پاک کردن ترمینال ویندوز Clearing Windows Terminal

  • پاکسازی پایانه های دیگر Clearing Other Terminals

  • تست ClearScreen Testing ClearScreen

  • جمع آوری ورودی از طریق Stdin Collecting Input Over Stdin

  • فیلدهای کلاس گزینه Option Class FIelds

  • افزودن فیلدهای پویا Adding Dynamic Fields

  • چاپ گزینه های فردی Printing Individual Options

  • تست گزینه چاپ Testing Option Printing

  • لیست کاستی ها List Shortcomings

  • نقشه ها در دارت Maps in Dart

  • Refactor به Maps Refactor to Maps

  • کلاس Prompter The Prompter Class

  • تست Prompter Testing the Prompter

  • استخراج ترمینال Extracting the Terminal

  • Var vs Final for Variables Var vs Final for Variables

  • تاثیر نهایی بر ارزش ها Final's Affect on Values

  • طبیعت دوگانه Const Const's Dual Nature

  • رفتار Const بر اساس نوع Const's Behavior by Type

  • علامت گذاری پایانه به عنوان Const Marking Terminal as Const

  • متغیرهای خصوصی Private Variables

  • تکمیل کننده پرومتر Finishing Prompter

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

  • پرسیدن سوالات باینری Asking Binary Questions

  • تست ورودی های باینری Testing Binary Inputs

  • شباهت های کد Code Similarities

  • Refactor برای استفاده مجدد از کد Refactor for Code Reuse

  • بیشتر در مورد خصوصی More on Private

  • فایل Central Lib Central Lib File

  • یک نقطه صادرات واحد A Single Export Point

  • یک فایل نمونه مرتبط A Relevant Example File

  • پیکربندی پروژه برجسته Outstanding Project Config

  • در حال آپلود Prompter Lib Uploading the Prompter Lib

پیوست دو: ساخت Dart CLI Appendix Two: Building a Dart CLI

  • نمای کلی برنامه App Overview

  • راه اندازی پروژه Project Setup

  • وارد کردن کد کتابخانه Importing Library Code

  • خروج اجباری از یک برنامه Forcibly Exiting a Program

  • درخواست برای نوع فایل Prompting for File Type

  • جریان پیاده سازی Implementation Flow

  • کار با دایرکتوری جاری Working with the Current Directory

  • فیلتر کردن غیر فایل ها Filtering Non-Files

  • فیلتر کردن غیر تصاویر Filtering Non-Images

  • گزینه های ساختمان از تصاویر Building Options from Images

  • تست انتخاب تصویر Testing Image Selection

  • تبدیل تصاویر Converting Images

  • تابع ConvertImage The ConvertImage Function

  • خواندن محتویات فایل Reading File Contents

  • رمزگذاری به JPG یا PNG Encoding to JPG or PNG

  • نوشتن فایل روی هارد دیسک Writing Files to the Hard Drive

  • برگرداندن نام تصویر Returning the Image Name

  • تست تبدیل تصویر Testing Image Conversion

  • باز کردن تصویر Opening the Image

پیوست دو: ساخت Dart CLI Appendix Two: Building a Dart CLI

  • نمای کلی برنامه App Overview

  • راه اندازی پروژه Project Setup

  • وارد کردن کد کتابخانه Importing Library Code

  • خروج اجباری از یک برنامه Forcibly Exiting a Program

  • درخواست برای نوع فایل Prompting for File Type

  • جریان پیاده سازی Implementation Flow

  • کار با دایرکتوری جاری Working with the Current Directory

  • فیلتر کردن غیر فایل ها Filtering Non-Files

  • فیلتر کردن غیر تصاویر Filtering Non-Images

  • گزینه های ساختمان از تصاویر Building Options from Images

  • تست انتخاب تصویر Testing Image Selection

  • تبدیل تصاویر Converting Images

  • تابع ConvertImage The ConvertImage Function

  • خواندن محتویات فایل Reading File Contents

  • رمزگذاری به JPG یا PNG Encoding to JPG or PNG

  • نوشتن فایل روی هارد دیسک Writing Files to the Hard Drive

  • برگرداندن نام تصویر Returning the Image Name

  • تست تبدیل تصویر Testing Image Conversion

  • باز کردن تصویر Opening the Image

موارد اضافی Extras

  • جایزه! Bonus!

موارد اضافی Extras

  • جایزه! Bonus!

نمایش نظرات

آموزش Dart and Flutter: The Complete Developer's Guide
جزییات دوره
31 hours
402
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
27,507
4.5 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Stephen Grider Stephen Grider

معمار مهندسی