[đ§âđ»] Ătude - Bases du dĂ©veloppement dâapps Flutter 14/44 : configuration de lâenvironnement Flutter, widgets essentiels, syntaxe de base de Dart
âš RĂ©sumĂ© de Gemini 2.5 Pro ă
Cours de base sur le dĂ©veloppement dâapps Flutter DevStory - Inflearn DevStory Ce nâest pas grave si vous nâavez aucune connaissance en dĂ©veloppement ! Les bases du dĂ©veloppement dâapps Flutter accessibles aux dĂ©butants đââïžLes bases du dĂ©veloppement dâapps Flutter que mĂȘme les grands dĂ©butants peuvent apprendre[photo]En apprenant le dĂ©veloppement dâapps, vous pourrez publier dans le monde entier votre propre service dâapp, que vous nâaviez jusque-lĂ fait quâimaginer. En fait
- Original : http://blog.naver.com/hyeogikarp/223882864462
- Heure de publication Naver : 2025/05/30 11:30 KST
- CatĂ©gorie originale : Ătude du dĂ©veloppement
Original

| Cours de base sur le dĂ©veloppement dâapps Flutter | DevStory - Inflearn |
| DevStory | Ce nâest pas grave si vous nâavez aucune connaissance en dĂ©veloppement ! Les bases du dĂ©veloppement dâapps Flutter accessibles aux dĂ©butants đââïžLes bases du dĂ©veloppement dâapps Flutter que mĂȘme les grands dĂ©butants peuvent apprendre[photo]En apprenant le dĂ©veloppement dâapps, vous pourrez publier dans le monde entier votre propre service dâapp, que vous nâaviez jusque-lĂ fait quâimaginer. En fait, crĂ©er une app |
www.inflearn.com
- Quâest-ce que Flutter ?
-
Framework multiplateforme : développé par Google, il permet de développer des applications Android, iOS, Web et Desktop avec une seule base de code.
-
Utilise le langage Dart : lâUI sâĂ©crit en code.
- Concept central : tout est widget (Widget)
-
UnitĂ© de composition de lâUI : on compose lâĂ©cran en assemblant des widgets.
-
Arbre de widgets (Widget Tree) : structure hiérarchique de widgets, composée de relations parent-enfant.
-
Key ? key et super(key: key) : dans le constructeur dâun widget, Key sert Ă prĂ©server lâĂ©tat du widget et Ă le mettre Ă jour efficacement lorsque lâarbre de widgets est reconstruit. Ă ce stade, il suffit de comprendre que ce concept existe.
-
BuildContext context : objet important qui indique la position du widget actuel dans lâarbre de widgets et permet dâaccĂ©der aux donnĂ©es ou au thĂšme des widgets supĂ©rieurs. Il est utilisĂ© Ă de nombreux endroits, comme Navigator.pop(context).
-
Principales catégories de widgets :
-
StatelessWidget : widget statique sans état.
-
StatefulWidget : widget dynamique qui peut ĂȘtre redessinĂ© selon les changements dâĂ©tat. (exemple de code omis)
-
StatefulWidget : widget dynamique qui peut ĂȘtre redessinĂ© selon les changements dâĂ©tat. (exemple de code omis)
- Structure de base dâune app et principaux widgets
-
fonction main() & runApp() & MaterialApp & Scaffold :
-
home de MaterialApp : indique le premier Ă©cran de lâapplication. (ex. : home: HomePage())
-
home de MaterialApp : indique le premier Ă©cran de lâapplication. (ex. : home: HomePage())
-
PropriĂ©tĂ©s dĂ©taillĂ©es de lâAppBar :
-
Widgets de mise en page :
-
Column & Row :
-
Padding : ajoute de lâespace autour du widget enfant.
-
Padding : ajoute de lâespace autour du widget enfant.
-
Container : widget rectangulaire qui permet divers styles (taille, couleur, marge, bordure, etc.).
-
Container : widget rectangulaire qui permet divers styles (taille, couleur, marge, bordure, etc.).
-
Expanded : agrandit un widget enfant de Row ou Column pour remplir lâespace restant.
-
Expanded : agrandit un widget enfant de Row ou Column pour remplir lâespace restant.
-
SingleChildScrollView : permet le dĂ©filement lorsque le contenu du widget enfant dĂ©passe lâĂ©cran.
-
SingleChildScrollView : permet le dĂ©filement lorsque le contenu du widget enfant dĂ©passe lâĂ©cran.
-
ListView.builder : crĂ©e une liste dĂ©filante qui affiche efficacement un grand nombre dâĂ©lĂ©ments. Seuls les Ă©lĂ©ments visibles Ă lâĂ©cran sont créés.
-
ListView.builder : crĂ©e une liste dĂ©filante qui affiche efficacement un grand nombre dâĂ©lĂ©ments. Seuls les Ă©lĂ©ments visibles Ă lâĂ©cran sont créés.
-
Stack : permet de superposer des widgets (axe Z).
-
Stack : permet de superposer des widgets (axe Z).
-
AspectRatio : fixe le ratio largeur-hauteur dâun widget enfant.
-
AspectRatio : fixe le ratio largeur-hauteur dâun widget enfant.
-
double.infinity : utilisĂ© pour les propriĂ©tĂ©s width ou height dâun Container, etc., afin de remplir la taille maximale autorisĂ©e par le widget parent.
-
double.infinity : utilisĂ© pour les propriĂ©tĂ©s width ou height dâun Container, etc., afin de remplir la taille maximale autorisĂ©e par le widget parent.
-
SizedBox : utilisĂ© pour crĂ©er un espace vide dâune taille prĂ©cise ou pour dĂ©finir explicitement la taille dâun widget enfant.
-
SizedBox : utilisĂ© pour crĂ©er un espace vide dâune taille prĂ©cise ou pour dĂ©finir explicitement la taille dâun widget enfant.
-
Widgets UI de base :
-
Text & TextStyle : affiche du texte et définit son style.
-
Image.network : charge et affiche une image depuis une URL réseau.
-
Image.network : charge et affiche une image depuis une URL réseau.
-
fit: BoxFit.cover : fait remplir Ă lâimage lâespace indiquĂ© tout en conservant ses proportions. (Si lâimage est plus grande que lâespace, elle peut ĂȘtre rognĂ©e)Icon : affiche une icĂŽne Material Design.
-
fit: BoxFit.cover : fait remplir Ă lâimage lâespace indiquĂ© tout en conservant ses proportions. (Si lâimage est plus grande que lâespace, elle peut ĂȘtre rognĂ©e)
-
fit: BoxFit.cover : fait remplir Ă lâimage lâespace indiquĂ© tout en conservant ses proportions. (Si lâimage est plus grande que lâespace, elle peut ĂȘtre rognĂ©e)
-
Icon : affiche une icĂŽne Material Design.
-
DĂ©tails de TextField & InputDecoration : reçoit une saisie de texte de la part de lâutilisateur.
-
DĂ©tails de TextField & InputDecoration : reçoit une saisie de texte de la part de lâutilisateur.
-
ElevatedButton, TextButton, IconButton : différents types de widgets bouton.
-
ElevatedButton, TextButton, IconButton : différents types de widgets bouton.
-
Card : crée une UI en forme de carte Material Design. Elle possÚde une légÚre ombre et des coins arrondis.
-
Card : crée une UI en forme de carte Material Design. Elle possÚde une légÚre ombre et des coins arrondis.
-
Divider : crée une ligne de séparation visuelle.
-
Divider : crée une ligne de séparation visuelle.
-
CircleAvatar : principalement utilisé pour afficher des images circulaires, comme une image de profil utilisateur.
-
CircleAvatar : principalement utilisé pour afficher des images circulaires, comme une image de profil utilisateur.
-
Colors.black.withOpacity(0.5) : applique une opacité à une couleur. 0.0 (complÚtement transparent) ~ 1.0 (complÚtement opaque).
-
Colors.black.withOpacity(0.5) : applique une opacité à une couleur. 0.0 (complÚtement transparent) ~ 1.0 (complÚtement opaque).
-
Drawer et widgets associés :
-
Drawer : dĂ©fini dans la propriĂ©tĂ© drawer de Scaffold, câest un panneau qui glisse depuis un cĂŽtĂ© de lâĂ©cran.
-
DrawerHeader : widget utilisĂ© pour dĂ©corer la zone supĂ©rieure dâun Drawer.
-
ListTile : souvent utilisĂ© pour composer chaque Ă©lĂ©ment Ă lâintĂ©rieur dâun Drawer. Il possĂšde des propriĂ©tĂ©s comme leading, title, trailing et onTap.
-
ListTile : souvent utilisĂ© pour composer chaque Ă©lĂ©ment Ă lâintĂ©rieur dâun Drawer. Il possĂšde des propriĂ©tĂ©s comme leading, title, trailing et onTap.
-
PageView : widget qui permet de consulter plusieurs pages (Ă©crans) en les faisant dĂ©filer Ă gauche et Ă droite. (ex. : banniĂšre dâĂ©vĂ©nement)
- Bases de la navigation
- Navigator.pop(context) : utilisĂ© pour retirer lâĂ©cran actuel (route) de la pile et revenir Ă lâĂ©cran prĂ©cĂ©dent. Utile pour fermer un Drawer ou une boĂźte de dialogue.
- Manipuler les données (exemple simple)
- List<Map<String, dynamic» : composer les donnĂ©es utilisĂ©es dans ListView.builder, etc., avec des listes et des maps Dart est une mĂ©thode courante. Chaque Map contient les informations dâun Ă©lĂ©ment, et on accĂšde aux valeurs avec des clĂ©s String.
- Structure de projet et environnement de développement
-
Dossier lib : endroit oĂč lâon Ă©crit principalement le code Dart. main.dart est le fichier de dĂ©marrage par dĂ©faut.
-
Fichier pubspec.yaml : fichier qui configure les métadonnées du projet, la gestion des dépendances (bibliothÚques/packages), la version du SDK, etc.

