Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.1.1

nil

Um widget simples para adicionar na árvore de widgets quando você quiser mostrar nada, com impacto mínimo no desempenho.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
9,5 mil
Curtidas
324
Pontos Pub
140

Instalar pacote

flutter pub add nil

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote nil fornece um widget mínimo e otimizado para desempenho que não renderiza nada quando incluído na árvore de widgets. Foi projetado para cenários em que você precisa de um espaço reservado ou widget condicional que não contribui para o custo de layout ou renderização. Diferentemente de SizedBox.shrink() ou Container(), o nil não tem impacto algum no desempenho da árvore de widgets e é ideal para lógica de IU dinâmica onde as condições de visibilidade são tratadas externamente. É leve e seguro para uso em interfaces complexas ou frequentemente atualizadas.

Casos de uso

  • Renderização condicional sem saída visual
  • Substituindo contêineres vazios em layouts dinâmicos
  • Otimizando o desempenho em árvores de widgets grandes
  • Simplificando verificações de nulo na composição de widget
  • Evite cálculos de layout desnecessários

Principais recursos

  • Custo zero de renderização
  • Sem impacto no layout
  • Péssimo uso de memória
  • API simples
  • Seguro para atualizações frequentes

Indicado para

  • Desenvolvedores otimizando o desempenho da interface do usuário
  • Construtores de interfaces dinâmicas ou condicionais
  • Equipes que priorizam o menor overhead
  • Aplicativos com árvores de widgets complexas ou aninhadas
  • Aqueles que buscam uma alternativa limpa aos widgets vazios

Considerações

  • Não adequado para conteúdo visível
  • Não suporta widgets filhos
  • Único útil quando intencionalmente renderizar nada
  • Não necessário se usar construções internas seguras contra nulos
  • Melhor usado em conjunto com lógica condicional

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Build Pub Codecov

nil

A simple widget to add in the widget tree when you want to show nothing, with minimal impact on performance.

Why?

Sometimes, according to a condition, we want to display nothing. Usually when we can't return null, we would return something like const SizedBox() for example.

This is good, but it has some performance impacts since SizedBox creates a RenderObject. The RenderObject lives in the render tree and some computations are performed on it, even if it paints nothing on the screen.

We can do better, we can have a widget which does not create a RenderObject, while being still valid. The Nil widget is the minimal implementation for this use case. It only creates an Element and does nothing while it's building. Because the optimal way to use it, is to call const Nil(), it also comes with a nil constant that you can use everywhere (which is a const Nil()).

Usage

import 'package:nil/nil.dart';

return Builder(
  builder: (_) {
    if (condition) {
      return const MyWidget();
    } else {
      return nil;
    }
  },
);

Warning

This widget is not intended to be used in widgets accepting multiple children (e.g. Rows, Columns, etc.). The best option is to not add a widget in the list if you don't want it to be displayed. Moreover using a Nil widget in such a case, can have unexpected results.

Sponsoring

I'm working on my packages on my free-time, but I don't have as much time as I would. If this package or any other package I created is helping you, please consider to sponsor me so that I can take time to read the issues, fix bugs, merge pull requests and add features to these packages.

Contributions

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a feature, please send a pull request.

Categorias

Repositório-fonte

Projetos que usam este pacote