Criando Animação de Carregamento com Reanimated e Lottie no React Native

Implementar a funcionalidade Load More em aplicativos React Native pode melhorar significativamente a experiência do usuário, permitindo que os usuários carreguem dados adicionais de forma contínua enquanto navegam. Este artigo explora como adicionar uma animação de Load More para buscar dados extras quando o usuário rola até o final da lista, utilizando uma abordagem paginada que carrega um número fixo de itens inicialmente e busca mais conforme necessário.

Configuração Inicial e Manipulação de Dados

O primeiro passo é configurar o estado e a manipulação de dados. Importe o dataset e defina as variáveis de estado necessárias. Isso inclui o uso de useState e useCallback do React para gerenciar o estado de carregamento, o número da página e os itens exibidos.

A constante PAGE_SIZE define quantos itens são carregados por página. A função onRefresh é utilizada para atualizar a lista quando o usuário realiza um gesto de “puxar para atualizar”. Essa função redefine a página para 1 e carrega os primeiros itens do dataset.

A função loadMoreData é responsável por buscar mais dados quando o usuário atinge o final da lista. Ela verifica se já está carregando mais dados para evitar requisições duplicadas e, em seguida, incrementa o número da página e carrega os novos dados.

Este processo garante que a aplicação React Native possa exibir grandes quantidades de dados de forma eficiente, sem sobrecarregar a interface do usuário. A combinação de paginação e atualização sob demanda proporciona uma experiência de navegação suave e responsiva.

Implementando a Lista com FlatList

A FlatList do React Native é utilizada para renderizar a lista de itens. É importante configurar corretamente as propriedades como data, renderItem, onEndReached e onEndReachedThreshold. A propriedade data recebe os itens a serem exibidos, enquanto renderItem define como cada item será renderizado.

A propriedade onEndReached é acionada quando o usuário atinge o final da lista, chamando a função loadMoreData para buscar mais itens. A propriedade onEndReachedThreshold define a distância do final da lista (em proporção) que o usuário deve estar para que a função onEndReached seja chamada. Por exemplo, um valor de 0.5 significa que a função será chamada quando o usuário estiver a 50% do final da lista.

O componente ListFooterComponent é utilizado para exibir uma animação de carregamento enquanto os novos dados são buscados. Neste caso, é utilizado o LottieView para exibir uma animação Lottie que indica que a aplicação está buscando mais dados.

Para quem busca entender mais sobre como otimizar o desempenho em aplicações mobile, é fundamental explorar análises de hardwares e componentes que podem influenciar diretamente na performance, garantindo que o aplicativo funcione de forma eficiente.

Adicionando a Animação de Load More em React Native

Para adicionar a animação de Load More, utilize o componente LottieView da biblioteca lottie-react-native. Este componente permite exibir animações vetoriais criadas com o Adobe After Effects e exportadas no formato JSON. Certifique-se de instalar a biblioteca corretamente e importar o arquivo JSON da animação.

Dentro do componente ListFooterComponent da FlatList, condicionalmente renderize o LottieView apenas quando isLoadingMore for verdadeiro. Isso garante que a animação seja exibida somente quando a aplicação estiver buscando mais dados.

Ajuste as propriedades do LottieView, como source, autoPlay, loop e speed, para personalizar a animação. A propriedade source recebe o arquivo JSON da animação, autoPlay inicia a animação automaticamente, loop faz com que a animação repita continuamente e speed ajusta a velocidade da animação.

Além disso, você pode complementar sua experiência com aplicativos que adicionam um toque de magia ao seu dia a dia, trazendo mais interatividade e diversão para o uso do seu dispositivo.

Otimização e Considerações Finais

Para otimizar a implementação, considere o uso de um debounce na função loadMoreData para evitar chamadas excessivas à API quando o usuário rola rapidamente para o final da lista. Isso pode ser feito utilizando bibliotecas como lodash ou implementando a lógica manualmente.

Além disso, é importante tratar os casos em que não há mais dados a serem carregados. Isso pode ser feito verificando se a quantidade de dados retornada pela API é menor do que o PAGE_SIZE e, nesse caso, não exibir mais a animação de Load More.

Implementar a funcionalidade de Load More com animação melhora a experiência do usuário, proporcionando uma interface moderna e agradável. A combinação de paginação e carregamento sob demanda garante que a aplicação possa lidar com grandes conjuntos de dados de forma eficiente. Para aprimorar ainda mais a experiência do usuário, é sempre bom estar atento às últimas atualizações e melhorias, como as implementadas no Xiaomi HyperOS, que trazem um redesign visual significativo.

Este conteúdo foi auxiliado por Inteligência Artificiado, mas escrito e revisado por um humano.
Via dev.to

Leave a Comment