## 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..." 🚀