Visão geral
Reflectable fornece recursos de reflexão no Dart por meio da geração de código, permitindo inspeção e manipulação em tempo de execução de tipos, campos, métodos e construtores. Em vez de depender da reflexão embutida (que é limitada no Flutter), ele usa 'capacidades' para definir exatamente quais operações reflexivas são suportadas para classes específicas. Essa abordagem garante desempenho e compatibilidade entre plataformas como Android, iOS, Web, macOS, Windows e Linux. É ideal para frameworks e bibliotecas que precisam de comportamento dinâmico sem sacrificar a árvore de remoção ou o desempenho.
Casos de uso
- Serialização/desserialização dinâmica
- Inspeção de tipo em tempo de execução
- Desenvolvimento de framework genérico
- Geração de código para APIs
- Extensibilidade de plug-in e biblioteca
Principais recursos
- reflexão gerada por código
- Controle de operação baseado em capacidade
- Suporte multiplataforma
- Sobrecarga mínima de tempo de execução
- Integração com o build_runner
- Suporta campos, métodos e construtores
Indicado para
- Desenvolvedores de framework
- Autores da biblioteca
- Ferramentas que exigem manipulação de tipo dinâmico
- Aplicativos que usam geração de código
- aplicações sensíveis ao desempenho
Considerações
- Requer build_runner e geração de código
- Limitado a capacidades declaradas explicitamente
- Não adequado para reflexão somente em tempo de execução
- Requer configuração cuidadosa de anotações reflectable
- Pode aumentar levemente o tempo de compilação