Otimizar App.OnStart

Concluído

A propriedade OnStart no objeto de aplicativo é executada quando um usuário inicia seu aplicativo. A propriedade normalmente é usada para avaliar fórmulas a fim de recuperar e armazenar em cache os dados que você deseja pré-carregar e para definir variáveis globais. A propriedade App.OnStart pode ficar muito ocupada com esse trabalho, o que pode causar problemas de desempenho. Para reduzir esses tipos de problemas, abordagens alternativas estão disponíveis ou estão sendo desenvolvidas para os próximos lançamentos do Microsoft Power Platform. Use as alternativas disponíveis quando elas atenderem às necessidades do aplicativo. Este tópico explora algumas das alternativas disponíveis.

Uma necessidade comum durante a inicialização do aplicativo é selecionar a primeira tela que o usuário exibe. Por exemplo, o aplicativo pode abrir uma tela de boas-vindas na primeira execução ou implementar a vinculação profunda em uma página de detalhes específica. Anteriormente, a prática comum era adicionar a lógica condicional e usar a função Navigate() na propriedade App.OnStart. O uso de Navigate() em OnStart foi desativado, e todos os aplicativos novos são proibidos de usar a função Navigate() em App.OnStart.

A nova abordagem é usar a propriedade App.StartScreen. Por padrão, essa propriedade estará vazia, e a primeira tela no modo de exibição de árvore de tela será mostrada. Se você estiver avaliando a fórmula fornecida pela propriedade StartScreen e isso resultar em um erro, a primeira tela retornará como se a propriedade estivesse vazia. Você pode usar a função IfError() para interceptar erros e redirecionar para uma tela de erro apropriada.

Você pode definir a propriedade StartScreen para uma tela específica para garantir que, se ela for movida na árvore, ainda seja a tela inicial. Você também pode ter lógica condicional, semelhante à imagem a seguir, que pesquisa o usuário. Se o usuário não tiver um endereço, ele será enviado para a tela ChooseLocation em vez de HomeScreen.

Captura de tela da propriedade StartScreen do aplicativo.

StartScreen é uma propriedade de fluxo de dados que não pode conter funções de comportamento. Todas as funções de fluxo de dados estão disponíveis, e os exemplos a seguir são comuns:

  • Função Param() para ler os parâmetros usados para iniciar o aplicativo

  • Função User() para ler informações sobre o usuário atual

  • LookUp(), Filter(), CountRows(), Max() e outras funções que leem de uma fonte de dados

  • Qualquer chamada por meio de um conector, mas deve realizar a implementação rapidamente

  • Sinais como Connection, Compass e App

Variáveis e coleções globais, incluindo as criadas em OnStart, não estão disponíveis na propriedade StartScreen.

A propriedade StartScreen é avaliada uma vez na inicialização. Se for necessário testar posteriormente, você poderá alterar a propriedade. Como alternativa, você pode forçá-la manualmente a ser reavaliada usando o comando de menu de contexto Navegar para StartScreen para o objeto de aplicativo.

Captura de tela de um menu de contexto disponível para o objeto de aplicativo no Power Apps Studio.

Se tiver um aplicativo antigo, você deverá atualizá-lo para usar a nova propriedade StartScreen. Até que o aplicativo seja atualizado, você pode ir para a guia Configurações > Atualizações > Desativado e desativar a alternância Habilitar função Navigate em App.OnStart. Desativando essa alternância, você pode (por um período limitado) continuar usando a função Navigate() em OnStart.

Captura de tela de ir para a guia do aplicativo Configurações > Atualizações > Desativado e desativar a opção Habilitar função Navigate em App.OnStart.

Usar OnVisible em vez de OnStart

Examine as fórmulas que você tem em App.OnStart e, se elas só pré-carregarem informações para uma única tela, mova a lógica de App.OnStart para a propriedade OnVisible dessa tela.

Examinar configurações do aplicativo

Novas configurações de aplicativos são disponibilizadas regularmente com atualizações do Power Apps. É uma prática recomendada examiná-las para determinar se podem ser úteis. Considere as seguintes configurações de aplicativo ao otimizar a funcionalidade de carregamento de aplicativo:

  • Habilitar propriedade App.OnStart: essa configuração é ativada por padrão. Considere a desativação da configuração se você não precisar de OnStart e quiser desencorajar seu uso.

  • Usar a regra OnStart sem bloqueio: em aplicativos publicados, essa configuração permite que as fórmulas de App.OnStart sejam executadas simultaneamente com outras regras de aplicativo. Quando a configuração é desativada, as outras regras aguardam até que App.OnStart seja concluída. Essa configuração é ativada por padrão para novos aplicativos, mas você deve habilitá-la para aplicativos mais antigos.