How to maintain the state of a mobile screen
solo0:40
## Brief para Episódio de Podcast: Mantendo o Estado de Telas Mobile

### Resumo

Olá, OutSystems Developers! Hoje vamos falar sobre um desafio comum e crucial em aplicativos mobile: como manter o estado de uma tela enquanto o usuário navega. Já reparou que, ao usar o botão de "voltar" do seu app, o estado da tela anterior geralmente é preservado? Isso é ótimo! Mas e quando o usuário navega para uma nova tela, faz algumas ações e depois decide voltar para a tela original? Muitas vezes, o que ele digitou ou selecionou se perde.

Isso pode ser frustrante e impactar negativamente a experiência do usuário, especialmente em formulários de busca complexos, filtros ou configurações temporárias. A boa notícia é que existe uma maneira elegante de resolver isso na OutSystems, garantindo que suas telas mantenham a informação que o usuário inseriu, mesmo após navegar para a frente e depois retornar.

Neste episódio, vamos mergulhar em uma solução prática que utiliza o armazenamento local (Local Storage) para persistir esses dados de forma temporária. Aprenderemos o passo a passo para implementar essa funcionalidade, desde a criação da entidade no Local Storage até a manipulação dos dados com Client Actions e eventos `OnChange`, assegurando que a experiência do seu usuário seja fluida e sem perdas de informação.

### Conceitos-chave

*   **Estado da Tela (Screen State)**: As informações e seleções atuais em uma tela, como valores de inputs, checkboxes marcados ou filtros aplicados.
*   **Local Storage (OutSystems Mobile)**: Banco de dados no dispositivo do usuário para armazenar dados temporários ou cache, acessível apenas pelo aplicativo.
*   **Client Actions**: Lógicas de programação executadas diretamente no dispositivo do usuário, ideais para manipular dados do Local Storage e interações de UI.
*   **Evento OnChange**: Um evento em widgets de input que dispara uma Client Action sempre que o valor do campo é alterado pelo usuário.
*   **User Identifier**: Usado para associar dados do Local Storage a um usuário específico, garantindo que cada um tenha seu próprio estado persistido.

### Exemplos práticos

*   **Formulário de Busca Avançada**: O usuário digita termos de busca e seleciona filtros; ao navegar para ver os detalhes de um item e voltar, os termos e filtros permanecem preenchidos.
*   **Configurações Temporárias de Visualização**: Um usuário define opções de ordenação ou exibição de uma lista; essas opções se mantêm ao navegar entre diferentes seções do aplicativo e retornar.
*   **Preenchimento Parcial de Formulário**: Em um formulário multiparte, onde o usuário pode precisar sair para buscar informações em outra tela, os dados já preenchidos são mantidos ao retornar.

### Gotchas

*   **Limpeza de Dados**: Lembre-se de limpar os dados do Local Storage ao final da sessão do usuário ou quando não forem mais necessários, para evitar acumular "lixo" e garantir a privacidade.
*   **Dados Sensíveis**: O Local Storage não é o local ideal para armazenar dados extremamente sensíveis, pois não oferece o mesmo nível de segurança que o servidor. Use-o para dados temporários e não críticos.
*   **Capacidade e Performance**: Embora prático, evite sobrecarregar o Local Storage com grandes volumes de dados, pois isso pode afetar a performance do aplicativo.
*   **Isolamento por Usuário**: Certifique-se de associar os dados salvos no Local Storage ao `UserId` (como no exemplo), caso seu app seja multiusuário e cada um precise de seu próprio estado persistido.

### Duração estimada

1-2 minutos (SHORTS MODE — under 2 minutes)

"See you, Space Cowboy..." 🚀