Martelos, pregos e a responsividade no Flutter

Uma ferramenta pode funcionar de forma excelente em um cenário onde o encaixe é natural, mas começar a forçar seu uso em outro contexto rapidamente revela seus limites.
Em 2019, eu mantinha um aplicativo Android nativo cujo código era dividido entre XML (interface) e Kotlin (lógica). Funcionava mas a manutenção era meio trabalhosa, visto que os IDs dos componentes precisavam ser os mesmos entre os arquivos e parte da interface podia também ser criada dinamicamente no Kotlin, tornando mais difícil de fazer mudanças.
Em 2020, durante a pandemia, conheci o Flutter. Para mim, aquilo se tornou o Santo Graal: a interface e a lógica eram definidas apenas em arquivos Dart, o código era multiplataforma e havia uma sintaxe muito familiar com linguagens que eu já havia trabalhado.
Quando consegui reescrever o aplicativo inteiro em Flutter e vi que tinha funcionado, passei a usar o framework em outros projetos pequenos e médios ao longo de 2021, sempre com ótimos resultados.
Até que, em 2022, surgiu uma oportunidade de fazer uma plataforma interna responsiva para um órgão municipal. E aí começaram os problemas.
Para adaptar layouts entre mobile e desktop, meu código começou a acumular algumas condicionais dentro do build: caso fosse mobile, criava uma lista vertical; caso fosse desktop, criava um grid. Haviam partes que precisavam ter scroll no mobile, mas serem fixas no desktop.
Com o tempo, o código ficou cheio de variações de layout, múltiplos caminhos de renderização e componentes específicos para cada breakpoint. O que deveria facilitar o desenvolvimento começou a tornar a interface mais difícil de manter.
Recentemente, conheci o Tailwind com React. O que mais me chamou atenção foi perceber que boa parte da responsividade acontecia sem condicionais explícitas no código, ao contrário do Flutter. E não apenas em responsividade, mas existe um suporte bem melhor para SEO, acessibilidade e um comportamento mais natural para aplicações web (sem parecer um aplicativo que foi forçado a ser um site).
O Flutter continua excelente para mobile e multiplataforma. Mas aprendi (do pior jeito) que, quando usamos a mesma ferramenta para todos os problemas, ela pode virar apenas um martelo tratando tudo como prego.