Crear una pantalla de Carga en Power Apps
Muchas veces nos encontramos con aplicaciones que tienen cargas importantes de datos o colecciones en la pantalla inicial mediante OnStart, para evitar que el usuario este interactuando con la aplicación sin tener cargados todos los datos, podemos crear una pantalla de Loading inicialmente que una vez cargados los datos de acceso a la pantalla inicial de la aplicación. Para realizar esto, sigue los siguientes pasos:
Necesitarás al menos dos pantallas: una para la carga (por ejemplo, ScreenLoading) y la pantalla de inicio real (ScreenHome).

1. Pantalla de Carga (ScreenLoading)
- Inserta el GIF:
- Ve a la pestaña Media (Medios) y Upload (Cargar) tu archivo GIF con el loading que te guste.
- Inserta un control de Imagen en
ScreenLoadingy establece su propiedadImageal nombre de tu archivo GIF (ejemplo:MiGifDeCarga).
- Cubre la Pantalla con un color de background:
- Inserta un control Rectangle (Rectángulo) y ajústalo para que cubra toda la pantalla. Dale un color de relleno (Fill) oscuro o el que desees.
- Asegúrate de que el control Imagen del GIF esté delante de este rectángulo (usa la opción «Reorder» – Reordenar).
- Añade el Control Timer (Temporizador):
- Inserta un control Timer (Temporizador) en
ScreenLoading.
- Inserta un control Timer (Temporizador) en
2. Lógica de la Aplicación (App.OnStart)
Aquí es donde se ejecutará tu lógica de carga inicial.
- Variable de Control: Define una variable para rastrear si el proceso de carga ha finalizado.
Fragmento de código
// 1. Inicia la pantalla de carga
Navigate(ScreenLoading, ScreenTransition.None);
// 2. Establece la variable de control al inicio de la carga
Set(varCargaFinalizada, false);
// 3. Coloca AQUÍ toda tu lógica de carga (Collect, ClearCollect, LookUp, etc.)
// 4. Una vez que toda la lógica de carga haya terminado...
Set(varCargaFinalizada, true);
3. Configuración del Temporizador
Usa el Temporizador para esperar a que la variable varCargaFinalizada sea true y, opcionalmente, a que pase un tiempo mínimo para mostrar el GIF.
| Propiedad del Temporizador | Valor/Fórmula | Propósito |
| Duration (Duración) | 1000 (milisegundos) | Tiempo MÍNIMO para mostrar el GIF, si la carga es muy rápida. |
| AutoStart | varCargaFinalizada | El temporizador comienza una vez que la lógica de OnStart ha terminado de ejecutarse y establece la variable en true. |
| Repeat | false | Solo debe ejecutarse una vez. |
| OnTimerEnd | Navigate(ScreenHome, ScreenTransition.Fade) | Una vez que el temporizador finaliza, navega a la pantalla de inicio. |
💡 Flujo de Ejecución
- El usuario abre la aplicación.
- Se ejecuta
App.OnStart. - Lo primero que hace es navegar a
ScreenLoadingy establecevarCargaFinalizadaenfalse. - Se ejecuta toda tu lógica de
OnStart(recolección de datos, etc.). - Una vez finalizada la lógica,
varCargaFinalizadase establece entrue. - Como
Timer.AutoStartesvarCargaFinalizada(que ahora estrue), el temporizador comienza a contar. - Después de la duración especificada (ejemplo: 1000 ms), se ejecuta
Timer.OnTimerEnd, navegando aScreenHome.