Olá Andre.
Esse lançamento do UnimplementedError é normal, isso acontece por que agora o Flutter está usando o Dart null safety, a tipificação ficou mais forte e burocrática.
O método build não pode retornar nulo, e com o null safety implementado no Flutter o seu editor de código irá mostrar erro se tiver retornando null, então para (meio que) burlar isso, quando é implementando os métodos herdados automaticamente o editor já adicionar um código de lançamento de error, pois o método ainda não foi codificado por você e ele não pode ser nulo. (se você verificar encima do código de lançamento, tem um comentário informando para você implementar o build).
Resumindo tudo, é só deletar o throw e construir seu widget normalmente:
/// Antes
@override
Widget build(BuildContext context) {
// TODO: implement build
throw UnimplementedError();
}
/// Depois
@override
Widget build(BuildContext context) {
// Meu código
return Scaffold(
appBar: AppBar(
title: const Text("Meu app")
),
body: const Center(
child: Text("Olá, Mundo!"),
),
);
}