Optimizar App.OnStart

Completado

La propiedad OnStart en el objeto de la aplicación se ejecuta cuando un usuario inicia su aplicación. La propiedad se usa de forma común para evaluar fórmulas para recuperar y almacenar en caché los datos que desea precargar y para establecer variables globales. La propiedad App.OnStart puede estar demasiado ocupada con este trabajo, lo que puede causar problemas de rendimiento. Para ayudar a reducir este tipo de problemas, hay enfoques alternativos disponibles, o se está invirtiendo en ellos, para las próximas versiones de Microsoft Power Platform. Utilice las alternativas disponibles cuando se adapten a las necesidades de su aplicación. Este tema explorará algunas de las alternativas disponibles.

Una necesidad común durante el inicio de la aplicación es seleccionar la primera pantalla que ve el usuario. Por ejemplo, la aplicación podría abrir una pantalla de bienvenida en la primera ejecución o implementar vínculos profundos en una página de detalles específica. Anteriormente, agregar lógica condicional y usar la función Navigate() en la propiedad App.OnStart era una práctica común. La opción de usar Navigate() en OnStart se ha retirado y todas las aplicaciones nuevas tienen prohibido usar la función Navigate() de App.OnStart.

El nuevo enfoque es utilizar la propiedad App.StartScreen. De forma predeterminada, esta propiedad estará vacía y se mostrará la primera pantalla en la vista de árbol de pantallas. Si está evaluando la fórmula proporcionada por la propiedad StartScreen y da como resultado un error, la primera pantalla volverá como si la propiedad estuviera vacía. Puede utilizar la función IfError() para detectar errores y redirigir a una pantalla de error adecuada.

Puede configurar la propiedad StartScreen a una pantalla específica para asegurarse de que, si se mueve en el árbol, sigue siendo la pantalla de inicio. También puede tener lógica condicional, similar a la siguiente imagen, que busca al usuario. Si el usuario no tiene una dirección, se envía a la pantalla ChooseLocation en lugar de la HomeScreen.

Captura de pantalla de la propiedad StartScreen de la aplicación

StartScreen es una propiedad de flujo de datos que no puede contener funciones de comportamiento. Todas las funciones de flujo de datos están disponibles y los siguientes ejemplos son comunes:

  • La función param() se usa para leer los parámetros que se utilizan para iniciar la aplicación

  • La función User() se usa para leer información sobre el usuario actual

  • LookUp(), Filter(), CountRows(), Max() y otras funciones que leen desde un origen de datos

  • Cualquier llamada a través de un conector, pero debería implementar rápidamente

  • Señales como conexión, brújula y aplicación

Colecciones y variables globales, incluidas las que se crean en OnStart, no están disponibles en la propiedad StartScreen.

La propiedad StartScreen se evalúa una vez al inicio. Si necesita realizar una prueba después, puede cambiar la propiedad. También puede forzar su reevaluación de forma manual mediante el comando Navegar a StartScreen del menú contextual para el objeto de la aplicación.

Captura de pantalla de un menú contextual que está disponible para el objeto de la aplicación en Power Apps Studio

Si tiene una aplicación anterior, debe actualizar su aplicación para usar la nueva propiedad StartScreen. Hasta que se actualice su aplicación, puede ir a la pestaña Configuración > Próximas características > Retiradas y desactivar la alternancia Habilitar la función Navigate en App.OnStart. Al desactivar esta alternancia, puede (por un tiempo limitado) continuar usando la función Navigate() en OnStart.

Captura de pantalla de ir a la pestaña Configuración > Próximas características > Retiradas de la aplicación y desactivar la opción Habilitar la función Navigate en App.Onstart

Usar OnVisible en lugar de OnStart

Revise las fórmulas que tiene en App.OnStart y, si solo precargan información para una sola pantalla, mueva la lógica de App.OnStart a la propiedad OnVisible de esa pantalla.

Revisar la configuración de la aplicación

Las nuevas configuraciones de la aplicación están disponibles regularmente con actualizaciones de Power Apps. Es una buena práctica revisarlas para determinar si podrían ser útiles. Tenga en cuenta la siguiente configuración de la aplicación cuando optimice la funcionalidad de carga de la aplicación:

  • Habilitar la propiedad App.OnStart: esta configuración está activada de forma predeterminada. Piense en desactivar la configuración si no necesita OnStart y quiere desalentar su uso.

  • Usar regla OnStart sin bloqueo: en aplicaciones publicadas, esta configuración permite que las fórmulas App.OnStart se ejecuten al mismo tiempo que otras reglas de la aplicación. Cuando la configuración está desactivada, sus otras reglas esperan a que App.OnStart termine. Esta configuración está activada de forma predeterminada para las aplicaciones nuevas, pero debe habilitarla para las aplicaciones más antiguas.