Lo veo más así:
(Para cualquiera de estas opciones, dibuje siempre en papel o en una pizarra, créame, ahorra tiempo y frustra el código)
Creación de prototipos:
utilice un diseñador de GUI, preferiblemente uno recomendado por la mayoría en un idioma en particular. De esa manera, su código no será demasiado confuso donde pueda modificarlo a su gusto (la mayoría de las veces) y además, dado que el código probablemente se desechará o cambiará mucho más adelante, no tendrá que perder demasiado tiempo temprano en el ciclo de desarrollo. El uso de un diseñador de GUI es bueno para aplicaciones de GUI rápidas y simples o para mostrarle a su cliente una imagen aproximada de la aplicación donde no tienen que esperar meses solo para ver.
Pequeños proyectos:
este es un poco una mezcla, dependiendo del idioma y la restricción de tiempo. Usar un diseñador de GUI aquí sería útil, pero debería considerar limpiarlo después o crear componentes más pequeños manualmente. De esa manera, cualquier otra persona (o usted) tendría más facilidad para corregir errores y leer el código. Esto lo ayudará a obtener un mejor control y flexibilidad de la GUI. (También un buen beneficio de aprender mientras codifica)
Proyectos grandes:
es cuando se vuelve esencial para crear GUI manualmente. Los proyectos más grandes pueden volverse complejos rápidamente y crear GUI con un diseñador solo hace que el proyecto sea más complejo y más difícil de depurar. Crear un marco de GUI para su aplicación puede ayudar a romper la tarea de crear una GUI manualmente más fácil. Es necesario un control completo de su aplicación, ya que ayudará con el mantenimiento o si desea agregar funciones más tarde (o un cliente molesto que menciona que perdió un requisito jajaja), incorporarlas será menos frustrante y más limpio.
En mi experiencia personal, aprender a crear GUI manualmente lleva tiempo y algunas requieren curvas de aprendizaje difíciles (Heck, programo en Java y el sitio de tutoriales de Oracle Java le advierte contra hacer GUI usted mismo y usar un diseñador), pero al final gana mayor control y flexibilidad de sus aplicaciones, lo que a su vez crea mejores aplicaciones. ¡Espero que uses esta guía aproximada decente! Feliz GUIing :)