4.5 sur 5
4.5

Dart et Flutter : le guide complet du développeur

Tout ce que vous devez savoir pour créer des applications mobiles avec Flutter et Dart, y compris RxDart et Animations!
Créez de belles applications multi-écrans avec Flutter
Comprendre les différentes approches de chargement et de maintenance des données dans les applications Flutter
Créer et publier des projets open source à l'aide de Dart
Apprenez à créer des applications hors ligne avec un chargement de données incroyablement efficace
Comprendre la meilleure méthode pour lire l'incroyable quantité de documentation Flutter
Stocker des données à long terme sur l'appareil physique d'un utilisateur à l'aide de SQLite
Maîtriser les flux et comprendre la programmation réactive pour créer des applications Flutter

Si vous en avez assez de faire tourner les roues en apprenant Swift ou Android, ce cours est fait pour vous.

Animations ? Vous l’apprendrez. Modèles architecturaux ? Inclus. Navigation ? Bien sûr !

Flutter est un nouveau venu sur la scène du développement mobile. Fortement soutenu par Google, il est déjà considéré comme une plate-forme idéale pour remplacer le développement natif Swift et Android. Grâce à son incroyable bibliothèque standard de widgets, ses temps de compilation rapides et sa documentation incroyable, les développeurs tombent amoureux de Flutter !

Ce cours prend en charge MacOS et Windows – développez facilement des applications Android et iOS !

Les applications Flutter sont créées à l’aide du langage Dart. Pas de problème si vous n’êtes pas déjà familiarisé avec Dart ; ce cours comprend une introduction rapide à Dart au début, ainsi que des heures de cours supplémentaires à la fin du cours uniquement axés sur Dart et ses fonctionnalités avancées. Si vous travaillez avec Java, Ruby ou Javascript, vous vous sentirez comme chez vous avec Dart – la syntaxe est presque identique, seuls quelques concepts de base doivent être appris. Dart est un langage fortement typé – mais ne vous découragez pas si vous n’êtes pas fan des types forts ! Je consacre un temps particulier à ce cours pour expliquer pourquoi développer avec un langage fortement typé est un jeu d’enfant !

L’un des plus grands défis liés au développement d’applications Flutter comprend maintenant comment concevoir et concevoir des applications. Flutter est toujours en développement rapide et la communauté dans son ensemble essaie toujours de trouver les meilleures techniques. Dans cet esprit, une attention particulière est accordée dans le cours pour s’assurer que vous comprenez les principaux modèles de conception préconisés par l’équipe Flutter de Google, y compris le modèle “Stateful Widget” et le motif ‘BLOC’. Le modèle « BLOC » fait un usage intensif des techniques de programmation réactive, que vous découvrirez également dans ce cours. Ces techniques peuvent également être facilement appliquées à d’autres langages et frameworks – c’est un bonus !

Bien sûr, aucune application mobile n’est complète sans de belles animations . Vous apprendrez à créer des animations à l’aide de la bibliothèque d’outils standard de Flutter, qui peut être facilement utilisée pour créer des interactions que vos utilisateurs adoreront. Vous devez prévoir de suivre le cours en sachant comment référencer la bibliothèque standard de widgets de Flutter pour assembler des animations complexes.

Inscrivez-vous aujourd’hui et vous :

  • Comprendre le langage Dart et ses fonctionnalités principales
  • Stocker des informations pendant de longues périodes sur l’appareil de l’utilisateur grâce au stockage hors ligne
  • Découvrez comment optimiser les requêtes réseau pour améliorer les performances sur les réseaux mobiles
  • Enchantez vos utilisateurs avec des animations complexes
  • Exposez les fonctionnalités de vos applications avec la multi-écran navigation
  • Dirigez-vous à travers l’incroyable quantité de documentation Flutter
  • Maîtriser la programmation réactive avec flux en utilisant RxDart
  • Mettre en œuvre des modèles de conception avancés préconisé par l’équipe Flutter officielle de Google
  • Gérer l’utilisateur dans mis avec validation de formulaire
  • Apprenez à créer des packages Dart open source et à les distribuer à d’autres développeurs

I ‘ai construit le cours que j’aurais voulu suivre lorsque j’apprenais Flutter. Un cours qui explique les concepts et comment ils sont mis en œuvre dans le meilleur ordre pour que vous puissiez les apprendre et les comprendre en profondeur.

RDV dans le cours !

Let's Dive In!

1
How to Get Help
2
Course Resources
3
Join Our Community!
4
Course Organization

A Dart Introduction

