Eu vejo isso mais assim:
(Para qualquer uma dessas opções, sempre desenhe-a em papel ou em um quadro branco, acredite em mim, economiza tempo e frustra o código)
Prototipagem:
Use um designer de GUI, de preferência o recomendado, usado pela maioria em um idioma específico. Dessa forma, seu código não será muito confuso, onde você poderá ajustá-lo ao seu gosto (na maioria das vezes) e, além disso, como o código provavelmente será jogado fora ou alterado muito mais tarde, você não precisará perder muito tempo cedo no ciclo de desenvolvimento. O uso de um designer de GUI é bom para aplicativos GUI simples e rápidos ou para mostrar ao seu cliente uma imagem aproximada do aplicativo onde eles não precisam esperar meses apenas para ver.
Pequenos projetos:
este é um pouco complicado, dependendo do idioma e da restrição de tempo. Usar um designer de GUI aqui seria útil, mas você deve considerar limpá-lo ou criar componentes menores manualmente. Dessa forma, qualquer pessoa (ou você) teria mais facilidade para corrigir bugs e ler o código. Isso ajudará você a obter melhor controle e flexibilidade da GUI. (Também é um bom benefício de aprender enquanto você codifica)
Grandes projetos:
é quando se torna essencial criar GUIs manualmente. Projetos maiores podem se tornar complexos rapidamente e a criação de GUIs com um designer apenas torna o projeto mais complexo e mais difícil de depurar. Criar uma estrutura de GUI para seu aplicativo pode ajudar a interromper a tarefa de criar uma GUI manualmente mais fácil. O controle completo de seu aplicativo é necessário, pois ajudará na manutenção ou se você desejar adicionar recursos mais tarde (ou um cliente irritante que menciona que você perdeu um requisito lol), incorporá-los será menos frustrante e limpo.
Na minha experiência pessoal, aprender a criar GUI manualmente leva tempo e alguns exigem curvas de aprendizado difíceis (Heck, eu programa em Java e o site de tutoriais do Oracle Java o adverte contra fazer GUIs você mesmo e usar um designer), mas no final você ganha maior controle e flexibilidade de seus aplicativos, o que, por sua vez, cria aplicativos com melhor aparência. Espero que você use este um guia aproximado decente! GUIing feliz :)