1.3.0 – 26 de agosto de 2026
Adicionado
- Intenções – Uma forma discreta de definir metas pessoais de leitura, totalmente opcional em Configurações → Leitura → Intenções. Escolha entre seis tipos de intenção predefinidos — livros neste ano, páginas ou horas neste mês, leitura diária, sessões por semana ou duração da sessão — cada um com opções de meta fixas e no máximo uma intenção ativa por tipo (até 5 de uma vez). O progresso é calculado a partir dos seus livros e sessões existentes (nunca armazenado, então nada pode sair de sincronia) e exibido como uma videira crescente: uma folha por livro, hora, dia ou cem páginas, com um broto na ponta em crescimento, uma semente antes de começar e uma flor quente quando uma meta é concluída. Os detalhes de cada intenção mostram “O que conta” — as capas finalizadas, os principais livros contribuintes ou as sessões por trás do número.
- Leia novamente – Alguns livros valem a pena revisitar, e o Kiveo agora se lembra de cada visita. Quando você termina um livro, “Ler novamente” aparece no menu ••• dele — tocá-lo mantém sua primeira leitura salva (suas datas, páginas e sessões) e inicia uma nova leitura do zero. Mova um livro concluído de volta para Lendo, para Quero Ler, ou alcance uma sessão nele, e o Kiveo pergunta gentilmente se você está começando de novo ou continuando de onde parou — para que um “terminado” acidental seja fácil de desfazer, e uma releitura real comece limpa em vez de ficar na última página da última vez. Um livro que você já leu mais de uma vez exibe um discreto “Lido 2×” logo abaixo de seu status — uma pequena contagem, nunca um troféu. Cada leitura ainda adiciona às suas páginas, horas e dias de leitura, mas um livro conta apenas uma vez para seus “livros neste ano”, não importa quantas vezes você volte a ele. E um livro concluído pode esperar na sua Mesa de cabeceira quando você já sabe que voltará.
- Digitalização de citações — levante uma passagem direto da página – O Kiveo agora pode ler uma página de livro para você. Toque em Digitalizar ao lado do campo de citação, em seguida, aponte a câmera para a página ou escolha uma foto que você já tirou. De qualquer forma, o Kiveo tira uma foto e a mantém estável na tela, e as palavras nela ganham vida.
- Tela de Celebração – Terminar um livro durante uma Sessão ao Vivo agora abre uma celebração em tela cheia. Ela começa com o livro finalizado sobre um brilho dourado quente, seu tempo de leitura, sessões, páginas e datas de início/fim, e um espaço opcional para anotar quaisquer pensamentos finais — salvos como uma reflexão de conclusão quando você toca em Concluído. Um resumo compacto da sessão (tempo, páginas, citações, reflexões) completa a parte inferior, e uma suave vibração de celebração é reproduzida quando ela aparece.
- Cancelar Sessão ao Vivo – Agora você pode descartar uma sessão de leitura em andamento sem salvá-la. Um novo menu “•••” na tela da sessão ao vivo oferece “Cancelar sessão”; a confirmação descarta o tempo decorrido e o progresso e limpa a Atividade ao Vivo, enquanto quaisquer citações ou reflexões que você capturou durante a sessão permanecem com o livro.
- Compartilhar Cartões — Tema Colorido – Um novo tema “Colorido” para os cartões de compartilhamento do livro e do livro finalizado pinta o fundo com um gradiente vibrante extraído da própria capa do livro — a mesma extração de cores usada pelo cabeçalho de detalhes do livro.
Alterado
- Onboarding reimaginado como um fluxo mais caloroso e pessoal de 8 telas: adicione sua leitura atual logo de cara, veja sua biblioteca tomar forma em pré-visualizações ao vivo, escolha um horário gentil para lembretes
- Mesa de Cabeceira — espaço para livros finalizados – Um livro que você já terminou agora pode descansar em sua Mesa de Cabeceira, na fila para uma releitura. E o seletor “adicionar um livro” ganhou o mesmo filtro de status organizado do gerenciamento de estantes — Quero Ler, Pausado, Finalizado — para que o livro que você procura seja mais fácil de encontrar.
- Atividade ao Vivo — Um pouco mais de capa – A capa do livro na Tela Bloqueada da Atividade ao Vivo agora fica um pouco mais alta e proeminente, para que o livro que você está lendo seja mais fácil de reconhecer rapidamente — enquanto a atividade permanece tão compacta e calma quanto antes.
- Estatísticas da Página Inicial — “Dias seguidos” – A estatística de dias de leitura do resumo da Página Inicial, antes “Sequência Atual”, agora é “Dias seguidos” — um nome mais gentil, em sintonia com o espírito de Kiveo sem sequências e sem pressão.
Corrigido
- Resumo da Página Inicial — “Horas Lidas” usava a marca decimal errada em espanhol – O número de horas sempre escrevia seu decimal com um ponto —
12.5 — mesmo lendo em espanhol, onde deveria ser 12,5
- Exportar Dados — a folha de compartilhamento aparecia vazia – Configurações → Exportar Dados dizia “Criando backup…”, então abria um painel em branco sem lugar para enviar o arquivo — sem AirDrop, sem Mensagens, sem “Salvar em Arquivos”. O backup em si era escrito perfeitamente todas as vezes; a tela simplesmente entregava um bandeja vazia para o painel de compartilhamento. Kiveo agora passa o arquivo finalizado diretamente para a folha de compartilhamento, para que seus destinos estejam lá no momento em que ela abre. O mesmo deslize estava esperando silenciosamente em Importar Dados, e ele também foi corrigido.
- Lembranças — citações e reflexões de um livro poderiam desaparecer – A aba Lembranças de um livro poderia aparecer vazia, mesmo que as citações e reflexões estivessem perfeitamente seguras — bem ali na tela Reflexões, mostrando corretamente o livro ao qual pertencem. A aba as procurava por um ISBN específico, então um livro com apenas um ISBN de 13 dígitos (a maioria das importações do Goodreads e muitos resultados de pesquisa) não retornava nada, assim como um livro sem ISBN. Citações e reflexões salvas durante uma sessão ativa em um livro que ainda não havia sido adicionado à sua biblioteca também eram perdidas, pois elas guardavam um instantâneo do livro em vez do livro em si. Agora, Lembranças segue a identidade do próprio livro e reúne também aquelas salvas na sessão, para que tudo o que você salvou para um livro esteja no livro. E uma citação ou reflexão que você adiciona enquanto a aba está aberta agora aparece imediatamente, em vez de esperar que você saia da tela e volte.
- Atividade ao Vivo — Capa em branco para livros com arte grande – Alguns livros mostravam um espaço de capa vazio na Atividade ao Vivo da Tela Bloqueada e da Ilha Dinâmica — sem imagem, sem letra, apenas uma área plana onde a capa deveria estar. Livros com arte de capa especialmente grande eram os culpados: a Atividade ao Vivo opera com um orçamento de memória apertado e desistia silenciosamente de desenhar a imagem de tamanho exagerado em vez de mostrá-la. Agora, Kiveo entrega à Atividade ao Vivo uma cópia pequena e de tamanho adequado da capa — a arte de resolução total que o resto do aplicativo usa permanece intocada — para que as capas apareçam de forma confiável, não importa o quão grande seja a original.
- Sessão ao Vivo — reflexões adicionadas a uma citação não eram contadas – Durante uma Sessão ao Vivo, adicionar uma reflexão ao lado de uma citação capturada deixava o contador de reflexões da sessão inalterado, e o resumo do fim da sessão subcontava suas reflexões. O fluxo de citação com reflexão salvava a reflexão, mas nunca informava à sessão que ela havia ocorrido, então apenas as reflexões adicionadas através do botão Refletir eram contadas. Agora, uma reflexão capturada através do editor de citações atualiza o contador ao vivo e o resumo também — uma citação com reflexão conta como uma citação e uma reflexão.
1.2.7 – 2 de julho de 2026
Corrigido
- Jornada do Livro — Sessões Podem Desaparecer Após Atualização de Detalhes
As sessões de leitura de um livro podiam desaparecer silenciosamente da aba Jornada na tela de detalhes após você adicionar um ISBN ou os detalhes do livro serem atualizados do catálogo — embora as sessões em si estivessem seguras e ainda aparecessem na tela de Sessões.
A aba associava sessões ao livro de uma forma que se tornava frágil quando os identificadores do livro mudavam, fazendo com que a contagem e a lista de sessões recentes aparecessem vazias. A Jornada agora mantém um livro e suas sessões vinculados de forma confiável.
1.2.6 – 24 de junho de 2026
Adicionado
- Diagnóstico de Sincronização — Detalhes Mais Profundos de Falha na Exportação – O Diagnóstico de Sincronização (opt-in) agora captura muito mais sobre uma exportação com falha do CloudKit para que o antigo bug de “exportação sempre falha” possa finalmente ser identificado. A tela de diagnóstico exibe os tipos de registro com falha e um histograma de sub-erros em destaque em cada linha de evento com falha. Ainda estritamente livre de PII: nenhum conteúdo de livro, citação ou nota é lido.
- Diagnóstico de Sincronização — Captura de Logs do Sistema – Uma nova ação “Capturar Logs do Sistema” na tela de Diagnóstico de Sincronização.
- Ações Rápidas na Tela Inicial – Pressionar longamente o ícone do aplicativo Kiveo agora exibe três ações rápidas — Iniciar Sessão, Digitalizar Código de Barras e Capturar Citação — que levam diretamente ao local certo. Iniciar Sessão e Capturar Citação abrem o seletor de livros para você escolher um livro, e então o direcionam para uma sessão ativa ou para o fluxo de captura de citação, respectivamente; Digitalizar Código de Barras abre a pesquisa com o scanner de código de barras já em execução.
- Início — Cartão Tátil “Livros Lidos” – A estatística “Livros Lidos” no resumo da Tela Inicial agora é tátil e leva a uma lista somente leitura de livros concluídos. A lista é limitada ao período selecionado no seletor de ano: mostra “Todos os Livros Lidos” para a Vida Toda, “Livros Este Ano” para o ano atual, ou “Livros em {year}” para um ano passado, e permanece sincronizada com o seletor. Os livros são ordenados com os mais recentemente concluídos primeiro; tocar em um livro abre sua tela de detalhes. Os outros cartões de resumo (Páginas, Horas, Sequência) permanecem não interativos.
Alterado
- Capas de Livro Personalizadas — Tamanho Limitado na Origem – Salvar uma capa personalizada (ao criar/editar um livro manual ou trocar uma capa) agora redimensiona a imagem para que seu lado mais longo tenha no máximo ~1024px e a comprime para um teto de ~700KB antes de armazená-la no livro. Anteriormente, a foto em resolução total era armazenada literalmente, produzindo blobs de vários megabytes que inchavam o armazenamento no dispositivo, desperdiçavam memória e inflavam a carga útil de sincronização do CloudKit. As capas permanecem visualmente idênticas nos tamanhos em que realmente são renderizadas. (Higiene de dados; não afeta a confiabilidade da sincronização.)
- Status do Livro — Caminho Único de Atualização – Toda alteração de status de livro agora passa por um único escritor canônico (
Book.setStatus), para que o status de um livro e suas datas e metadados relacionados permaneçam consistentes, não importa de onde venha a alteração (a planilha de edição, o editor de datas, a importação do Goodreads ou o registro de progresso).
- Reflexões — Prompt “No que você está pensando?” – Os campos de entrada de reflexão agora compartilham um único prompt mais amigável: “No que você está pensando?”.
- Troca de Capa — Marcador de Capa “Original” – A grade “Outras Edições” da tela de troca de capa agora marca a edição original/canônica do próprio livro com um rótulo “Original” (um anel neutro sutil mais um glifo de “retornar para”), para que, quando uma capa personalizada ou a capa de uma edição diferente estiver ativa, você ainda possa identificar — e encontrar o caminho de volta para — a capa original do livro.
Corrigido
- Capas de Livro Personalizadas — Blobs de Capa Órfãos e Oversized – Um livro criado manualmente cuja edição real apareceu posteriormente no catálogo mantinha seus dados de imagem de capa personalizada agora redundantes para sempre, mesmo após uma atualização de metadados que lhe deu uma boa capa remota. Esse blob órfão (muitas vezes vários megabytes) apenas inchava a loja e o payload de sincronização. A atualização de metadados agora limpa um blob de capa personalizada remanescente, mas apenas quando o livro não tem um substituto de capa intencional e um URL de capa remota utilizável está disponível, para que nada visível mude. Um reparo único e idempotente também é executado em bibliotecas existentes: blobs de capa oversized são recodificados menores no local, e os órfãos são limpos quando uma capa remota pode substituí-los — conservadoramente, nunca deixando um livro sem capa. Capas personalizadas e de edição intencionais são sempre preservadas.
- Troca de Capa — Capa Personalizada Mostrava uma Edição do Catálogo como “Atual” – Quando um livro usava uma capa personalizada, a grade “Outras Edições” da tela de troca de capa ainda destacava a edição do catálogo correspondente ao ISBN como a capa atual. O cálculo de “atual” correspondia puramente por ISBN e ignorava um substituto personalizado ativo; agora ele não retorna nenhuma edição enquanto uma capa personalizada está em uso, para que a grade mostre corretamente que nenhuma das edições do catálogo é a atual.
- Backup e Restauração — Sinalizador de Livro Personalizado Preservado – Restaurar de um backup não rebaixa mais livros criados manualmente para livros regulares do catálogo. O sinalizador
isCustom agora é gravado e lido de volta dos backups (backups mais antigos sem o campo ainda são importados, tratados como não personalizados).
- Barra de Abas — Itens Ficaram em Destaque Após Dispensar uma Planilha (iOS 26) – No iOS 26, apresentar e dispensar qualquer planilha fazia com que cada item da barra de abas inferior — incluindo os não selecionados — fosse renderizado na cor de destaque em vez do esquema pretendido selecionado=destaque / não selecionado=rótulo.
- Busca de Livros — Resultados desatualizados vazam para a pré-busca – Quando uma busca lenta estava em andamento e o usuário limpava a consulta ou saía do modo de busca, resultados que chegavam tarde eram aplicados ao ViewModel, fazendo com que os resultados da busca aparecessem abaixo das seleções de pré-busca.
- Do Nosso Jardim — Centralização Vertical em Coluna Única – Quando uma coluna na grade “Do Nosso Jardim” tinha apenas um livro, ela era centralizada verticalmente contra colunas mais altas com dois livros. As colunas agora se alinham ao topo.
- Busca de Livros — Idioma Automático Enviou “Qualquer” – Quando o filtro de idioma de busca estava definido como “Automático”, o aplicativo enviava
lang=any para a API, retornando resultados em todos os idiomas em vez de priorizar o idioma do usuário. Agora resolve para o local real do dispositivo (por exemplo, es para usuários de espanhol).
- Troca de Capa — “Restaurar Original” Não Limpava uma Capa Personalizada – Tocar em “Restaurar Original” removia o botão Restaurar, mas a imagem da capa personalizada continuava aparecendo. Dois bugs deixavam o URL da imagem do livro apontando para o arquivo de capa personalizada após uma restauração: a capa original do catálogo era capturada *depois* que o URL já havia sido sobrescrito com o arquivo personalizado (então a restauração “restaurava” a imagem personalizada), e a restauração apenas reajustava o URL quando um original havia sido capturado – deixando capas personalizadas antigas presas. Agora, a capa real pré-sobrescrita é capturada antes de ser sobrescrita, e a restauração sempre afasta a imagem do arquivo personalizado: restaura uma capa genuína do catálogo remoto quando uma é conhecida, ou caso contrário, limpa a imagem e aciona uma nova busca de metadados do catálogo para que o livro recupere sua capa adequada. Quando não há um original remoto conhecido, a capa do catálogo agora é buscada inline por ISBN e preenche imediatamente, no local, em vez de reaparecer apenas na próxima vez que a tela de detalhes do livro for aberta. O arquivo de capa personalizada no disco também é excluído para liberar espaço.
1.2.5 – 22 de junho de 2026
Adicionado
- Diagnóstico de Sincronização do iCloud – Adicionada observabilidade de sincronização opt-in para ajudar a diagnosticar problemas de sincronização do CloudKit. O registro de sincronização está desativado por padrão e destinado apenas a usuários que estão ativamente solucionando um problema de sincronização – quando desativado, nada é observado, gravado, persistido ou relatado. Uma nova tela “Diagnóstico de Sincronização” em Configurações → Avançado tem uma opção “Ativar Registro de Sincronização” que inicia/para o registro imediatamente (sem necessidade de reiniciar). Enquanto ativado,
CloudKitSyncMonitor registra eventos de configuração, importação e exportação do SwiftData/CloudKit (e quaisquer erros que eles carreguem) em um registro rotativo limitado e persistido, relata falhas de sincronização para telemetria e mostra o registro de eventos recentes com estilo de sucesso/falha que os usuários podem exportar e compartilhar. Desativar o registro novamente mantém qualquer registro já capturado para que ele ainda possa ser compartilhado. O registro nunca inclui o conteúdo de livros, citações ou notas – apenas metadados de sincronização e detalhes de erros. Esta é uma instrumentação de diagnóstico; não altera o comportamento da sincronização.
1.2.3 – 25 de maio de 2026
Removido
- Atividade ao Vivo — Intenções de Pausar/Retomar App –
PauseSessionIntent e ResumeSessionIntent removidos; nenhuma UI de Atividade ao Vivo os invocava após a limpeza dos botões da Fase 3. Pausar/retomar de dentro do app ainda funciona como antes. (Fase 4 da reformulação da Atividade ao Vivo.)
Adicionado
- Atividade ao Vivo — Fundo com Amostra da Capa – A Atividade ao Vivo na Tela Bloqueada agora tinge seu fundo com a cor dominante da capa do livro atual, escurecida para legibilidade. Reutiliza o pipeline de paleta de cores existente (sem novas amostras); livros cujas paletas ainda não foram cacheadas voltam ao plano de fundo padrão e pegam a cor na próxima sessão. (Fase 2 da reformulação da Atividade ao Vivo.)
Alterado
- Atividade ao Vivo — Capa se Dissolve no Fundo – A capa na tela de bloqueio agora se dissolve no fundo da atividade através de um gradiente curto em sua borda final, em vez de se alinhar rigidamente ao texto. Capa dimensionada para sua proporção natural de livro de 2:3 (70×105) e altura geral do widget limitada para um espaço menor. Ícone do timer removido quando em execução; glifo de pausa aparece quando pausado.
- Atividade ao Vivo — Redesenho da Ilha Dinâmica – Todas as três apresentações da Ilha Dinâmica reconstruídas: compacta mostra a marca Kiveo ao lado do timer; expandida usa um layout unificado apenas na parte inferior com capa, título, autor, timer e chips de citação/livro; mínima mostra a marca Kiveo em cor de destaque. Botões de pausar/parar/encerrar removidos em favor de toque para abrir. (Fase 3 da reformulação da Atividade ao Vivo.)
- Atividade ao Vivo — Tipografia e Layout – Atividade ao Vivo na Tela Bloqueada atualizada com título serifado Bitter, timer em tamanho hero e uma capa que se estende até a borda principal. Capas ausentes agora mostram um fallback tipográfico de letra (primeira palavra significativa do título em Bitter) em vez de um ícone genérico. Contagens de citações/livros movidas para uma linha secundária mais discreta ao lado do timer. (Fase 1 da reformulação da Atividade ao Vivo.)
- Cartões de Sessão – Redesenhamos os cartões de sessão na tela de Sessões: sessões de um único livro agora mostram um título maior, o autor e uma linha liderada por ícone para páginas e tempo; sessões de vários livros mantêm uma lista compacta de uma linha por livro com uma linha de resumo acima.
Corrigido
- Lembretes e Incentivos — Incentivo Nunca Disparava Quando o Diário Estava Ativo – Anteriormente, o lembrete diário suprimia incondicionalmente o incentivo de inatividade sempre que ambos estavam habilitados, então os incentivos efetivamente nunca alcançavam usuários com um lembrete diário configurado. O agendador agora escolhe entre eles com base na atividade: enquanto o usuário registrou uma sessão dentro da janela de limite, o lembrete diário é executado; uma vez que ele ficou quieto além do limite, o incentivo assume e o diário é pausado até que ele leia novamente. Usuários sem sessões ainda são tratados como não inativos, então o lembrete diário acompanha novos usuários até que eles estabeleçam uma linha de base.
- Recuperação de Sessão — Descartar Não Persistiu – Tocar em “Descartar” no banner de recuperação de sessão agora exclui o rascunho. A implementação anterior chamava
delete em um modelo buscado em um ModelContext diferente (desalocado), o que o SwiftData ignora silenciosamente, fazendo com que o banner reaparecesse no próximo lançamento. Descartar agora busca novamente os rascunhos ativos no contexto atual e os limpa, também protegendo contra rascunhos duplicados raros.
- Trocar Capa / Trocar Edição — Selo “Atual” Duplicado – Quando a API de edições retornava mais de uma linha correspondente aos ISBNs armazenados de um livro (por exemplo, uma correspondência no ISBN-10 e outra no ISBN-13 e ISBN-10), ambas as miniaturas eram marcadas como “atual” com o brilho e o selo. A edição “atual” agora é resolvida uma vez no nível do ViewModel, preferindo uma correspondência de ISBN-13 a um fallback de ISBN-10, para que exatamente uma linha seja destacada e a ordem de classificação seja estável.
- Piscar da Capa da Sessão Recuperada – A sessão ativa recuperada não pisca/reapresenta mais ao salvar uma citação ou reflexão (o
fullScreenCover permaneceu no lugar durante os salvamentos do SwiftData, dando ao item apresentado uma identidade estável).
- Localização do Log de Atividade da Sessão – As entradas do log da sessão ativa (“Sessão iniciada”, “Sessão pausada”, etc.) agora são devidamente localizadas em vez de sempre aparecerem em inglês. Sessões existentes com logs em inglês são tratadas com elegância.
- Timestamps da Sessão Recuperada – As entradas do log de atividade da sessão agora refletem a duração total da sessão quando uma sessão é recuperada após uma falha ou encerramento forçado, para que o total no título e o carimbo de “Sessão encerrada” não discordem mais.
- Atividade ao Vivo Após Recuperação – A Tela Bloqueada e a Ilha Dinâmica agora refletem o tempo decorrido, a contagem de citações e a contagem de livros corretas quando uma sessão de leitura é recuperada após uma falha ou encerramento forçado. Qualquer Atividade ao Vivo desatualizada deixada do processo anterior do aplicativo é limpa, e uma nova é iniciada vinculada à sessão recuperada.
1.2.2 – 22 de abril de 2026
Alterado
- Cache de Seleções de Pesquisa – Duração do cache de seleções reduzida de 7 dias para 6 horas para que o conteúdo selecionado seja atualizado com mais frequência.
- Limpar Cache – “Limpar Cache” em Configurações agora também remove seleções de pesquisa em cache ao lado das imagens de capa de livros.
1.2.1 – 21 de abril de 2026
Alterado
- Seletor de Ícone do App – Ícones de apoiador bloqueados agora são clicáveis — tocar em qualquer ícone (ou na dica de cadeado) abre a folha de Suporte Kiveo, para que o fluxo de doação seja acessível sem sair para Configurações.
Corrigido
- Timer de Sessão Pausada – O timer da sessão pausada não avança mais enquanto o aplicativo está em segundo plano e reaberto; a entrada do log de atividade “Sessão retomada” agora é corretamente marcada no ponto de pausa.
- Pesquisa na Biblioteca – A pesquisa na biblioteca agora corresponde a autores e aliases de livros, além de títulos, tanto na biblioteca principal quanto em prateleiras individuais.
- Cor da Tela – Telas fixas (mais visivelmente no Kiveo de Suporte) renderizando intermitentemente elementos interativos e carregadores na cor azul do sistema em vez da cor de destaque do aplicativo.
1.2.0 – Primrose 🌼 – 04 de Abril de 2026
Adicionado
- Importar Goodreads: Livros Personalizados – Livros não encontrados via API agora podem ser importados como livros personalizados usando metadados CSV (título, autor, editora, páginas). Livros não encontrados são pulados por padrão; usuários optam por livro individualmente ou em massa via “Adicionar todos como personalizados”
- Importar Goodreads: Análise Flexível de CSV – Índices de colunas agora são resolvidos dinamicamente a partir da linha de cabeçalho, corrigindo importações que falham quando as exportações do Goodreads omitem colunas (por exemplo, Avaliação Média)
- Suporte Kiveo (Caixa de Gorjetas) – Sistema voluntário de gorjeta única para apoiar o desenvolvimento independente
- Três níveis de gorjeta literária: Marcador ($1,99), Livro ($4,99), Estante ($9,99) via RevenueCat
- Qualquer gorjeta desbloqueia permanentemente 6 ícones exclusivos do aplicativo
- Status de apoiador persistido em UserDefaults, iCloud KVS e RevenueCat
- Suporte para Restauração de Compras para desbloqueio de ícones entre dispositivos
- Seletor de Ícone do Aplicativo – Escolha entre 6 ícones alternativos exclusivos do aplicativo (desbloqueados via gorjeta)
- Lembretes de Leitura – Notificações push opcionais para convidar gentilmente os usuários de volta à leitura
- Tempo Diário de Leitura — notificação diária agendada em um horário escolhido pelo usuário
- Lembrete de Inatividade — notificação após um número definido pelo usuário de dias sem uma sessão (2/3/5/7 dias)
- Pausar Lembretes — silenciar temporariamente todos os lembretes até uma data escolhida
- Notificações conscientes do livro referenciam o livro de leitura atual pelo nome
- Toque na notificação leva diretamente ao livro de leitura atual
- Configurações sincronizadas com o iCloud
- Status Pausado – Novo status de livro entre Lendo e DNF (Não Terminado) para livros deixados de lado temporariamente, com nota de motivo opcional, excluído de Continuar Lendo e estatísticas de tempo para terminar, e Retomar Leitura com um toque a partir do Detalhe do Livro
- Bloqueio de Sessão – Impede a alteração do status para Pausado ou DNF enquanto uma sessão de leitura ativa estiver em andamento
- Notas de Motivo DNF – Nota opcional de texto livre (~280 caracteres) ao marcar um livro como Não Terminado (DNF), editável a partir do Detalhe do Livro
- Seção de Estatísticas DNF – Estatísticas dedicadas na tela inicial mostrando livros DNF, páginas lidas antes do DNF e ponto de parada comum
- Fila de Leitura da Mesa de Cabeceira – Fila curada de até 7 livros da lista de desejos para ler em seguida, com arrastar para reordenar, deslizar para remover e notas opcionais por livro
- Widget da Mesa de Cabeceira na Tela Inicial – Cartão compacto na tela inicial mostrando capas de livros da mesa de cabeceira com título contextual
- Sessão Ativa: Cartões de Citação e Reflexão – Capture citações e reflexões diretamente de dentro de uma sessão de leitura ativa
- Selos do Registro de Atividades – Selos visuais de captura e registro de atividades polido para reflexões
- Trocar Edição e Trocar Capa – Altere a edição ou a imagem da capa de um livro sem perder os dados de leitura
- Solicitações Automáticas de Avaliação – Solicita aos usuários que avaliem o Kiveo em marcos naturais de uso
- Backup: Cobrir Campos de Substituição – Dados de substituição cobertos incluídos na exportação/importação de backup do Kiveo
- Animação de Imprensa da Capa do Livro – Escala sutil + elevação de sombra ao pressionar capas de livros na biblioteca
- Celebração de Conclusão de Livro – Animação de brilho de destaque ao marcar um livro como concluído, com feedback tátil
- Carregadores Esqueléticos – Marcadores de espaço de respiração substituem spinners durante o carregamento da imagem da capa
- Animação da Barra de Progresso – Animação suave de mola quando o progresso de leitura muda
Alterado
- Reformulação da Tela de Configurações – Redesenhado de Formulário genérico para layout de ScrollView com a marca, com fundo gradiente quente, textura de grão, efeitos de vidro (iOS 26+) e seções baseadas em cartões
- Redesign da Tela de Pesquisa – Tela de pesquisa em branco transformada em uma experiência rica em descobertas
- “Do Nosso Jardim” — Seleções de livros curadas da API de seleções Kiveo com suporte de localização
- “Adicionados Recentemente” — Rolagem horizontal dos livros adicionados mais recentemente pelo usuário à biblioteca
- Pílulas de pesquisa recentes — Pesquisas recentes baseadas em pílulas horizontais substituindo a antiga visualização de lista
- Botão de digitalização de código de barras inline fixado na parte inferior do estado de pré-pesquisa
- Pop-over de filtro de pesquisa avançada com selo de filtro ativo
- Aba de pesquisa iOS 26 — Pesquisa como um item dedicado na barra de abas final no iOS 26+
- Reformulação do Onboarding – Fluxo de onboarding redesenhado de 6 telas com cópia de marca quente, tipografia personalizada, paleta de cores adaptável com suporte a modo escuro
- Planilha Novidades – Reformulada com animações no estilo onboarding e correspondência de versão aprimorada
- Abas de Detalhes do Livro – Abas renomeadas para “O Livro”, “Jornada” e “Lembranças” com indicador ativo de pílula/cápsula e efeito de vidro no iOS 26+
- Estados Vazios de Jornada e Lembranças – Estados vazios baseados em ilustrações com temas de jardim/livro mágico e CTAs
- Apelido do Livro em Sessões – Apelidos agora mostrados em logs de sessão ao vivo, Atividade ao Vivo e salvamentos de rascunho
- Continuar Lendo – Seção oculta quando todos os livros estão pausados
- Criação de Livro Personalizado (iOS 26+) – Botão de adicionar na barra de ferramentas da biblioteca vai diretamente para a criação de livro personalizado
- Estilização de Snackbar – Formato retangular arredondado com sombra quente e fundo de material regular
- Microcopy – Mensagens de estado vazio e texto de confirmação mais quentes e humanas
- Carregamento de Imagem – Imagens de capa existentes permanecem visíveis durante a atualização de metadados (sem flash)
- Gradiente de Cor – Gradiente do cabeçalho de detalhes do livro se dissolve suavemente em mudanças de paleta
- Localização – Todas as strings em inglês codificadas foram convertidas em chaves de localização semânticas; adicionado locale es-419
Corrigido
- Importação Goodreads – Importação corrigida falhando quando a exportação CSV omite colunas (por exemplo, Avaliação Média)
- Estabilidade da Sessão ao Vivo – Corrigido o reset do timer de sessões, perda de estado e flickering ao retornar do background, puxar notificações para baixo ou capturar citações
- Fundo da Mesa de Cabeceira – Cor de fundo corrigida para corresponder ao tema do app
- Persistência da Mesa de Cabeceira – Livros corrigidos que permaneciam na Mesa de Cabeceira após alterações de status baseadas em progresso
- Proporção da Imagem para Compartilhamento – Proporção corrigida para corresponder às especificações do Instagram (4:5)
- Prévia da Imagem para Compartilhamento – Prévia corrigida para corresponder à saída renderizada; o texto da citação agora é dimensionado para citações longas
- Detalhes do Livro – Aba corrigida que era dispensada e reaberta ao adicionar livro à biblioteca
- Vazamento da Animação Skeleton – Animação de pulso limitada para evitar vazamento de transação SwiftUI
- Capas de Atividade ao Vivo – Capas de livros corrigidas que não apareciam em Atividades ao Vivo em builds Beta
- Link Direto de Notificação – Notificação corrigida que abria o livro errado; abas ocultas para livros fora da biblioteca
- Filtros de Busca – Recorte corrigido em telas estreitas e traduções longas
- Layout da Página Inicial (iOS 26) – Oscilação de layout corrigida ao limitar a animação da barra de ferramentas
- Filtragem de Pausados/DNF – Alternância de ocultar pausados/DNF e capas personalizadas do seletor de livros corrigidas
- Estatísticas de Reflexões – Contador corrigido que faltava nas estatísticas "esta semana" nas telas de citações/reflexões
- Tela de Reflexões – Números duplicados corrigidos nas estatísticas e títulos de seção capitalizados
- Capas Personalizadas de Livros – Sincronização CloudKit corrigida para imagens de capas de livros personalizadas; capas agora são exibidas corretamente em widgets de Atividade ao Vivo
1.1.0 – 19 de janeiro de 2026
Adicionado
- Imagens para Compartilhamento – Crie belas imagens compartilháveis do seu conteúdo de leitura
- Compartilhe citações como cartões estilizados com atribuição do livro
- Compartilhe cartões de progresso de livros (lendo atualmente ou concluído)
- Compartilhe listas de livros de estantes como grades de capas
- Múltiplos temas: Padrão, Crepúsculo, Oceano, Floresta, Quente, Meia-noite
- Duas proporções: Story (9:16) e Post (3:4)
- Cartões de citação: Ative/desative o contorno do cartão
- Cartões de livro: Ative a visualização "Concluído" para livros finalizados
- Cartões de lista de livros: Edite o título e o texto do selo
- Pontos de entrada: Detalhe da Citação, Detalhe do Livro, Detalhe da Estante
- Rastreamento de análise do TelemetryDeck para uso de recursos
- Livros Personalizados – Crie livros manualmente quando não encontrados na busca
- Adicione um livro personalizado pelo menu da barra de ferramentas da Biblioteca (pressione e segure o botão ")
- Crie um livro personalizado a partir da tela de "nenhum resultado encontrado" na busca
- Indicador de livro personalizado em capas de livros (ícone de lápis, canto superior esquerdo)
- Edite os detalhes do livro personalizado através do menu da barra de ferramentas Detalhes do Livro
- Seleção de imagem de capa da biblioteca de fotos para livros personalizados
- Todos os recursos do aplicativo suportados: sessões, citações, reflexões, estantes
- Capas personalizadas salvas localmente com compressão JPEG
- Melhorias no Resumo da Tela Inicial – Seção de Resumo aprimorada na tela inicial
- Renomeado “Estatísticas de Leitura” para “Seu Resumo”
- Filtro de ano para visualizar estatísticas por ano (Vida toda, 2025, 2024, etc.)
- Rolagem horizontal de Livros Concluídos mostrando capas de livros finalizados
- Filtro persiste entre as aberturas do aplicativo
- Componente ChipPicker reutilizável para seleções em estilo de menu
- Redesign do Registro Manual de Sessão – UX aprimorada para preenchimento retroativo de sessões de leitura
- Capas de livros agora são exibidas nas linhas de livros da sessão
- Seletor de data aprimorado com ícone de calendário e exibição formatada de dia da semana/data
- Entrada de progresso baseada em delta: “Páginas lidas” em vez de “Página atual” para preenchimento retroativo mais fácil
- Suporte ao modo de porcentagem: Exibe “Progresso: X%” para audiolivros e livros com acompanhamento de porcentagem
- Progresso agora é opcional – registre sessões apenas de duração sem exigir entrada de página/porcentagem
- Pré-seleção ao abrir a partir da barra de ferramentas Detalhes do Livro (botão Registrar Sessão)
- Planilha dedicada de seleção de livros substitui a pesquisa inline
- Importação/Exportação de Backup Kiveo – Funcionalidade completa de backup e restauração de dados
- Exporte todos os dados da biblioteca para um arquivo de backup JSON (livros, estantes, sessões, citações, reflexões)
- Importe do backup com modo de mesclagem (mantém o existente, adiciona novo) ou modo de substituição (importação limpa)
- Visualize o conteúdo do backup antes de importar com resumo da contagem de dados
- Detecção de duplicatas por ISBN durante a importação de mesclagem
- Indicador de progresso durante a importação com descrições de fase
- Localizado em Configurações na nova seção “Importar e Exportar”
- Importação do Goodreads movida para a seção Importar e Exportar
- Compartilhamento de Livros com Links Profundos – Compartilhe livros com outros usuários Kiveo através de links compartilháveis
- O botão Compartilhar na barra de ferramentas Detalhes do Livro gera um link para
share.kiveo.app
- O suporte a link profundo abre livros compartilhados diretamente no aplicativo
- WebView Safari no Aplicativo – Links HTTP/HTTPS agora abrem dentro do aplicativo
- Evita a troca de contexto para o app Safari externo
- Vários Cards de Leitura Atual – A tela inicial agora exibe todos os livros que você está lendo no momento
- Carrossel rolável horizontalmente quando vários livros estão em andamento
- Cada card mostra a capa do livro, título e progresso de leitura
- Efeito de Vidro em Continuar Lendo (iOS 26) – Efeito de vidro aplicado aos cards de Continuar Lendo na tela inicial
- Atualização Automática de Dados do Livro – Busca automaticamente metadados atualizados do livro da API
- Atualiza imagens de capa, descrições e outros detalhes quando disponíveis
- Seletor de Status Personalizado – Novo filtro de status em estilo pílula substituindo controles segmentados
- Gestos de deslizar: puxe além da borda final para ir para “Todos”, puxe além da borda inicial para retornar à seleção anterior
- Animações suaves com feedback tátil
- Aplicado nas visualizações Biblioteca, Detalhes da Estante, Seletor de Livros e Adicionar Livros à Estante
- Filtro de Biblioteca Persistente – O filtro de status selecionado agora persiste entre as inicializações do app
- Ocultar Livros DNF – Novo botão no menu da barra de ferramentas da Biblioteca para ocultar a opção de status DNF
- A configuração se aplica globalmente a todos os seletores de status em todo o app
- Muda automaticamente para “Todos” se DNF foi selecionado quando oculto
- Apelidos de Livros – Defina nomes de exibição personalizados para livros com títulos longos ou indesejados
- Defina o apelido através do menu da barra de ferramentas na visualização Detalhes do Livro
- Opção de limpar apelido (visível apenas quando o apelido está definido)
- Indicador de ícone de lápis aparece em todo o app quando um livro tem um apelido
- Apelido exibido em: Detalhes do Livro, itens da Biblioteca, widget Continuar Lendo, Sessões Ativas, Citações, seletores de Livros e gerenciamento de Estante
- Feedback Tátil – Feedback tátil em todo o app para uma melhor experiência do usuário
- Impacto leve para alternâncias, seleções e toques em botões
- Impacto médio para ações de pausar/retomar e reordenar por arrastar
- Notificações de sucesso para salvamentos, conclusões e importações
- Notificações de erro para exclusões e falhas
- Utilitário centralizado
HapticManager para uso consistente
- Editor de Datas de Livros – Edite datas de livros (Adicionado, Iniciado, Concluído) a partir dos Detalhes do Livro
- Toque na seção de datas nas ações da biblioteca de livros para abrir a folha do editor
- Edite dateAdded, dateStarted e dateCompleted com seletores de data compactos
- Limpe datas opcionais (iniciadas/concluídas) com o botão limpar
- O status é sincronizado automaticamente com base nas alterações de data (datas de conclusão definem o status como Concluído, etc.)
- Exibe a data de conclusão ao lado das datas de adição/início existentes
- Barra de Ferramentas Liquid Glass iOS 26 – Navegação redesenhada para abraçar a estética iOS 26 Liquid Glass
- Títulos exibidos na posição principal da barra de ferramentas com visibilidade de fundo de vidro
- A barra de abas minimiza ao rolar para baixo para mais espaço de conteúdo
- Títulos e logo da barra de ferramentas desaparecem suavemente ao rolar
- A barra de ferramentas da tela inicial inclui o ícone do logo Kiveo
- Estilo de botão proeminente de vidro para ações da barra de ferramentas
- Recurso elegante para navegação padrão de título grande no iOS 18
Alterado
- Clareza Aprimorada das Estatísticas de Leitura – Subtítulos descritivos adicionados aos cartões de estatísticas na tela inicial
- “Livros Lidos” agora mostra o subtítulo “Concluídos”
- “Páginas Lidas” agora mostra o subtítulo “De Sessões”
- “Sequência Atual” (renomeado de “Sequência de Dias”) agora mostra o subtítulo “Dias”
- Confirmações de Salvamento Consistentes – Comportamento unificado de confirmação de salvamento para citações e reflexões
Corrigido
- Limite Manual de Páginas da Sessão – Corrigido o registro de páginas excedendo a contagem total de páginas do livro
- Ao registrar uma sessão manual, as páginas agora são corretamente limitadas pelas páginas restantes do livro
- Exemplo: Se um livro de 300 páginas tem 280 páginas lidas, registrar 50 páginas agora salva corretamente apenas 20 páginas
- Preservar Data de Conclusão do Livro – Corrigido a data de conclusão sendo sobrescrita ao registrar sessões adicionais
- Livros que já possuem uma data de conclusão não terão mais sua data sobrescrita
- Preserva a data de conclusão original mesmo ao registrar sessões que excedem o total de páginas
- Limpeza da Atividade ao Vivo – Corrigido a Atividade ao Vivo ficando presa na tela de bloqueio após o fim da sessão ou travamento do aplicativo
- Adicionada limpeza na inicialização do aplicativo para encerrar Atividades ao Vivo órfãs
- A Atividade ao Vivo agora mostra o estado pausado ao se recuperar de uma sessão interrompida
- Encerra corretamente todas as atividades quando o usuário descarta a sessão recuperada
- Carimbos de Data/Hora de Recuperação de Sessão – Corrigido carimbos de data/hora incorretos em sessões recuperadas
- Sessões recuperadas agora preservam o horário de início original para carimbos de data/hora precisos
- Corrige o problema em que os registros da sessão mostravam horários errados após a recuperação (por exemplo, sessão de 3 minutos apesar de leitura real mais longa)
- Largura do Cartão Continuar Lendo (iPhone) – Corrigido o cartão de livro único não expandindo para a largura total no iPhone
- Exibição de Estatísticas do Livro – Corrigido a contagem inflada de sessões e tempo de leitura em todo o aplicativo
- O widget “Continuar Lendo” na página inicial agora conta apenas sessões concluídas
- A aba Estatísticas de detalhes do livro agora filtra entradas órfãs de ReadSessionBook
- Criação órfã de ReadSessionBook corrigida durante a captura de citações, o que causou inchaço nas estatísticas
- ReadSessionBook em cache para vinculação de citações para evitar múltiplas entradas órfãs
- Ordem do Registro de Atividade da Sessão – Registros de sessão fixos aparecendo em ordem aleatória na exibição de detalhes da sessão
- Os registros agora são classificados por carimbo de data/hora (mais recentes primeiro) para corresponder à exibição da sessão ao vivo
- Exibição de Progresso Percentual – Exibição incorreta de porcentagem corrigida em itens de livro e indicadores de progresso
- Salvar Citações/Reflexões – Problema corrigido onde citações e reflexões falhavam ao salvar em certas condições
- Estabilidade da Sessão ao Vivo – Problemas de travamento/congelamento potenciais corrigidos durante sessões de leitura ao vivo
- Cache de Imagem de Continuar Leitura – Capas de livros não estavam sendo armazenadas em cache corretamente no widget Continuar Leitura
- Cor de Tonalidade das Configurações – Cor de tonalidade incorreta corrigida nas telas de Configurações e Sobre
- Persistência do Layout da Biblioteca – Preferência de layout da biblioteca não estava persistindo entre as inicializações do aplicativo
Desempenho
- Otimização da Tela Inicial – Desempenho de carregamento e renderização aprimorado na Tela Inicial
- Cache de Paleta de Cores da Capa do Livro – Cores dominantes em cache das capas dos livros para renderização mais rápida da interface do usuário
1.0.2 – 21 de dezembro de 2025
Adicionado
- Gerenciar Livros da Estante em Massa – Adicione ou remova vários livros de uma estante de uma vez
- Novo botão “+” na barra de ferramentas da estante abre o seletor de livros (apenas estantes personalizadas)
- Interface de multisseleção com caixas de seleção para seleção rápida
- Alternar livros ativados/desativados – adicione novos livros ou remova os existentes
- Filtrar abas (Todos/Lendo/Lista de Desejos/Concluído) para refinar a lista de livros
- Opções de classificação (Atividade Recente/Título/Autor/Data de Adição)
- Pesquisar por título ou autor
- Ocultar Estantes Vazias – Nova opção na barra de ferramentas da Biblioteca para ocultar estantes sem livros
- Disponível quando “Agrupar por estantes” está ativado
- A configuração persiste entre as inicializações do aplicativo
- Placeholder de Estante Vazia – Cartão placeholder exibido em estantes vazias
- Mostra o ícone “+” com o rótulo “Adicionar Livros”
- Tocar abre o seletor de livros em massa para essa estante
- Ações Rápidas de Gerenciamento de Estante – Toque em qualquer estante em Gerenciar Estantes para adicionar livros
- Também disponível através da opção de menu de contexto “Gerenciar Livros”
1.0.1 – 17 de dezembro de 2025
Adicionado
- Avaliar Kiveo – Nova opção em Configurações para avaliar o app na App Store
- Classificação de Estante – Classifique livros manualmente dentro das estantes
- Reordenação por arrastar e soltar através da opção Classificar no menu da estante
- A nova opção “Classificação de Estante” na visualização em grade da Biblioteca exibe a ordem personalizada
- Ícone indicador mostra quais estantes têm classificação personalizada
- Novos livros adicionados às estantes aparecem no topo
- Ordem de classificação independente por estante (livros em várias estantes têm posições separadas)
- A opção de classificação da Biblioteca agora persiste entre as inicializações do app
- Protocolo DataUpgrade para migrações padronizadas
- Recurso Novidades – Tela pós-atualização mostrando novos recursos para os usuários
- Carrossel horizontal com paginação para múltiplos anúncios de recursos
- Mostra apenas para usuários existentes após atualizações do app (não para instalações novas)
- Exibição cumulativa de todos os recursos desde a última versão vista pelo usuário
- Pode ser dispensado por botão de fechar ou gesto de deslizar
- Botão “Começar” no slide final
- Opção em Configurações para ver Novidades a qualquer momento
- Integração TelemetryDeck para análises
- Testes de unidade para VersionComparator e WhatsNewRegistry
- Progresso Percentual – Insira o progresso de leitura por páginas ou porcentagem
- Seletor segmentado (Páginas / %) em prompts de atualização de progresso
- Preferência por livro: lembra o último modo usado para cada livro
- Opção de porcentagem disponível mesmo sem o número total de páginas
- A troca de modos limpa a entrada e mantém a preferência
- Aplica-se ao toque de progresso em Detalhes do Livro e prompts de Sessão Ativa
Corrigido
- Filtragem de Estante – Corrigido problema onde Pilha de Folhas aparecia vazia ao ser aberta da Biblioteca
- ShelfDetailView agora tem filtragem independente de LibraryView
- Pilha de Folhas exibe corretamente todos os livros sem estante, independentemente do filtro da Biblioteca
1.0.0 – 12 de dezembro de 2025