1
Dart Overview
2
The Dartpad Editor
3
Our First Program
4
Pulling the Pieces Apart
5
Functions in Dart
6
Introduction to Types
7
Why Use Types?
8
String Interpolation
9
Object Oriented Programming in Dart
10
Creating Classes
11
Creating Class Instances
12
Constructor Functions
13
Review on Constructors

Staying on Target with Dart

1
App Overview
2
OOP Design Flow
3
Adding Fields to Classes
4
Associated Methods
5
More Initialization with Constructors
6
For Loops
7
Adding Elements to Lists
8
More on Variable Initialization
9
Customizing Print Statements
10
ToString on Cards
11
Shuffling a List
12
Annotating Argument Types
13
Filtering Lists
14
Annotating Argument Types
15
Filtering Lists
16
Shorthand Function Syntax
17
Removing Individual Records
18
RemoveCard Implementation
19
Named Parameters

Flutter Environment Setup - MacOS

1
Flutter Setup on MacOS
2
SDK Extraction
3
Editing the PATH Variable
4
XCode License
5
Generating Flutter Projects

MacOS Setup - Android

1
Android Setup on MacOS
2
Android Dependencies
3
Android Project Setup
4
More Android Dependencies!
5
Android Emulator Creation
6
Flutter Startup
7
Finished Android Setup

MacOS Setup - iOS

1
iOS on Mac Setup
2
XCode Setup
3
iOS Simulator Startup
4
App Startup

Flutter Setup on PC

1
Flutter Install
2
More Flutter Installation
3
Android Install
4
Additional Dependencies
5
Generating a Project
6
Selecting an Image
7
Starting the Emulator
8
Finishing Android Setup

App Building Time!

1
Code Editor Setup
2
What's Flutter About, Anyways?
3
App Overview
4
The Four Step Design Process
5
Import Statements
6
Creating Widgets
7
Displaying Content on Screen
8
Showing a Scaffold
9
Customizing the App Bar
10
Named Parameter Clarification
11
Required Parameters
12
Child Parameters
13
Displaying Icons
14
Adding Custom Widgets

State Design with Flutter Apps

1
Stateless vs Stateful Widgets
2
The Build Method
3
Local Import Statements
4
Quick Breather and Review
5
Refactoring Stateless to Stateful
6
More Refactoring to Stateful Widgets

High-Level Dart

1
Generics in Dart
2
Why Two Classes?

HTTP Requests with Flutter

1
Photos API
2
Working with JSON
3
Casting JSON to Model Instances
4
Named Constructors
5
Adding an Image Model
6
Function References
7
The HTTP Package
8
Issuing HTTP Requests
9
Handling Dart Futures
10
Parsing Future Responses into a Model
11
Updating the AppState Widget
12
Building Lists of Widgets
13
Sending Images to the ImageList
14
The Final Keyword
15
Building Lists with ListView
16
Listing URL's
17
Text to Images
18
Containers for Positioning
19
Adding Border Style
20
Column Widgets for Layout
21
Selective Padding
22
App Review

Forms and Validation with Flutter

1
App Overview
2
Boilerplate App Code
3
Creating the Login Screen
4
More Container Styling
5
Labels and Hint Text
6
Customizing Keyboard Type
7
Handling Password Inputs
8
Displaying Buttons with RaisedButton
9
Changing Widget Colors
10
Layout Control
11
Form Validation
12
Referencing Widgets with Global Keys
13
The Form Widget and FormState
14
Creating a Global Key
15
Referencing FormState with Global Keys
16
Validating via FormState
17
Triggering Validation
18
Retrieving Form Values
19
Final Form Submittal
20
Code Reuse with Mixins
21
Mixin Validator Implementation

Reactive Programming with Dart

1
A Quick Detour
2
Streams by Analogy
3
Characteristics of Streams
4
StreamControllers and Sinks
5
Mapping a Stream
6
Adding a StreamTransformer
7
Implementing the Listener
8
Stream Review
9
Let's Build a Game
10
Why Streams?
11
Word Guessing
12
Stream's 'Take' and 'Where' Functions
13
Validation with Streams
14
Email Validation
15
Wiring up the Error

Advanced Flutter Architecture - The Bloc Pattern

1
BLOC's vs Stateful Widgets
2
The Purpose of Streams with Blocs
3
Generating a New Project
4
App Boilerplate
5
Second Time on LoginScreen
6
TextFields with RaisedButtons
7
How to Use TextFields
8
BLOC Design for TextFields
9
Annotating Stream Types
10
Issues with Bloc Access
11
Shortcut Access with Getters
12
Public vs Private Fields
13
Improving the BLOC Api
14
Validation Transformers
15
A Technicality Around Mixins
16
Cleaning Up Controllers
17
Bloc Application

