Académique Documents
Professionnel Documents
Culture Documents
Plus de configurations
- Si vous utilisez un émulateur, veuillez alors le paramétrer comme indiquer
dans l’annexe du TP1
- Si vous avez des problèmes avec l’utilisation d’un appareil physique ou
virtuel pour tester, utiliser alors le navigateur chrome. Il suffit d’exécuter
dans la CMD la commande flutter config –enable-web
- Lorsque vous copiez et coller du code dans votre application, les retraits de
ligne peuvent présenter un décalage, pour le corriger effectuez un clic droit
Help sur le code Dart et sélectionnez Reformat Code with dartfmt (Reformater le
code avec dartfmt).
Rappel
Voir la documentation en ligne de Flutter (https://docs.flutter.dev/
Flutter est un Framework basé sur Dart, il crée ses interfaces graphiques (ou Widgets) par
) Accéder au document Aide Mémoire Widgets Flutter
composition de plusieurs Widgets sous la forme d’un arbre. Chaque Widget est un objet créé par
l’intermédiaire d’un constructeur avec arguments nommés.
Page 1 sur
Développement Mobile LGLSI 3
Exercice 1 : MaterialApp
r iOS). Dans nos TP, nous allons adopter le style Material Design. Ainsi, les interfaces graphiques à créer doivent adopter c
import « tp1»
1. Créer un nouveau projet Flutter que vous nommez
2. Accéder au fichier « lib/main.dart » et effacer tout son contenu et le remplacer par le code ci-
après :
import 'package:flutter/material.dart';
// Defining class representing the interface to create class FirstUI extends Statel
@override
NB
● la fonction main lance l’exécution de votre application en appelant la fonction runApp
● runApp( …. ) prend en argument un objet Correspondant au Widget à créer (il peut être un
Widget prédéfinit ou un widget que vous créez)
3. Exécuter le code obtenu, remarquez que vous obtenez une fenêtre noire. Vous devez alors
configurer MaterialApp afin d’avoir l’interface que vous souhaiterez.
Pour exécuter le code obtenu, veuillez lancer d’abord un émulateur ou sélectionner un appareil
physique réel puis lancer l’exécution :
Page 2 sur
Développement Mobile LGLSI 3
Agenda :
(a) Sélection d’un émulateur ou d’un appareil réel. (b)Si aucun appareil n’apparaît, cliquez sur rafraîchir ou bie
sélectionner le fichier contenant la fonction main() qui lance l’exécution de l’application
bouton d’exécution
bouton de Hot Reload
Page 3 sur
Développement Mobile LGLSI 3
5. Afin de modifier le thème des couleurs de votre application, veuillez ajouter la propriété theme
à votre MaterialApp comme dans cet exemple :
theme : ThemeData( primarySwatch: Colors.amber)
Exercice 2 : Scaffold
Afin d’améliorer notre affichage, nous allons intégrer notre texte au sein du widget Scaffold.
Scaffold : est un Widget issu de la bibliothèque Material, fournit une barre
d'application par défaut, un titre et un corps qui contient l'arborescence de widgets
de l'écran d'accueil
Center : un Widget permet de centrer son Widget fils
Code Affichage
home:
Scaffold(
body: Center(child:Text('EX1
Flutter'))
)
2. Ajouter un peu de style à votre text : remplacer alors Text('EX1 Flutter') par :
Nous allonsFlutter',
3. Text('EX1 maintenant configurer la barre de l’application à travers le widget Scaffold afin
d’obtenir l’apparence
style: suivante :
TextStyle(
fontSize: 30,
fontWeight: FontWeight.bold)
)
)
leading title actions
Page 4 sur
Développement Mobile LGLSI 3
Vous devez alors rajouter l’attribut appBar à Scaffold et le paramétrer comme demandé :
Scaffold(
appBar: AppBar(
title: Text('Barre'),
leading: Icon(Icons.arrow_back_sharp), actions: [
Icon(Icons.add_shopping_cart), Icon(Icons.email), Icon(Icons.phone)
]),
body: Center(
child: Text( 'EX1 Flutter',
style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold),
)) //Afficher un texte,
)
1. Créer un nouveau dossier : click droit sur le nom du projet -- New – Directory puis l’appeler
« images »
2. Y ajouter une image de votre choix, par exemple l’image «pokemon.jpg»
3. Ouvrir le fichier « pubspec.yaml » et # assets:
# -
chercher le bout de code contenant images/a_dot_burr.jpeg #
Page 5 sur
Développement Mobile LGLSI 3
body:Center(child: Image.asset('images/pokemon.jpg'))
Exercice 4 : Widget Column
Maintenant nous voulons afficher du texte « Favorite Cartoon » avant l’image. Pour atteindre cet
objectif nous devons utiliser le Widget Column qui acceptera plusieurs Widgets à positionner
verticalement.
Code Résultat
body:
Column(
children:[
Text('FavoriteCartoon'),
Image.asset("images/pokemon.jpg")
]
)
Page 6 sur
Développement LGLSI
Pour ajouter un peu de style au text Favorite Cartoons ( padding, margin, …), utilisez le widget
Container et y inclure le widget Text à styler.
Text("Favorite Cartoon") Remplacé par
Container(
child: Text('Favorite Cartoons',
style:
TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), padding: EdgeInsets.all(20),
margin: EdgeInsets.all(30), decoration: new BoxDecoration(
color: Colors.grey.shade200, borderRadius: BorderRadius.all( Radius.circular(5))
)
), //fin Container
Pour afficher la colonne Centré, nous allons l’intégrer dans un Widget Center.
Structure générale du code Résultat
body:
Center(child:Column(children:
[….]
))
Notre code devient de plus en plus complexe. Nous allons avoir recours donc à
le séparer dans divers fichiers.
1) Créer sous le dossier « lib » un nouveau fichier dart que vous appelez « FirstUI ».
2) Déplacer la classe « FirstUI» du fichier « main.dart » vers le fichier « FirstUI» et ne pas
oublier d’ajouter import 'package:flutter/material.dart'; au début du fichier
3) Dans le fichier « main.dart » ajouter l’import de cette class
Page 7 sur
Développement LGLSI
Image.asset("images/pokemon.jpg")
,
Row(
//diviser l'espace vide dans la ligne entre les boutons
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
//code pour le premier bouton
ElevatedButton(onPressed:() {}, child: Text('Sign Up')),
//code pour le deuxième bouton
ElevatedButton(onPressed:() {}, child: Text('Sign In'))
]
)
]))
Card : c’est un Widget utilisé pour représenter toutes les informations similaires dans un seul bloc.
Lors de la conception d'une carte, nous pouvons utiliser des éléments tels que du texte, des images,
des vidéos, des boutons de texte, etc.
Le lien [https://codesinsider.com/flutter-card-example-tutorial/ ] pourra vous aider.
Travail : Créer un nouveau fichier dart
« ThirdUI » et y inclure le code suivant pour
créer une simple Carte que vous devez la
terminer pour avoir l’apparence suivante
Page 8 sur
Développement LGLSI
import 'package:flutter/material.dart';
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround ,
children: [
// Code à terminer
],
)
)
),
);
}
Questions
1/ Quel Widget devez-vous utiliser afin de pouvoir placer des éléments sur une même ligne ?
2/ Qu’est ce que vous devez utiliser pour ajouter une mise en forme complexe (du padding, margin
et couleur ..) à un Widget.
Page 9 sur