-
VSCode : utilisé comme principal outil de développement.
-
Command Palette (Ctrl+Shift+P / Cmd+Shift+P) : exécute diverses commandes Flutter comme Flutter: New Project, Flutter: Launch Emulator, etc.

-
Raccourcis utiles : il est indispensable dâapprendre des raccourcis utiles comme lâautocomplĂ©tion (Ctrl+Space/Option+Esc), le refactoring (Ctrl+Shift+R), lâaffichage des paramĂštres (Ctrl+Option), etc. ! (pour amĂ©liorer la productivitĂ©)
-
Plus tard, je prévois de faire beaucoup de courts articles centrés sur les raccourcis VSCode.
-
ex) Comment activer le Presentation Mode dans VSCode

- Emulator : appareil mobile virtuel, utilisé pour tester une app sans appareil réel.


-
Hot Reload : reflĂšte rapidement les changements de code Ă lâĂ©cran tout en conservant en grande partie lâĂ©tat de lâapp. (icĂŽne en forme dâĂ©clair)
-
Hot Restart : rĂ©initialise lâĂ©tat de lâapp et redĂ©marre lâapp. (icĂŽne en forme de cercle)

-
analysis_options.yaml : fichier qui dĂ©finit les rĂšgles dâanalyse du code Dart. (ex. : activation/dĂ©sactivation de certaines rĂšgles de lint)
-
Par exemple, si vous essayez dâutiliser la fonction print pour afficher du texte dans la Debug Console, il fait tout un scandale en disant quâil ne faut pas lâutiliser en production.

