Introdução

Concluído

As primeiras impressões são importantes. A primeira impressão que os usuários do aplicativo têm é o tempo que o aplicativo leva para exibir a primeira tela ou fornecer outros comentários visuais, como indicadores de progresso. Durante a inicialização, seu aplicativo executa várias etapas para preparar a apresentação da primeira tela: autenticar, obter metadados, processamento OnStart e renderizar telas.

  • Autenticar: lida com todos os prompts de autenticação para conexões configuradas para o aplicativo. A remoção de conectores que não estão em uso pode reduzir o número de solicitações e acelerar o processo.

  • Obter metadados: recupera metadados, como a versão da plataforma Microsoft Power Apps na qual o aplicativo é executado e as origens das quais ele deve recuperar dados.

  • Processamento OnStart: avalia as fórmulas configuradas na propriedade OnStart. A otimização do desempenho desse processamento tem impacto direto na melhoria do tempo de carregamento do aplicativo.

  • Renderizar telas: a primeira tela é preparada e apresentada ao usuário. As fórmulas OnVisible especificadas são implementadas primeiro. Otimizar fórmulas e minimizar o número de controles na tela pode melhorar o tempo de carregamento.

Este módulo explica como você pode avaliar o tempo de carregamento do aplicativo e identificar estratégias de aprimoramento.

Avaliar o tempo de carregamento do aplicativo

Quando você está avaliando o tempo de carregamento do aplicativo, um bom ponto de partida é estabelecer uma linha de base para o tempo necessário para o carregamento do aplicativo. Você pode realizar essa tarefa medindo o tempo de inicialização desde o início do aplicativo até o momento em que você acredita que tem um aplicativo utilizável. Use um cronômetro para medir o tempo desde o início do aplicativo até quando você acredita que uma pessoa pode usá-lo. As ferramentas que você pode usar para medir e analisar os detalhes de desempenho durante o tempo de carregamento são discutidas posteriormente neste módulo. Recomendamos que você realize uma nova avaliação a cada atualização do aplicativo para que possa comparar a nova versão com sua linha de base anterior e, em seguida, identificar aumentos significativos no tempo de carregamento.

A medição do tempo de inicialização ajuda a obter os tempos reais; no entanto, você deve considerar observar e perguntar aos usuários sobre a percepção deles quanto ao desempenho do aplicativo. Ocasionalmente, pode haver um aplicativo que é carregado em alguns segundos, mas os usuários podem perceber que ele leva muito mais tempo porque ainda não consideram o aplicativo como utilizável. Por exemplo, essa situação pode acontecer porque, após exibir a primeira tela, o aplicativo continua a carregar dados e atualizar as informações, embora os usuários já estejam interagindo com ele. As abordagens para resolver esses dois problemas são diferentes. Se está tentando melhorar o tempo de carregamento, geralmente, você pode obter dados obrigatórios que indicam de que forma o aplicativo está gastando tempo. Se estiver tentando melhorar a percepção do usuário, você precisará observar a pessoa que usa o aplicativo para entender como ela o usa e quais mudanças podem melhorar a percepção dela. Pequenas mudanças podem melhorar a percepção, como adicionar prompts de texto para iniciar a interação ou alterar a tela inicial para persistir e recarregar os registros mais recentes.

Normalmente, você descobrirá componentes que tornam um aplicativo lento exibindo a propriedade OnStart do aplicativo ou a propriedade OnVisible da primeira tela. Otimizando ou adiando o trabalho executado nessas propriedades, você pode acelerar o tempo de carregamento. Algumas dessas técnicas serão explicadas posteriormente neste módulo.

Se você exibir análises para o aplicativo no maker portal, isso incluirá a análise do Tempo até a primeira tela e do Tempo até a primeira tela sem configuração de conexão.

São fornecidos dados dos últimos 30 dias e isso pode ser útil para fornecer um resumo do desempenho do aplicativo.

A Ferramenta de Revisão do Power Apps é uma opção para avaliar aplicativos. Essa ferramenta de software livre é incluída como uma solução que pode ser importada para seu ambiente do Microsoft Dataverse. Depois de importar a ferramenta, você pode usá-la para avaliar aplicativos em seu ambiente. Você também pode carregar arquivos .msapp para avaliação. A revisão automatizada pode comparar seu aplicativo com uma lista de verificação personalizável de práticas recomendadas e identificar muitos problemas comuns que podem afetar o tempo de inicialização e o desempenho geral dos aplicativos. Depois que a revisão automatizada for concluída, você poderá ver uma lista que mostra áreas em que o aplicativo está se saindo bem e itens práticos de como ele pode melhorar.

Além de exibir os resultados no aplicativo, você pode enviar os resultados por email, o que pode ser útil se não é o criador do aplicativo.

Algumas regras comuns que a ferramenta pode verificar e que podem afetar o tempo de inicialização:

  • Uso da função Concurrent: considere o uso da função Concurrent para solicitações de dados independentes paralelas.

  • Sinalizadores de Configurações do Aplicativo: analisar configurações do aplicativo. Verifique se a Carga Atrasada e a Seleção Explícita de Coluna estão Ativadas.

  • Delegação: verifique se as operações de ClearCollect e Filter podem ser delegadas.

  • Otimização de Ativos: analise a compactação/otimização de tamanho de ativos internos.

  • Estratégia de carregamento de dados: analise a estratégia de carregamento de dados de OnStart e OnVisible. Evite as chamadas de dados em OnStart. Mude para OnVisible sempre que possível. Verifique se apenas chamadas de dados importantes bloqueiam a interação do usuário com a interface do usuário durante o primeiro carregamento da tela inicial.

  • Dependências entre telas: verifique se os elementos repetidos da interface do usuário estão encapsulados em componentes (por exemplo, menus, cabeçalho, rodapé).

Examinar as configurações do aplicativo

As configurações do aplicativo podem ter impacto significativo no desempenho dele; portanto, examine as configurações do aplicativo e o status habilitado delas a cada atualização do aplicativo. Aplicativos mais antigos podem não ter as opções de configuração de aplicativo mais recentes automaticamente habilitadas para garantir que a nova opção não danifique aplicativos existentes. Você também pode ter habilitado uma configuração para tentar resolver um problema, mas se esqueceu de desativá-la quando terminou. Um bom exemplo desse cenário é a opção Depurar aplicativo publicado. A habilitação dessa opção permite que mais informações de depuração sejam exibidas quando você usa o monitor de aplicativo para solucionar problemas do aplicativo publicado. Quando esta opção é habilitada, ela pode ser prejudicial ao desempenho e não deve ser mantida ativada para uso em produção.

Outra configuração a ser considerada é Limite da linha de dados. Essa configuração determina a maioria das linhas que serão recuperadas de uma conexão baseada em servidor quando a delegação não tiver suporte. Por padrão, esse valor é 500 e pode ser qualquer valor entre 1 e 2.000. Para contornar problemas de delegação em aplicativos, é comum que as pessoas aumentem esse valor. Esse aumento pode causar problemas inesperados quando um ambiente de desenvolvimento mantém conjuntos muito menores de dados do que a produção. Por exemplo, com o Limite de linha de dados definido como 2.000, a expressão a seguir no Limite de linha de dados pode pré-carregar somente algumas linhas em um ambiente de desenvolvimento.

ClearCollect(colDesks,Desks)

O mesmo aplicativo em um ambiente de produção com um conjunto de dados totalmente preenchido pode recuperar as 2.000 linhas completas. Como resultado, o aplicativo será carregado muito mais lentamente na produção do que no desenvolvimento. Frequentemente, trabalhar para eliminar os avisos de delegação é uma abordagem melhor do que aumentar esse valor.

Em aplicativos mais antigos, a configuração Habilitar função Navigate em App.OnStart pode estar habilitada. Essa configuração permite que você use a função Navigate() na propriedade App.OnStart, mas os resultados na primeira tela não serão renderizados até que todas as expressões em App.OnStart sejam avaliadas. Em aplicativos mais recentes, essa abordagem não é permitida, e você precisará usar a propriedade App.StartScreen em vez disso. As propriedades OnStart e StartScreen serão discutidas em mais detalhes posteriormente neste módulo. Se seu aplicativo tiver essa configuração habilitada, considere atualizar para a nova abordagem e desabilitar a configuração, o que pode melhorar os tempos de carregamento.

Além das configurações mencionadas anteriormente, a categoria Recursos futuros tem mais configurações que você deve examinar. Há três seções nessa categoria: Versão preliminar, Experimental e Desativado.

As novas configurações começam como Experimental e mudam para a Versão preliminar à medida que amadurecem. Os recursos experimentais permitem que você experimente um novo recurso, mas não se destinam a aplicativos de produção. Esses recursos são desativados por padrão, e você deve habilitá-los. Foi feito um investimento considerável para melhorar o desempenho dos aplicativos; portanto, fique atento a essa área para conferir recursos futuros.

Normalmente, as configurações na seção Versão Preliminar são ativadas por padrão para novos aplicativos. Esses recursos estão em suas fases finais de teste antes de se tornarem as configurações padrão habilitadas para todos os aplicativos. Para os aplicativos existentes, você precisará optar por habilitar essas configurações se desejar usá-las. Em alguns casos, a aceitação pode exigir alterações mínimas de uso de fórmula.

Se você estiver trabalhando em um problema de desempenho, o teste de alguns dos recursos futuros poderá fornecer informações sobre a possibilidade de eles ajudarem a enfrentar os desafios. Nesse caso, esperar até que os recursos amadureçam pode ser uma alternativa à refatoração sem seu benefício.

Limites e limitação

Cada conector pode ter seu próprio limite de dados recuperados e limitação. Além disso, limites de proteção de serviço estão em vigor no nível da plataforma. Esteja ciente desses limites para os conectores usados em seu aplicativo. Os aplicativos que encontram esses limites durante a inicialização podem carregar o aplicativo mais lentamente.

Usar uma imagem de carregamento

O uso de uma imagem de carregamento ou um indicador de progresso durante operações longas no aplicativo pode melhorar a percepção do usuário.

A maneira mais simples de usar uma imagem durante o carregamento do aplicativo é usar um componente que tenha uma imagem giratória. Você pode encontrar uma imagem predefinida no repositório GitHub das ferramentas do Power Apps. Você pode importar esse componente e colocá-lo na tela inicial sobre os outros controles. Em seguida, pode usar uma variável para controlar a visibilidade do componente. A imagem a seguir mostra um exemplo de como configurar a propriedade visible para o valor de uma variável.

Em App.OnStart, você pode ativar a imagem de carregamento antes de carregar os dados e desativar a imagem depois que os dados forem carregados.

Set(showLoader, true);

ClearCollect(colDesks, Desks);

ClearCollect(colDeskFeatures, 'Desk Features');

Set(showLoader, false);

Embora o uso de uma imagem de carregamento não acelere o aplicativo, ele fornece comentários visuais e pode ajudar o usuário a entender que o aplicativo está trabalhando em segundo plano.

O restante deste módulo explora outras técnicas para identificar e melhorar o desempenho de carregamento do aplicativo.