Como corrigir lentidão em aplicativos Power Apps

Por Luiz Antonio Sgargeta
Como corrigir lentidão em aplicativos Power Apps

Aplicativos do Power Apps que consomem dados do SharePoint podem ficar lentos à medida que a lista cresce.
Carregamentos demorados, formulários que “travam” e telas que demoram para renderizar são sintomas comuns — e muitas vezes o problema não está no Power Apps em si, mas na forma como ele acessa os dados.

Neste artigo, você vai aprender técnicas práticas para melhorar a performance do seu aplicativo, mesmo com listas grandes.

1. Entenda o que causa lentidão

Antes de aplicar correções, é importante identificar os principais gargalos de desempenho:

CausaSintomaExemplo
Falta de delegaçãoApenas 500–2.000 registros são retornados; app precisa “baixar” tudo para filtrar localmenteFiltro usando Or, CountIf, StartsWith sem suporte delegável
Consultas repetidasA mesma lista é carregada várias vezes (em cada tela)Filter(SharePointList, …) em múltiplos controles
Imagens e anexos grandesApp demora a carregar miniaturasCampos Attachment ou Image com arquivos pesados
Fórmulas complexas no OnStartApp inicializa com múltiplos ClearCollect() e LookUp()Espera longa no carregamento
Falta de cache localDados são buscados a cada navegaçãoNenhum uso de variáveis ou coleções

2. Use coleções e variáveis para cache local

Ao abrir o app, armazene os dados que serão usados com frequência:

ClearCollect(colProtocolos, ‘Gestão de Laudos – Protocolos’);

ClearCollect(colAmostras, ‘Gestão de Laudos – Amostras’);

Dica:

  • Use Concurrent() para carregar várias listas ao mesmo tempo:

Concurrent(

    ClearCollect(colProtocolos, ‘Gestão de Laudos – Protocolos’),

    ClearCollect(colAmostras, ‘Gestão de Laudos – Amostras’)

)

  • Prefira UpdateContext ou Set para valores únicos (como usuário logado, status atual etc.).
Código Power Apps OnStart

3. Filtre sempre no servidor (delegação)

Evite fórmulas que forcem o app a processar dados localmente.
O segredo é manter o filtro “delegável”, ou seja, executado pelo SharePoint.

Correto:

Filter(‘Gestão de Laudos – Amostras’, ‘TD/Protocol ID’ = varProtocolID)

❌ Evite:

Filter(‘Gestão de Laudos – Amostras’, Text(‘TD/Protocol ID’) = Text(varProtocolID))

ou

Filter(‘Gestão de Laudos – Amostras’, StartsWith(Title, varBusca))

Use Search() apenas para pequenas coleções locais.
Confira a lista de funções delegáveis:
Delegation overview – Microsoft Learn

Código Power Apps Filter

4. Carregue dados sob demanda

Em vez de carregar todas as listas no OnStart, traga apenas o necessário:

  • Carregue listas grandes somente quando a tela for acessada (OnVisible).
  • Use paginação:
  • ClearCollect(colNext, FirstN(Skip(‘MinhaLista’, varOffset), 100))
  • Mostre um “spinner” (ícone de carregamento) com If(IsEmpty(colNext), true).
Código Power Apps Collection

5. Simplifique o OnStart

O OnStart deve conter apenas o essencial para o primeiro carregamento.
Demais dados podem ser carregados sob demanda (lazy loading).
Exemplo otimizado:

Concurrent(

   Set(varUser, User()),

   ClearCollect(colMenu, {Title:”Home”}, {Title:”Protocolos”})

)

Evite Navigate() ou SubmitForm() dentro do OnStart.

Código Power Apps OnStart

Conclusão

A lentidão no Power Apps não é inevitável — é um sinal de que seu app pode ser otimizado.
Seguindo as boas práticas de delegação, cache local, carregamento sob demanda e design leve, você pode reduzir drasticamente o tempo de resposta sem mudar a experiência do usuário.

Veja também nosso artigo sobre como evitar problemas de delegação no Power Apps e retornar mais de 2000 itens.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast