Bom dia Airon! Desculpe a demora c:
Adorei sua duvida, na verdade esse tema é muuuito importante pra quem está querendo se aprofundar na criação de projetos.
é o seguinte:
O Ideal é você começar fazendo os models, os services e controllers ( a parte lógica do seu projeto ), e só depois implementar a parte visual.
Mas Kako, então porque vocês ensinam a iniciar um projeto criando a tela primeiro?
Por questões de didática! Aprender o Flutter pensando em telas é naturalmente mais leve e confortavel pra quem está no inicio do caminho, com o tempo e com experiencia o dev. começa a desenvolver os projetos pensando na logica primeiro e depois nas camadas menos importantes ( conceitos de clean archtecture que vamos ver nos cursos la na frente ainda )
E quanto aos testes?
Quando você está iniciando um projeto do zero e já está pensando em aplicar testes ( inclusive, ta de parabens pelo pensamento, é algo para devs avançados ), existem algumas opções:
TDD ( Test Driven Development ) -> Cria o teste antes de implementar a feature (tela, model, etc)
ou o BDD ( Behavior Driven Development ) -> cria a feature( tela, model, etc) e depois implementa o teste
No nosso curso de testes nós nao abordamos esses conceitos ainda, pois são um pouco avançados e o aluno precisa entender alguns conceitos essenciais (gerenciamento de estado) antes de seguir em frente em testes mais complexos e tecnicas como TDD ou DBB.
( vou te dar um spoiler até: o proximo curso meu de Flutter é justamente sobre isso!)