🧩 Evitar repetir a mesma estrutura
Se varias partes da pantalla teñen a mesma estrutura, podemos crear un widget propio. Así escribimos o deseño unha vez e pasamos os datos mediante parámetros.
Xa coñecemos esta idea de Dart: unha clase, atributos final e un construtor con parámetros nomeados. En Flutter engadimos build, que devolve o widget que describe a interface.
🧪 Unha tarxeta para cada profesor
TarxetaProfesor recibe o nome e o cargo. required obriga a indicar ambos valores ao creala.
Card proporciona o fondo dunha tarxeta e ListTile organiza o seu contido. A lista exterior permite desprazarse se non caben todas.
🔗 DartPad:
Non precisamos StatefulWidget só por recibir datos. Este widget describe a tarxeta a partir dos valores que recibe. No Tema 3.3 veremos como reaccionar a cambios e como comunicar accións ao pai con callbacks.

🗂️ Separar o widget nun ficheiro
Ao medrar a aplicación, podemos mover a clase TarxetaProfesor a lib/widgets/tarxeta_profesor.dart, co seu import de Material. En main.dart, importámola así:
// Ruta relativa desde lib/main.dart.
import 'widgets/tarxeta_profesor.dart';
En VS Code tamén podes usar Extract Widget para extraer unha parte da interface e despois darlle un nome claro.
📚 Consulta: