Otimizar aplicativos de tela

Concluído

As duas abordagens principais para o desenvolvimento são a imperativa e a declarativa. O desenvolvimento imperativo se concentra em como atingir uma meta, enquanto o desenvolvimento declarativo se concentra na especificação do resultado desejado. O desenvolvimento imperativo oferece mais flexibilidade porque permite controle sobre cada etapa do processo, mas geralmente exige mais código e complexidade. O desenvolvimento declarativo é mais simples e fácil de usar, mas pode não oferecer o mesmo nível de controle.

Os aplicativos de tela interpretam o seu "o quê" declarativo e cuidam da otimização do "como". Em determinadas situações, pode ser difícil expressar exatamente o resultado desejado de forma declarativa, por isso, o Power Apps permite o uso de técnicas imperativas. Um erro comum é usar o desenvolvimento imperativo quando as opções declarativas seriam mais simples e teriam um desempenho melhor.

Os aplicativos de tela podem ser visualmente atraentes, mas o desempenho tem um impacto maior na adoção do usuário.

Para obter mais informações sobre o desenvolvimento imperativo e declarativo, consulte Usar técnicas de desenvolvimento imperativo para aplicativos de tela no Power Apps.

As seções a seguir explicam as técnicas para otimizar o desempenho do aplicativo de tela.

Transferir a lógica para componentes do lado do servidor

À medida que as fórmulas do aplicativo aumentam em tamanho e complexidade, considere transferir a lógica para outros serviços do Microsoft Power Platform ou serviços do lado do servidor. A lógica pode ser tratada por fluxos da nuvem, regras de negócios, plug-ins do Microsoft Power Automate ou outros recursos do lado do servidor no Dataverse.

Observação

Uma técnica comum é transferir a lógica para um fluxo da nuvem do Power Automate que use o gatilho do Power Apps. O fluxo pode ser chamado de uma expressão do Power Apps, que passa dados para o fluxo e retorna um resultado.

Você também pode criar conectores personalizados para o Microsoft Azure Functions ou outros serviços de lógica. Se o desenvolvimento imperativo estiver sendo usado em um aplicativo, avalie se a lógica seria mais apropriada em outro lugar.

Melhorar o desempenho do aplicativo

Os desafios comuns de desempenho incluem:

  • Acesso a dados: os aplicativos recuperam grandes conjuntos de dados em coleções e executam operações do lado do cliente, como Unir, Classificar, Adicionar Coluna e Agrupar por.
  • Fórmulas em OnStart: os aplicativos disparam chamadas de dados desnecessárias na inicialização, retornando registros grandes.
  • Recuperação de dados repetidos: use a função Set para armazenar dados de tabelas de pesquisa em cache localmente.

Incentive os criadores a usar a função ClearCollect para armazenar dados no cache em OnStart e a usar a função Concurrent para reduzir o tempo de carregamento dos vários conjuntos de dados.

As imagens a seguir ilustram o carregamento de conjuntos de dados sequencialmente versus simultaneamente:

Diagrama mostrando o carregamento sequencial de conjuntos de dados.

Diagrama mostrando o carregamento simultâneo de conjuntos de dados.

Com tantas opções de configuração, o desempenho deve ser considerado de forma contínua. Melhorias e análises devem ser contínuas. Confira origens do desempenho lento, problemas comuns de desempenho e dicas de desempenho.

Um arquiteto de soluções deve implementar uma estratégia de ajuste de desempenho do aplicativo de tela.

Diagrama mostrando a estratégia do processo de ajuste.

Uma estratégia de ajuste deve:

  • Evitar trabalhos desnecessários
  • Adiar trabalho que provavelmente não seja necessário
  • Paralelizar o trabalho sempre que possível
  • Monitorar o uso do aplicativo para descobrir problemas de desempenho

Use um indicador visual de progresso para informar os usuários durante operações de longa duração.

Usar o Test Studio, o Azure Monitor e o Application Insights

Os aplicativos de tela devem ser testados exaustivamente para garantir a confiabilidade. A Microsoft fornece o Test Studio para testes de regressão, que podem ser incluídos em processos de compilação automatizados.

O Test Studio inclui:

  • Pacotes: grupos de casos de teste
  • Testes: conjuntos de etapas de teste para validar o comportamento do aplicativo
  • Etapas de teste: ações escritas na linguagem de expressão do Power Apps
  • Declarações de teste: resultados esperados para validação

Diagrama mostrando componentes do pacote do Test Studio.

O Microsoft Azure Monitor permite que os criadores transmitam eventos da sessão do usuário para diagnosticar e solucionar problemas. Os criadores podem exibir os eventos do Monitor no Power Apps Studio durante a criação de aplicativos e monitorar o comportamento do tempo de execução nos aplicativos publicados. Para aplicativos baseados em modelo, o Monitor rastreia a navegação, os comandos e os problemas no nível do formulário.

Captura de tela mostrando a ferramenta Monitor de eventos.

Os aplicativos de tela podem ser conectados ao Application Insights, um recurso do Azure Monitor. O Application Insights fornece ferramentas de análise para ajudar a diagnosticar problemas e entender o comportamento do usuário.

Os dados disponíveis no Application Insights incluem:

  • Número de usuários ativos
  • Locais onde o aplicativo é usado
  • Telas usadas com frequência
  • Fluxo de usuários de uma tela para outra

Captura de tela do Monitor usado para insights.

Como arquiteto de soluções, você deve decidir se deseja incluir o Application Insights em suas soluções de aplicativo.

Para obter mais informações, consulte Application Insights: