O que significa "Atualizável"
A maioria dos usuários de iPhone sabe instintivamente que puxar a tela para baixo atualiza o conteúdo em muitos aplicativos — esse é o clássico gesto de pull-to-refresh, e é exatamente o que queremos dizer com "atualizável". As versões anteriores do Splync não suportavam esse recurso. A única maneira de atualizar a tela era fechar o app e reabri-lo. Isso não era tão problemático, pois o app mantinha você conectado desde o Splync v1.3, mas ainda não era o ideal. Como o Splync visa ser o rastreador de orçamento compartilhado mais fácil, atualizar a tela deve ser completamente sem esforço. É por isso que introduzimos o pull-to-refresh no v1.10, tornando o Splync totalmente atualizável.
Duas maneiras de o Splync atualizar seus dados (Recarregamento Total / Atualização de Visualização)
Na tela inicial — onde você vê sua foto de perfil, lista de amigos e lista de projetos — o pull-to-refresh realiza um recarregamento total. Ele recupera todos os dados relacionados à conta novamente, muito parecido com sair e entrar novamente. Por isso, a atualização pode levar cerca de um segundo enquanto a mensagem de carregamento é exibida. Em uma tela de Projeto, onde aparece sua lista de despesas, o mesmo gesto de puxar para baixo aciona uma atualização de visualização mais leve. Apenas os dados específicos do projeto são atualizados, como alterações de categoria e atualizações de despesas. Não é preciso esperar um segundo completo apenas para ver se alguém adicionou uma nova despesa. Observação: o Splync não busca automaticamente dados do projeto do servidor em segundo plano. O app verifica as atualizações apenas quando você faz alterações, quando abre uma despesa para ver os detalhes ou quando você atualiza a página do projeto manualmente.
Por que não sincronização em tempo real
Alguns usuários podem esperar que as atualizações de projeto apareçam instantaneamente quando um amigo adiciona uma nova despesa. A sincronização em tempo real parece conveniente, mas vem com contrapartidas importantes. Atualizações contínuas em segundo plano requerem mais bateria, mais dados móveis e uma conexão de servidor mais complexa que pode desacelerar o app para todos. A abordagem sob demanda do Splync mantém a experiência leve e responsiva, e evita que a tela mude de repente enquanto você revisa seu orçamento. Existem também considerações de segurança. Manter uma conexão constante com o servidor aumenta a janela de exposição para acessos não autorizados e requer lógica de autenticação adicional rodando em segundo plano. Ao atualizar apenas quando você toma uma ação, o Splync minimiza atividades de rede desnecessárias e mantém o acesso aos dados mais previsível e controlado.
Por trás do código do .refreshable
No início, pensei que essa atualização seria simples. Em Swift, a linguagem usada para desenvolvimento iOS, você pode habilitar o pull-to-refresh apenas anexando o modificador .refreshable a uma ScrollView ou Lista. No entanto, não funcionou como eu esperava. Após investigar o problema, percebi a causa raiz. Eu queria adicionar o pull-to-refresh a toda a tela superior, que contém a lista de amigos e a lista de projetos. Mas, no design original, ambos os componentes também eram roláveis. Como resultado, o .refreshable não sabia a qual área rolável pertencia, e o gesto não era detectado consistentemente. Para corrigir isso, reestruturei a lista de amigos e a lista de projetos para que não fossem mais roláveis por si mesmas. Isso é seguro porque a visualização de nível superior rola quando o conteúdo excede a altura da tela. Uma vez que simplifiquei a estrutura e garanti que havia apenas um contêiner rolável, o .refreshable finalmente se comportou exatamente como pretendido. Também adicionei um botão típico de atualização para que os usuários possam simplesmente tocar para atualizar.
Puxar não funciona para você? Puxe um pouco mais
Na maioria dos aplicativos iOS, o pull-to-refresh não é ativado no momento em que você começa a arrastar. O SwiftUI tem um limite de gesto embutido: o sistema espera até que você puxe uma certa distância antes de acionar a atualização. Isso previne atualizações acidentais quando você simplesmente começa a rolar do topo da tela. O Splync segue esse comportamento padrão. Você pode notar que uma puxada curta não atualiza o conteúdo, mas uma puxada um pouco mais longa — o suficiente para o indicador de atualização aparecer — acionará a atualização. Esse design mantém as interações intencionais. Evita atualizações indesejadas, especialmente em telas onde os usuários frequentemente rolam por longas listas de despesas ou projetos. Uma vez que você "sobrepuxa" ligeiramente o limite superior e o indicador aparece, a atualização começará assim que você soltar o dedo. É um detalhe pequeno, mas contribui para uma experiência mais suave e previsível. Apenas para esclarecer: não se trata de puxar por mais tempo ou aplicar mais pressão. O que importa é puxar uma distância maior.
Um pequeno recurso, cuidadosamente criado
O pull-to-refresh pode parecer uma interação pequena, mas construí-lo envolveu escolhas de design, reestruturação técnica e um número surpreendente de considerações nos bastidores. O Splync v1.10 faz com que atualizar seus dados pareça natural, intencional e previsível — exatamente como deve ser no aplicativo de orçamento compartilhado mais fácil. Espero que esta atualização proporcione uma experiência mais suave e um vislumbre do cuidado que é dado a cada detalhe. Obrigado por usar o Splync.