En aquest tema, explorarem els widgets de disseny en Flutter, que són fonamentals per crear interfícies d'usuari atractives i funcionals. Els widgets de disseny ens permeten organitzar i disposar altres widgets en la pantalla de manera flexible i eficient.
Objectius d'Aprenentatge
Al final d'aquest tema, hauràs après:
- Què són els widgets de disseny en Flutter.
- Com utilitzar els widgets de disseny més comuns.
- Com combinar diversos widgets de disseny per crear interfícies complexes.
Què són els Widgets de Disseny?
Els widgets de disseny (layout widgets) són components que ajuden a organitzar altres widgets en la pantalla. Aquests widgets no tenen una aparença visual pròpia, sinó que controlen com es disposen els seus fills.
Widgets de Disseny Comuns
- Container
El widget Container és un dels més versàtils en Flutter. Pot contenir un sol fill i permet aplicar marges, farcits, dimensions, decoracions, etc.
Container(
margin: EdgeInsets.all(10.0),
padding: EdgeInsets.all(20.0),
width: 200.0,
height: 200.0,
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(10.0),
),
child: Text('Hola, món!'),
)
- Row i Column
Els widgets Row i Column s'utilitzen per disposar widgets en una fila o columna respectivament.
Row
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Icon(Icons.star, color: Colors.red),
Icon(Icons.star, color: Colors.green),
Icon(Icons.star, color: Colors.blue),
],
)Column
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Primer text'),
Text('Segon text'),
Text('Tercer text'),
],
)
- Stack
El widget Stack permet superposar widgets uns sobre els altres.
Stack(
children: <Widget>[
Container(
width: 200.0,
height: 200.0,
color: Colors.red,
),
Positioned(
top: 50.0,
left: 50.0,
child: Container(
width: 100.0,
height: 100.0,
color: Colors.blue,
),
),
],
)
- ListView
El widget ListView s'utilitza per crear llistes desplaçables.
ListView(
children: <Widget>[
ListTile(
leading: Icon(Icons.map),
title: Text('Mapa'),
),
ListTile(
leading: Icon(Icons.photo_album),
title: Text('Àlbum de fotos'),
),
ListTile(
leading: Icon(Icons.phone),
title: Text('Telèfon'),
),
],
)Exercicis Pràctics
Exercici 1: Crear una Interfície Simple amb Row i Column
Crea una interfície que mostri tres icones en una fila i tres textos en una columna.
Solució
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Icon(Icons.star, color: Colors.red),
Icon(Icons.star, color: Colors.green),
Icon(Icons.star, color: Colors.blue),
],
),
SizedBox(height: 20.0),
Text('Primer text'),
Text('Segon text'),
Text('Tercer text'),
],
)Exercici 2: Crear una Interfície amb Stack
Crea una interfície que mostri un quadrat vermell amb un quadrat blau superposat a la part superior esquerra.
Solució
Stack(
children: <Widget>[
Container(
width: 200.0,
height: 200.0,
color: Colors.red,
),
Positioned(
top: 50.0,
left: 50.0,
child: Container(
width: 100.0,
height: 100.0,
color: Colors.blue,
),
),
],
)Resum
En aquest tema, hem après sobre els widgets de disseny en Flutter, incloent Container, Row, Column, Stack i ListView. Aquests widgets són essencials per crear interfícies d'usuari ben organitzades i atractives. Hem vist exemples pràctics de com utilitzar aquests widgets i hem realitzat exercicis per reforçar els conceptes apresos.
En el següent tema, explorarem els widgets d'entrada i formulari, que ens permetran interactuar amb els usuaris i recollir dades.
Curs de Desenvolupament Flutter
Mòdul 1: Introducció a Flutter
- Què és Flutter?
- Configuració de l'Entorn de Desenvolupament
- Comprensió de l'Arquitectura de Flutter
- Creació de la Teva Primera Aplicació Flutter
Mòdul 2: Conceptes Bàsics de Programació en Dart
- Introducció a Dart
- Variables i Tipus de Dades
- Sentències de Flux de Control
- Funcions i Mètodes
- Programació Orientada a Objectes en Dart
Mòdul 3: Widgets de Flutter
- Introducció als Widgets
- Widgets Stateless vs Stateful
- Widgets Bàsics
- Widgets de Disseny
- Widgets d'Entrada i Formulari
Mòdul 4: Gestió de l'Estat
Mòdul 5: Navegació i Enrutament
- Introducció a la Navegació
- Navegació Bàsica
- Rutes Nomenades
- Passar Dades Entre Pantalles
- Deep Linking
Mòdul 6: Xarxes i APIs
- Obtenir Dades d'Internet
- Analitzar Dades JSON
- Gestió d'Errors de Xarxa
- Ús d'APIs REST
- Integració de GraphQL
Mòdul 7: Persistència i Emmagatzematge
- Introducció a la Persistència
- Preferències Compartides
- Emmagatzematge de Fitxers
- Base de Dades SQLite
- Ús de Hive per a l'Emmagatzematge Local
Mòdul 8: Conceptes Avançats de Flutter
- Animacions en Flutter
- Pintura Personalitzada i Canvas
- Canals de Plataforma
- Isolates i Concurrència
- Optimització del Rendiment
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries
- Proves de Widgets
- Proves d'Integració
- Tècniques de Depuració
Mòdul 10: Desplegament i Manteniment
- Preparació per al Llançament
- Construcció per a iOS
- Construcció per a Android
- Integració i Desplegament Continu (CI/CD)
- Manteniment i Actualització de la Teva Aplicació
