Pare de Lutar com Bibliotecas Pesadas de Toast no React Native (Então Eu Criei a Minha Própria)
Por que parei de usar pacotes complexos e cheios de contexto para notificações e criei uma biblioteca de toast rápida, sem configuração e imperativa.
Ao construir aplicativos móveis, o feedback do usuário é tudo. Quando um usuário atualiza seu perfil, copia um link para a área de transferência ou enfrenta uma queda na rede, eles esperam uma notificação limpa e não intrusiva.
No entanto, implementar toasts no React Native muitas vezes parece excessivo. Você se vê:
- Instalando pacotes de notificações massivos que exigem envolver toda a árvore de componentes em provedores de contexto personalizados.
- Forçando desenvolvedores a passar hooks
useToast()através de componentes profundamente aninhados apenas para disparar uma mensagem simples. - Lidando com animações estremadas, que fazem o JavaScript thread hesitar quando a UI está ocupada.
Fiquei cansado do excesso. Queria algo rápido, completamente livre de contexto e macio como manteiga. Então, eu criei rn-lean-toast.
A Filosofia: Imperativa e Livre de Contexto
Por que você deveria ter que chamar um hook do React apenas para exibir uma mensagem de sucesso? Notificações são eventos temporários da UI — elas não devem depender do ciclo de vida do contexto React da árvore de componentes.
Com rn-lean-toast, você não precisa de hooks. Você simplesmente chama Toast.success() de qualquer lugar em sua base de código — seja dentro de um componente, uma camada de rede ou uma função utilitária em segundo plano.
import { Toast } from 'rn-lean-toast';
// Exiba uma notificação de sucesso instantaneamente de qualquer lugar
Toast.success('Perfil atualizado com sucesso!');
// Ou dispare uma notificação de erro na parte inferior da tela
Toast.error('Requisição de rede falhou. Tente novamente.', { position: 'bottom' });O que rn-lean-toast Oferece
- API Sem Configuração: Nenhuma necessidade de hooks (
useToast) na chamada. Dispare notificações diretamente de interceptores Axios, Redux thunks ou funções auxiliares. - Posicionamento Flexível: Envie notificações para o topo ou a parte inferior da tela dependendo das necessidades do seu layout.
- Animações Nativas em 60fps: Totalmente alimentadas por
useNativeDriver: true, garantindo que suas notificações nunca tremam mesmo sob carregamento pesado da thread JavaScript. - Consciente da Área Segura: Calcula automaticamente as dimensões do status bar e notch para que suas notificações nunca sejam cortadas na Dynamic Island ou barras do sistema Android.
- Ultra Leve: Zero dependências externas (apenas peer-depends em
react-native-safe-area-context).
Guia Rápido de Início
1. Instalação
Instale o pacote junto com sua dependência peer:
npm install rn-lean-toast react-native-safe-area-context
# ou
yarn add rn-lean-toast react-native-safe-area-context2. Monte o Host na Raiz do Seu Aplicativo
Drope a uma vez no nível raiz do seu aplicativo, diretamente dentro de seu SafeAreaProvider:
import React from 'react';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import { ToastHost } from 'rn-lean-toast';
import MainApp from './MainApp';
export default function App() {
return (
<SafeAreaProvider style={{ flex: 1 }}>
<MainApp />
{/* Mount global toast host */}
<ToastHost />
</SafeAreaProvider>
);
}3. Disparar Toasts em Qualquer Lugar
import { Toast } from 'rn-lean-toast';
const handleDataSave = async () => {
try {
await api.saveChanges();
Toast.success('Alterações salvas com sucesso!');
} catch (err) {
Toast.error('Falha ao salvar alterações. Por favor, tente novamente.');
}
};Comece Hoje
Limpe sua lógica de notificações, descarte os wrappers de contexto pesados e forneça loops de feedback rápidos para seus usuários.
Código feliz!

