mosaic_grid
Grids lazy em Flutter cujos tiles se dimensionam sozinhos: linhas que crescem até o card mais alto, masonry, tiles de várias colunas, paginação e jump-to-item.

// Visão geral
Grids lazy em Flutter cujos tiles escolhem a própria altura: linhas alinhadas pelo card mais alto, masonry, tiles que ocupam várias colunas, paginação e jump-to-item — num widget só, sem dependências além do Flutter.
// O desafio
O GridView dá a mesma altura a todo tile: você escolhe um childAspectRatio ou um mainAxisExtent, e o que não couber é cortado. Card real não tem altura fixa — um nome mais longo, um selo de promoção ou uma fonte de sistema maior, e a proporção que funcionava ontem estoura hoje.
// Decisões de engenharia
O tile escolhe a altura
- Escolha
- cada tile recebe a largura da coluna e decide a própria altura; cada linha tem a altura do seu tile mais alto.
- Por quê
- card real não tem altura fixa — a proporção que servia ontem estoura hoje.
- Trade-off
- o layout precisa medir cada tile antes de posicioná-lo.
// A solução
O MosaicGrid dá a cada tile a largura da coluna e deixa que ele escolha a altura. Nas linhas, cada linha tem a altura do seu tile mais alto; no masonry, cada tile cai na coluna mais curta. Colunas responsivas resolvidas pelo espaço real (funciona em painéis divididos), jumpToIndex exato mesmo para itens que nunca estiveram na tela, onEndReached para paginação e posições gravadas com precisão, para a rolagem nunca pular ao voltar.
Meu papel
Autor e mantenedor — layout, controller, 50 testes, app de exemplo com playground, CI e pipeline de release, publicado no pub.dev sob o publisher verificado devfrs.com.
Tecnologias
// Telas




// Resultado e evidências
Publicado com nota máxima no pub.dev (160/160), pronto para WASM e para Android, iOS, web, Windows, macOS e Linux.
- testes de layout e paginação
- 50