Pitch: o que separamos entre dados locais e compartilhamento no Fellfolio
O Fellfolio é um aplicativo para iPhone e iPad que reúne histórico de saúde, tarefas de cuidado e memórias de animais de estimação. Na implementação, separamos a sincronização entre os aparelhos do próprio usuário do compartilhamento com outra pessoa.
Para o registro principal, usamos SwiftData. As funções centrais continuam disponíveis sem conexão e sem criar uma conta específica do Fellfolio. A sincronização privada pode usar o iCloud. No app, a disponibilidade da conta iCloud e o andamento da sincronização aparecem como estados diferentes: estar conectado não significa que a última alteração já chegou a outro aparelho.
O cuidado compartilhado tem outro limite. O responsável escolhe quais áreas do espaço do animal quer compartilhar, como saúde ou rotina. Esses dados selecionados seguem por registros compartilhados no CloudKit. Há uma sutileza importante: a permissão de um compartilhamento do CloudKit se aplica à hierarquia de registros compartilhados; a divisão por áreas depende também das regras e verificações do aplicativo. Por isso, evitamos prometer permissões independentes para cada campo.
Outra decisão foi separar os formatos de saída conforme a situação. Um relatório de saúde ou cartão de emergência precisa ser rápido de consultar antes de uma consulta. Um livro de memórias tem outra estrutura e outro objetivo. Tentar colocar tudo no mesmo PDF tornaria ambos menos úteis.
Esse tipo de separação entre dados privados, compartilhamento e exportação também aparece em outros aplicativos pessoais. Como vocês comunicam ao usuário o estado real da sincronização sem dar a impressão de que “conta disponível” significa “tudo atualizado”?
Para deixar claro o vínculo com o projeto: o Fellfolio é nosso app e já está disponível na App Store: https://apps.apple.com/app/id6811588525
Site oficial: https://fellfolio.com