وب سایت تخصصی شرکت فرین
دسته بندی دوره ها

Dart and Flutter: The Complete Developer’s Guide

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

Everything you need to know for building mobile apps with Flutter and Dart, including RxDart and Animations!


01 - Lets Dive In!
  • 001 How to Get Help
  • 002 Course Resources.html
  • 002 diagrams.zip
  • 003 Join Our Community!.html
  • 004 Course Organization

  • 02 - A Dart Introduction
  • 001 Dart Overview
  • 002 The Dartpad Editor
  • 003 Our First Program
  • 004 Pulling the Pieces Apart
  • 005 Functions in Dart
  • 006 Introduction to Types
  • 007 Why Use Types
  • 008 String Interpolation
  • 009 Object Oriented Programming in Dart
  • 010 Creating Classes
  • 011 Creating Class Instances
  • 012 Constructor Functions
  • 013 Review on Constructors

  • 03 - Staying on Target with Dart
  • 001 App Overview
  • 002 OOP Design Flow
  • 003 Adding Fields to Classes
  • 004 Associated Methods
  • 005 More Initialization with Constructors
  • 006 For Loops
  • 007 Adding Elements to Lists
  • 008 More on Variable Initialization
  • 009 Customizing Print Statements
  • 010 ToString on Cards
  • 011 Shuffling a List
  • 012 Annotating Argument Types
  • 013 Filtering Lists
  • 014 Annotating Argument Types
  • 015 Filtering Lists
  • 016 Shorthand Function Syntax
  • 017 Removing Individual Records
  • 018 RemoveCard Implementation
  • 019 Named Parameters

  • 04 - Flutter Environment Setup - MacOS
  • 001 Flutter Setup on MacOS
  • 002 SDK Extraction
  • 003 Editing the PATH Variable
  • 004 XCode License
  • 005 Generating Flutter Projects

  • 05 - MacOS Setup - Android
  • 001 Android Setup on MacOS
  • 002 Android Dependencies
  • 003 Android Project Setup
  • 004 More Android Dependencies!
  • 005 Android Emulator Creation
  • 006 Flutter Startup
  • 007 Finished Android Setup

  • 06 - MacOS Setup - iOS
  • 001 iOS on Mac Setup
  • 002 XCode Setup
  • 003 iOS Simulator Startup
  • 004 App Startup

  • 07 - Flutter Setup on PC
  • 001 Flutter Install
  • 002 More Flutter Installation
  • 003 Android Install
  • 004 Additional Dependencies
  • 005 Generating a Project
  • 006 Selecting an Image
  • 007 Starting the Emulator
  • 008 Finishing Android Setup

  • 08 - App Building Time!
  • 001 Code Editor Setup.html
  • 002 Whats Flutter About, Anyways
  • 003 App Overview
  • 004 The Four Step Design Process
  • 005 Import Statements
  • 006 Creating Widgets
  • 007 Displaying Content on Screen
  • 008 Showing a Scaffold
  • 009 Customizing the App Bar
  • 010 Named Parameter Clarification
  • 011 Required Parameters
  • 012 Child Parameters
  • 013 Displaying Icons
  • 014 Adding Custom Widgets

  • 09 - State Design with Flutter Apps
  • 001 Stateless vs Stateful Widgets
  • 002 The Build Method
  • 003 Local Import Statements
  • 004 Quick Breather and Review
  • 005 Refactoring Stateless to Stateful
  • 006 More Refactoring to Stateful Widgets

  • 10 - High-Level Dart
  • 001 Generics in Dart
  • 002 Why Two Classes

  • 11 - HTTP Requests with Flutter
  • 001 Photos API
  • 002 Working with JSON
  • 003 Casting JSON to Model Instances
  • 004 Named Constructors
  • 005 Adding an Image Model
  • 006 Function References
  • 007 The HTTP Package
  • 008 Issuing HTTP Requests
  • 009 Handling Dart Futures
  • 010 Parsing Future Responses into a Model
  • 011 Updating the AppState Widget
  • 012 Building Lists of Widgets
  • 013 Sending Images to the ImageList
  • 014 The Final Keyword
  • 015 Building Lists with ListView
  • 016 Listing URLs
  • 017 Text to Images
  • 018 Containers for Positioning
  • 019 Adding Border Style
  • 020 Column Widgets for Layout
  • 021 Selective Padding
  • 022 App Review

  • 12 - Forms and Validation with Flutter
  • 001 App Overview
  • 002 Boilerplate App Code
  • 003 Creating the Login Screen
  • 004 More Container Styling
  • 005 Labels and Hint Text
  • 006 Customizing Keyboard Type
  • 007 Handling Password Inputs
  • 008 Displaying Buttons with RaisedButton
  • 009 Changing Widget Colors
  • 010 Layout Control
  • 011 Form Validation
  • 012 Referencing Widgets with Global Keys
  • 013 The Form Widget and FormState
  • 014 Creating a Global Key
  • 015 Referencing FormState with Global Keys
  • 016 Validating via FormState
  • 017 Triggering Validation
  • 018 Retrieving Form Values
  • 019 Final Form Submittal
  • 020 Code Reuse with Mixins
  • 021 Mixin Validator Implementation

  • 13 - Reactive Programming with Dart
  • 001 A Quick Detour
  • 002 Streams by Analogy
  • 003 Characteristics of Streams
  • 004 StreamControllers and Sinks
  • 005 Mapping a Stream
  • 006 Adding a StreamTransformer
  • 007 Implementing the Listener
  • 008 Stream Review
  • 009 Lets Build a Game
  • 010 Why Streams
  • 011 Word Guessing
  • 012 Streams Take and Where Functions
  • 013 Validation with Streams
  • 014 Email Validation
  • 015 Wiring up the Error

  • 14 - Advanced Flutter Architecture - The Bloc Pattern
  • 001 BLOCs vs Stateful Widgets
  • 002 The Purpose of Streams with Blocs
  • 003 Generating a New Project
  • 004 App Boilerplate
  • 005 Second Time on LoginScreen
  • 006 TextFields with RaisedButtons
  • 007 How to Use TextFields
  • 008 BLOC Design for TextFields
  • 009 Annotating Stream Types
  • 010 Issues with Bloc Access
  • 011 Shortcut Access with Getters
  • 012 Public vs Private Fields
  • 013 Improving the BLOC Api
  • 014 Validation Transformers
  • 015 A Technicality Around Mixins
  • 016 Cleaning Up Controllers
  • 017 Bloc Application

  • 15 - Consuming BLOC Data
  • 001 The StreamBuilder Widget
  • 002 Streambuilder for Password Fields
  • 003 Scoped Bloc Approach
  • 004 Provider Implementation
  • 005 The Providers of Function
  • 006 The Providers Constructor
  • 007 The Provider in Action
  • 008 Accessing the Bloc
  • 009 Breather and Review
  • 010 Enabling Form Submission
  • 011 Stream Merging Possibilities

  • 16 - RxDart for Reactive Programming
  • 001 Introducing RxDart
  • 002 More on RxDart
  • 003 The CombineLatest Function
  • 004 CombineLatest in Action
  • 005 More on StreamBuilder
  • 006 Interpreting Stream Values
  • 007 Broadcast Streams
  • 008 Disabled by Default
  • 009 Replacing Controllers with Subjects
  • 010 Review of BLOCs

  • 17 - Building Delightful Animations
  • 001 App Overview
  • 002 Animation Library Classes
  • 003 App Boilerplate
  • 004 StatefulWidgets for Animations
  • 005 Widget Structure
  • 006 Displaying a Cat
  • 007 The InitState Method
  • 008 Declaring the TickerProvider
  • 009 Tweens with Curves
  • 010 Performance Savings with AnimatedBuilder
  • 011 Nature of Animation
  • 012 Starting the Animation
  • 013 Watching for Taps with GestureDetector
  • 014 Reversing Animation States
  • 015 Building the Box
  • 016 Layouts with the Stack Widget
  • 017 Order of Drawing Widgets
  • 018 Add Center Widget
  • 019 Positioned Widgets
  • 020 Expanding Stack Dimensions
  • 021 Three Reasons for Strange Layouts
  • 022 Positioned Constraints
  • 023 Negative Offsets
  • 024 Stack Clip Settings
  • 025 Adjusting Tween Ranges
  • 026 Adding Box Flaps
  • 027 Rotating Widgets
  • 028 Rotation by Radians
  • 029 Changing Rotation Point
  • 030 A Touch of Positioning
  • 031 BoxAnimation Controller
  • 032 Adding Animated Builders
  • 033 Resetting Animations
  • 034 Constraining Animation Range
  • 035 Adding the Right Flap
  • 036 Negative Rotation Values
  • 037 Toggling Animation State
  • 038 Animation Wrapup

  • 18 - Performant Data Fetching
  • 001 App Overview
  • 002 Hacker News API
  • 003 More API Challenges
  • 004 API Performance Strategy
  • 005 Creating the ItemModel Class
  • 006 A Few More ItemModel Properties
  • 007 API Provider Implementation
  • 008 Fetching Individual Items

  • 19 - Testing with Flutter and Dart
  • 001 Testing with Dart
  • 002 A Few Imports
  • 003 Writing Expectations
  • 004 Mocking HTTP Requests
  • 005 Returning JSON
  • 006 Testing FetchItem

  • 20 - Offline Data Storage
  • 001 SQLite DB Provider
  • 002 Database Imports
  • 003 Async Constructors
  • 004 Creating a DB Connection
  • 005 Creating Tables with SQLite
  • 006 Adding Table Columns
  • 007 Issuing Queries
  • 008 Multiple Named Constructors
  • 009 Massaging DB Return Maps
  • 010 Turning Class Instances to Maps
  • 011 Implementing the Repository
  • 012 More on the Repository
  • 013 Type Annotations
  • 014 Casting Lists

  • 21 - Type Design
  • 001 More on the Repository
  • 002 Abstract Classes
  • 003 The Need for Abstract Classes
  • 004 Why Abstract Classes
  • 005 More on Abstract Classes
  • 006 Repository Interface Design
  • 007 Defining the Source
  • 008 Cache Definitions
  • 009 Lists of Sources and Caches
  • 010 Ultimate Reusability
  • 011 Quick Gotcha
  • 012 Another Quick Gotcha!
  • 013 FetchTopIds Implementation

  • 22 - On Demand Widget Rendering
  • 001 App Setup
  • 002 A Touch of Boilerplate
  • 003 Data Fetching Concerns
  • 004 Solution Outline
  • 005 FutureBuilder in Action
  • 006 The Stories Provider
  • 007 Bloc Design
  • 008 Exposing Bloc Getters
  • 009 Wiring up the Stories Provider
  • 010 Bloc Testing
  • 011 Type Annotations Solve Problems
  • 012 Circular Progress Indicator
  • 013 Item Fetching Architecture
  • 014 Giant Gotcha with StreamBuilder
  • 015 Giant Gotcha Solution
  • 016 Implementing ScanStreamTransformer
  • 017 Finishing the ScanStreamTransformer
  • 018 Adding the Items Controller
  • 019 A Gotcha Around Streams Impossible!
  • 020 Single Transformer Application
  • 021 The ListView Tile
  • 022 StreamBuilder Setup
  • 023 Wrapping Up the FutureBuilder
  • 024 Double Gotcha!
  • 025 Stream Subscriptions
  • 026 Stream Subscription Fix
  • 027 Additional Streams
  • 028 A Laborious Refactor
  • 029 Result of Refactor
  • 030 Quick Debug Session
  • 031 Resolving Database Conflicts
  • 032 Building Story Tiles
  • 033 Comments Icon
  • 034 Applying Dividers with Height
  • 035 Loading Container Stand-in
  • 036 Building the Loading Container
  • 037 Showing the Loading Container
  • 038 Long-Lived Cache Values
  • 039 Swipe to Refresh Indicator
  • 040 Implementing a Refresh Widget
  • 041 Clearing Database Tables
  • 042 Communicating a Future to onRefresh

  • 23 - Navigation with Flutter
  • 001 Navigation in Flutter
  • 002 Map Based Routing
  • 003 OnGenerateRoute-Based Navigation
  • 004 OnGenerateRoute Implementation
  • 005 Navigating in Style!
  • 006 A PageRoute for NewsDetail
  • 007 A Scaffold in NewsDetail
  • 008 Parsing Route Settings
  • 009 The Comments Bloc Provider
  • 010 Comments Bloc Design
  • 011 More on Comments Bloc
  • 012 Recursive Data Fetching
  • 013 Quick Fix.html
  • 014 Connecting the Comments Provider
  • 015 Testing Recursive Fetching
  • 016 Consuming the Item Map
  • 017 Displaying the Story Title
  • 018 Text Styling
  • 019 Container Alignment
  • 020 Building the Comments List
  • 021 More Logic Extraction
  • 022 The Comment Widget
  • 023 Comments FutureBuilder
  • 024 Showing Individual COmments
  • 025 Recursive Rendering
  • 026 Styling the Comment List
  • 027 Defaulting Null Values
  • 028 Handling Deleted Comments
  • 029 Nested Comments
  • 030 ListTiles ContentPadding Property
  • 031 Replacing Placeholder Characters
  • 032 Loading Containers for Comments
  • 033 App Wrapup
  • 034 Last Fix!

  • 24 - Appendix One Building Open Source with Dart
  • 001 Dart Local Installation
  • 002 Dart Install on Mac
  • 003 Editor Setup for Dart
  • 004 App Overview
  • 005 Folder and File Structure
  • 006 The PubSpec File
  • 007 Running Dart Files
  • 008 Program Design Methodology
  • 009 Class Creation
  • 010 Terminal Design
  • 011 Terminal Implementation
  • 012 Stdout and Stdin
  • 013 Import Statements
  • 014 Stdout Instance
  • 015 More on Import Statements
  • 016 Testing the Import Class
  • 017 Checking Operating System
  • 018 Clearing Windows Terminal
  • 019 Clearing Other Terminals
  • 020 Testing ClearScreen
  • 021 Collecting Input Over Stdin
  • 022 Option Class FIelds
  • 023 Adding Dynamic Fields
  • 024 Printing Individual Options
  • 025 Testing Option Printing
  • 026 List Shortcomings
  • 027 Maps in Dart
  • 028 Refactor to Maps
  • 029 The Prompter Class
  • 030 Testing the Prompter
  • 031 Extracting the Terminal
  • 032 Var vs Final for Variables
  • 033 Finals Affect on Values
  • 034 Consts Dual Nature
  • 035 Consts Behavior by Type
  • 036 Marking Terminal as Const
  • 037 Private Variables
  • 038 Finishing Prompter
  • 039 Error Handling
  • 040 Asking Binary Questions
  • 041 Testing Binary Inputs
  • 042 Code Similarities
  • 043 Refactor for Code Reuse
  • 044 More on Private
  • 045 Central Lib File
  • 046 A Single Export Point
  • 047 A Relevant Example File
  • 048 Outstanding Project Config
  • 049 Uploading the Prompter Lib

  • 25 - Appendix Two Building a Dart CLI
  • 001 App Overview
  • 002 Project Setup
  • 003 Importing Library Code
  • 004 Forcibly Exiting a Program
  • 005 Prompting for File Type
  • 006 Implementation Flow
  • 007 Working with the Current Directory
  • 008 Filtering Non-Files
  • 009 Filtering Non-Images
  • 010 Building Options from Images
  • 011 Testing Image Selection
  • 012 Converting Images
  • 013 The ConvertImage Function
  • 014 Reading File Contents
  • 015 Encoding to JPG or PNG
  • 016 Writing Files to the Hard Drive
  • 017 Returning the Image Name
  • 018 Testing Image Conversion
  • 019 Opening the Image

  • 26 - Extras
  • 001 Bonus!.html
  • 139,000 تومان
    بیش از یک محصول به صورت دانلودی میخواهید؟ محصول را به سبد خرید اضافه کنید.
    خرید دانلودی فوری

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

    ایمیل شما:
    تولید کننده:
    مدرس:
    شناسه: 19052
    حجم: 11808 مگابایت
    مدت زمان: 1873 دقیقه
    تاریخ انتشار: 20 شهریور 1402
    طراحی سایت و خدمات سئو

    139,000 تومان
    افزودن به سبد خرید