[Github PR] - Twitter UI Clone Bug fix

Minha “primeira” aventura Flutter

A título de curiosidade baixei um repo para entender mais sobre Flutter.

Navegando encontrei esse post no medium
Flutter: let’s know the ScrollController and ScrollNotification

Estava procurando especificamente sobre como controlar a scrollview para emitir eventos enquanto o usuário estivesse scrollando a tela.

Para minha grata surpresa, o repo além de ter o que eu procurava, encontrei um clone do Twitter, especificamente a UI da page de perfil, com efeitos e tudo.

Ao tentar incluir em um projeto notei um bug ao scrollar as tabs do projeto original.

Quando eu scrollava as tabs o avatar iniciava a animação, porém, não deveria acontecer isso.

Problema:

Esse bug me fez quase desistir da UI que antes considerei perfeita para o que estava criando para estudos.

Mas como o Flutter é um toolkit desafiador e o Dart é intuitivo e simples, pensei: Porque não tentar arrumar isso?!

Com algum tempo procurando o problema e imprimindo tudo que poderia de logs, identifiquei que a animação do avatar estava sendo iniciado com QUALQUER scroll na tela, mais especificamente falando do header.

Encontrei a propriedade scrollNotification.metrics.axisDirection que identificava se o scroll era vertical(top->bottom or bottom->top) ou horizontal(left->right or right->left) e com isso consegui controlar quando a animação iniciaria ou não.

Solução:

O pull request desse ajuste foi enviado para o repo original e espero que ajude outras pessoas.
Link para o pull request

Obs.: essa foi a minha primeira contribuição com a comunidade open source. =D


Informações importantes para quem quer entrar para o mundo Flutter:

Temos uma mega comunidade no Brasil que fez agora no fim de agosto o evento Flutter Talks, onde conheci o git em questão, comentado acima. O Diego Velasquez mostrou as diferenças entre Provider e Bloc, além dele tiveram muitas outras talks sobre todos os assuntos possíveis de Flutter.

A comunidade tem muito conteúdo de flutter. Recomendo acesso ao grupo e todo conteúdo oferecido por eles. Vale a pena!

Telegram da Comunidade Flutterando