Otimizar aplicativos de tela

Concluído

Os tipos principais de desenvolvimento são imperativo e declarativo. O desenvolvimento imperativo se concentra em como atingir a meta, já o desenvolvimento declarativo se concentra na obtenção do resultado. O imperativo fornece mais flexibilidade, pois você pode controlar cada etapa do processo, mas isso requer mais código e mais complexidade. O declarativo é mais simples e fácil de usar, mas não permite ter o controle completo desejado.

Os aplicativos de tela assumem seu "o que" declarativo e otimizam o "como". É possível que você não consiga expressar precisamente "o que", então, o Power Apps ajudará permitindo que você use o desenvolvimento imperativo. Um erro que os criadores geralmente cometem é usar o desenvolvimento imperativo quando o desenvolvimento declarativo seria mais simples de usar e funcionaria melhor.

Os aplicativos de tela podem ser criados para parecerem atrativos e, embora ter um aplicativo atrativo seja importante, os aplicativos que funcionam bem têm melhor adoção entre os usuários.

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.

Aliviar a carga de trabalho dos aplicativos

Conforme as fórmulas nos aplicativos ficam maiores e mais complexas, considere se o trabalho deve ser feito em algum outro lugar. O trabalho pode ser transferido para fluxos da nuvem do Microsoft Power Automate, regras de negócios, plug-ins e outras lógicas do servidor no Dataverse.

Observação

Um método comum é descarregar a lógica em 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 passe dados para o fluxo e receba um resultado do fluxo.

Você também pode criar conectores personalizados para o Microsoft Azure Functions ou outra lógica personalizada. Se você acha que está usando o desenvolvimento imperativo em um aplicativo, considere a possibilidade de descarregar essa lógica em um recurso mais apropriado.

Desempenho

Problemas comuns com o desempenho do aplicativo são:

  • Acesso aos dados: inicialmente, o aplicativo salva grandes conjuntos de dados em coleções de dados e, depois, usa os dados em várias telas em operações pesadas do cliente, como JOIN, Sort, Add Column e Group By.
  • Fórmulas em OnStart: o aplicativo dispara muitas chamadas de dados desnecessárias nas telas, e essas chamadas de dados retornam registros de dados grandes.
  • Recuperar dados da fonte repetidamente: use a função Set para armazenar dados de tabelas de pesquisa em cache localmente.

Com o OnStart, você deve incentivar os criadores a usar a função ClearCollect para armazenar dados em cache localmente e a função Concurrent para reduzir o tempo de carregamento dos dados armazenados em cache. A primeira imagem mostra o carregamento de quatro conjuntos de dados sem a função Concurrent, e a segunda imagem mostra o processo com a função Concurrent.

Diagrama mostrando o carregamento sequencial de conjuntos de dados.

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

Com tantas opções, o desempenho precisa ser considerado com frequência. A análise e a melhoria das otimizações são iniciativas contínuas. Você deve validar as práticas recomendadas consultando fontes de desempenho lento, problemas comuns de desempenho e dicas de desempenho.

O 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:

  • Evite qualquer trabalho que você possa fazer.
  • Adiar trabalho que provavelmente não será necessário.
  • Paralelizar o trabalho sempre que possível.
  • Monitorar o aplicativo em operação; o trabalho nem sempre pode ser óbvio.

Você deve usar um indicador de progresso para o usuário em trabalhos de execução demorada.

Test Studio, Azure Monitor e Application Insights

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

O Test Studio contém os seguintes recursos:

  • Conjuntos: os conjuntos de testes são usados para organizar ou agrupar casos de teste.
  • Testes: os casos de teste são compostos de uma série de etapas de teste. Os casos de teste são executados para validar que seu aplicativo, ou recursos específicos dele, funciona da forma esperada.
  • Etapas de teste: instruções ou ações. As etapas de teste são escritas usando a linguagem de expressão do Power Apps.
  • Declarações de teste: o resultado esperado de um teste.

Diagrama mostrando componentes do conjunto do Test Studio.

O Microsoft Azure Monitor é uma ferramenta que oferece aos criadores a capacidade de ver um fluxo de eventos da sessão de um usuário para diagnosticar e solucionar problemas. Os criadores de aplicativos de tela podem usar o Monitor para exibir eventos ao criar um novo aplicativo no Power Apps Studio e monitorar aplicativos publicados durante o runtime. Os criadores de aplicativos baseados em modelo podem monitorar a navegação nas páginas, implementações de comandos, problemas relacionados a formulários e outras ações importantes para entender o comportamento do aplicativo e fazer melhorias.

Captura de tela mostrando a ferramenta Monitor de eventos.

Você pode conectar seus aplicativos de tela com o Application Insights, um recurso do Azure Monitor. O Application Insights inclui ferramentas de análise eficientes que ajudam a diagnosticar problemas e entender o que os usuários realmente fazem com seu aplicativo.

Com seu aplicativo conectado ao Application Insights, você pode coletar telemetria sobre como os usuários estão realmente usando seu aplicativo para ajudar a melhorar a qualidade de seus aplicativos. Alguns dados de telemetria que você pode obter com a configuração desse recurso incluem:

  • Número de usuários ativos que estão usando o aplicativo.
  • Local onde o aplicativo é usado.
  • Quais telas são usadas com mais 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 o Application Insights será incluído nos aplicativos criados.

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