- Comme il suffira de lâenlever en production, essayons de retirer âavoid_printâ des rĂšgles de lint. Solution 1. Ăcrire un commentaire ignore_for_file en haut du fichier dart concernĂ©.

-
Comme il suffira de lâenlever en production, essayons de retirer âavoid_printâ des rĂšgles de lint.
-
Solution 1. Ăcrire un commentaire ignore_for_file en haut du fichier dart concernĂ©.
-
Solution 2. Le traiter comme ignoré dans analysis_options.yaml à la racine du projet.

-
Solution 2. Le traiter comme ignoré dans analysis_options.yaml à la racine du projet.
-
Solution 2. Le traiter comme ignoré dans analysis_options.yaml à la racine du projet.
- MĂ©thode dâapprentissage de Flutter
-
Widget Catalog & Widget of the week : apprendre divers widgets avec le catalogue de widgets de la documentation officielle Flutter et la sĂ©rie âWidget of the weekâ.
-
Utiliser les communautés : poser des questions, répondre et progresser ensemble dans les communautés liées à Flutter (forums en ligne, chats ouverts, etc.).
-
Bien connaĂźtre la syntaxe Dart : comme Flutter utilise le langage Dart, il est important de bien comprendre la syntaxe Dart.
đ Journal
Jâavais dĂ©jĂ manipulĂ© C, C++, Java, Javascript, Python, ⊠dâinnombrables langages, et aussi divers frameworks/outils comme Spring, Vue.js, Django et FlutterFlow. MalgrĂ© cela, je me suis demandĂ© sâil nây avait pas des concepts de base que jâavais laissĂ©s passer, alors jâai commencĂ© par un cours sur les bases de Flutter.
Je pensais que câĂ©taient des concepts que je connaissais dĂ©jĂ et jâai essayĂ© de passer rapidement dessus, mais waouh, jâavais peut-ĂȘtre vraiment lĂąchĂ© le dĂ©veloppement depuis trop longtemps. Peut-ĂȘtre que mes muscles cĂ©rĂ©braux sâĂ©taient raidis ; je nâarrivais pas Ă imaginer rapidement dans ma tĂȘte comment Ă©crire le code.
Maintenant, nous sommes Ă une Ă©poque oĂč, dans VSCode, on peut coder efficacement avec lâaide dâIA comme Inline Chat(Gemini 2.5 Pro) ou Code Recommendation(GitHub Copilot), poser rapidement ses questions, trouver des rĂ©ponses et utiliser lâautocomplĂ©tion. JâespĂšre donc pouvoir restaurer plus vite mes muscles de cerveau de codeur.
Il y a encore beaucoup de chemin ! Câest parti !
Laisser un commentaire