Consuming BLOC Data

1
The StreamBuilder Widget
2
Streambuilder for Password Fields
3
Scoped Bloc Approach
4
Provider Implementation
5
The Provider's 'of' Function
6
The Provider's Constructor
7
The Provider in Action
8
Accessing the Bloc
9
Breather and Review
10
Enabling Form Submission
11
Stream Merging Possibilities

RxDart for Reactive Programming

1
Introducing RxDart
2
More on RxDart
3
The CombineLatest Function
4
CombineLatest in Action
5
More on StreamBuilder
6
Interpreting Stream Values
7
Broadcast Streams
8
Disabled by Default
9
Replacing Controllers with Subjects
10
Review of BLOCs

Building Delightful Animations

1
App Overview
2
Animation Library Classes
3
App Boilerplate
4
StatefulWidgets for Animations
5
Widget Structure
6
Displaying a Cat
7
The InitState Method
8
Declaring the TickerProvider
9
Tweens with Curves
10
Performance Savings with AnimatedBuilder
11
Nature of Animation
12
Starting the Animation
13
Watching for Taps with GestureDetector
14
Reversing Animation States
15
Building the Box
16
Layouts with the Stack Widget
17
Order of Drawing Widgets
18
Add Center Widget
19
Positioned Widgets
20
Expanding Stack Dimensions
21
Three Reasons for Strange Layouts
22
Positioned Constraints
23
Negative Offsets
24
Stack Clip Settings
25
Adjusting Tween Ranges
26
Adding Box Flaps
27
Rotating Widgets
28
Rotation by Radians
29
Changing Rotation Point
30
A Touch of Positioning
31
BoxAnimation Controller
32
Adding Animated Builders
33
Resetting Animations
34
Constraining Animation Range
35
Adding the Right Flap
36
Negative Rotation Values
37
Toggling Animation State
38
Animation Wrapup

Performant Data Fetching

1
App Overview
2
Hacker News API
3
More API Challenges
4
API Performance Strategy
5
Creating the ItemModel Class
6
A Few More ItemModel Properties
7
API Provider Implementation
8
Fetching Individual Items

Testing with Flutter and Dart

1
Testing with Dart
2
A Few Imports
3
Writing Expectations
4
Mocking HTTP Requests
5
Returning JSON
6
Testing FetchItem

Offline Data Storage

1
SQLite DB Provider
2
Database Imports
3
Async Constructors
4
Creating a DB Connection
5
Creating Tables with SQLite
6
Adding Table Columns
7
Issuing Queries
8
Multiple Named Constructors
9
Massaging DB Return Maps
10
Turning Class Instances to Maps
11
Implementing the Repository
12
More on the Repository
13
Type Annotations
14
Casting Lists

Type Design

1
More on the Repository
2
Abstract Classes
3
The Need for Abstract Classes
4
Why Abstract Classes?
5
More on Abstract Classes
6
Repository Interface Design
7
Defining the Source
8
Cache Definitions
9
Lists of Sources and Caches
10
Ultimate Reusability
11
Quick Gotcha
12
Another Quick Gotcha!
13
FetchTopIds Implementation

On Demand Widget Rendering

1
App Setup
2
A Touch of Boilerplate
3
Data Fetching Concerns
4
Solution Outline
5
FutureBuilder in Action
6
The Stories Provider
7
Bloc Design
8
Exposing Bloc Getters
9
Wiring up the Stories Provider
10
Bloc Testing
11
Type Annotations Solve Problems
12
Circular Progress Indicator
13
Item Fetching Architecture
14
Giant Gotcha with StreamBuilder
15
Giant Gotcha Solution
16
Implementing ScanStreamTransformer
17
Finishing the ScanStreamTransformer
18
Adding the Items Controller
19
A Gotcha Around Streams? Impossible!
20
Single Transformer Application
21
The ListView Tile
22
StreamBuilder Setup
23
Wrapping Up the FutureBuilder
24
Double Gotcha!
25
Stream Subscriptions
26
Stream Subscription Fix
27
Additional Streams
28
A Laborious Refactor
29
Result of Refactor
30
Quick Debug Session
31
Resolving Database Conflicts
32
Building Story Tiles
33
Comments Icon
34
Applying Dividers with Height
35
Loading Container Stand-in
36
Building the Loading Container
37
Showing the Loading Container
38
Long-Lived Cache Values
39
Swipe to Refresh Indicator
40
Implementing a Refresh Widget
41
Clearing Database Tables
42
Communicating a Future to onRefresh

Navigation with Flutter

1
Navigation in Flutter
2
Map Based Routing
3
OnGenerateRoute-Based Navigation
4
OnGenerateRoute Implementation
5
Navigating in Style!
6
A PageRoute for NewsDetail
7
A Scaffold in NewsDetail
8
Parsing Route Settings
9
The Comments Bloc Provider
10
Comments Bloc Design
11
More on Comments Bloc
12
Recursive Data Fetching
13
Quick Fix
14
Connecting the Comments Provider
15
Testing Recursive Fetching
16
Consuming the Item Map
17
Displaying the Story Title
18
Text Styling
19
Container Alignment
20
Building the Comments List
21
More Logic Extraction
22
The Comment Widget
23
Comment's FutureBuilder
24
Showing Individual COmments
25
Recursive Rendering
26
Styling the Comment List
27
Defaulting Null Values
28
Handling Deleted Comments
29
Nested Comments
30
ListTile's ContentPadding Property
31
Replacing Placeholder Characters
32
Loading Containers for Comments
33
App Wrapup
34
Last Fix!

Appendix One: Building Open Source with Dart

1
Dart Local Installation
2
Dart Install on Mac
3
Editor Setup for Dart
4
App Overview
5
Folder and File Structure
6
The PubSpec File
7
Running Dart Files
8
Program Design Methodology
9
Class Creation
10
Terminal Design
11
Terminal Implementation
12
Stdout and Stdin
13
Import Statements
14
Stdout Instance
15
More on Import Statements
16
Testing the Import Class
17
Checking Operating System
18
Clearing Windows Terminal
19
Clearing Other Terminals
20
Testing ClearScreen
21
Collecting Input Over Stdin
22
Option Class FIelds
23
Adding Dynamic Fields
24
Printing Individual Options
25
Testing Option Printing
26
List Shortcomings
27
Maps in Dart
28
Refactor to Maps
29
The Prompter Class
30
Testing the Prompter
31
Extracting the Terminal
32
Var vs Final for Variables
33
Final's Affect on Values
34
Const's Dual Nature
35
Const's Behavior by Type
36
Marking Terminal as Const
37
Private Variables
38
Finishing Prompter
39
Error Handling
40
Asking Binary Questions
41
Testing Binary Inputs
42
Code Similarities
43
Refactor for Code Reuse
44
More on Private
45
Central Lib File
46
A Single Export Point
47
A Relevant Example File
48
Outstanding Project Config
49
Uploading the Prompter Lib

Appendix Two: Building a Dart CLI

1
App Overview
2
Project Setup
3
Importing Library Code
4
Forcibly Exiting a Program
5
Prompting for File Type
6
Implementation Flow
7
Working with the Current Directory
8
Filtering Non-Files
9
Filtering Non-Images
10
Building Options from Images
11
Testing Image Selection
12
Converting Images
13
The ConvertImage Function
14
Reading File Contents
15
Encoding to JPG or PNG
16
Writing Files to the Hard Drive
17
Returning the Image Name
18
Testing Image Conversion
19
Opening the Image

Extras

1
Bonus!
Vous pouvez afficher et ru00e9viser les supports de cours indu00e9finiment, comme une chau00eene u00e0 la demande.
Absolumentu00a0! Si vous disposez d'une connexion Internet, les cours sur WeCours sont disponibles u00e0 tout moment sur n'importe quel appareil. Si vous n'avez pas de connexion Internet, certains instructeurs permettent u00e9galement u00e0 leurs u00e9tudiants de tu00e9lu00e9charger les cours. instructeur, alors assurez-vous d'u00eatre du bon cu00f4tu00e9u00a0!
4.5
4.5 sur 5
Notes4806

Détails des Notes

Étoiles 5
3132
Étoiles 4
1261
Étoiles 3
298
Étoiles 2
67
Étoiles 1
50
Garantie de remboursement de 30 jours

Inclut

31 heures de vidéo à la demande
Accès complet à vie
Accès sur le mobile et la télévision
Certificat d'achèvement

Archive

Working hours

Monday 9:30 am - 6.00 pm
Tuesday 9:30 am - 6.00 pm
Wednesday 9:30 am - 6.00 pm
Thursday 9:30 am - 6.00 pm
Friday 9:30 am - 5.00 pm
Saturday Closed
Sunday Closed