Atualização do produto
A maior atualização de passaporte de viagem da Immich e Mapsake
Uma conexão direta com uma biblioteca Immich hospedada localmente agora pode criar e manter o atlas, enquanto um Passaporte redesenhado transforma a mesma história em cartões, mapas de dados, filtros e uma roda do globo terrestre.
A maior atualização do Mapsake até o momento.
Mapsake começou com uma promessa bastante simples: marcar os lugares que você visitou, onde você viveu e que deseja ver, e manter esse registro privado e portátil. O mapa ainda é o centro do aplicativo, mas esta versão altera a rapidez com que um verdadeiro histórico de viagens pode aparecer nele e o que você pode fazer depois que ele estiver lá.
As duas partes maiores são mais profundas. Immich suporte e um Guia de Viagem reconstruído. Um transforma uma biblioteca de fotos hospedada localmente em evidências de viagem úteis; o outro transforma essa história em algo que vale a pena explorar e compartilhar.
Esta é a maior atualização do Mapsake até agora, não porque adiciona a lista mais longa de configurações, mas porque fecha o ciclo dos dados da fonte privados para um atlas pessoal completo.
Immich é agora uma fonte de fotos de primeira classe.
Muitas pessoas que se preocupam em possuir sua biblioteca de fotos usam o Immich. É um sistema de fotos e vídeos auto-hospedado, o que o torna uma opção natural para a abordagem local do Mapsake. O desafio foi dar suporte a ele sem transformar o Mapsake em outro carregador de fotos ou pedir a um servidor intermediário para processar o histórico de viagens de alguém.
A conexão é direta. Nas configurações, insira o URL do seu servidor Immich e uma chave API criada a partir de lá. Configurações do usuário do Immich.. Mapsake armazena a chave no Keychain da Apple e comunica a partir do dispositivo para esse servidor. Não existe uma conta Mapsake para criar e nenhum serviço Mapsake que receba a biblioteca.
Mapsake lê os ativos de localização nas páginas, incluindo suas coordenadas, datas de captura e modelo da câmera disponível. Ele salva a pequena quantidade de metadados necessários para criar o atlas e, em seguida, resolve esses pontos por meio do mesmo pipeline de localização usado pelo Apple Fotos. As miniaturas do Immich podem aparecer nas histórias de localização, enquanto uma visualização maior é recuperada do servidor do usuário somente quando é aberta.
Esse último detalhe é importante. O aplicativo não precisa duplicar uma biblioteca Immich para torná-la útil. Ele mantém uma referência a cada ativo de origem, um índice de viagens local e compacto e um cache de miniaturas regeneráveis. O original permanece onde seu proprietário o colocou.
O primeiro importador do Immich foi útil, mas incompleto.
A primeira implementação usou o endpoint de marcador de mapa do Immich. Isso foi um ponto de partida promissor: uma solicitação retornou todos os ativos localizados com as coordenadas e os nomes dos locais já resolvidos pelo Immich. Não era necessário usar o serviço de geocodificação de rede da Apple e não havia um limite arbitrário para o tamanho da biblioteca.
Essa versão poderia representar países rapidamente, mas ainda não era uma fonte de fotos real. Um simples marcador não dava ao Mapsake uma identidade duradoura suficiente para exibir a imagem novamente, preservar sua data de captura, aplicar os mesmos filtros de câmera do Apple Fotos ou remover uma imagem do mapa sem remover um local inteiro.
O importador, portanto, migrou para a pesquisa de metadados paginados do Immich. Cada elemento agora possui um identificador de origem estável, uma data, coordenadas e um modelo de câmera EXIF disponível. O Mapsake nomeia o identificador com um prefixo Immich antes de colocá-lo no armazenamento compartilhado de metadados de fotos, para que ele nunca possa entrar em conflito com um identificador do Apple Fotos que contenha o mesmo texto.
Essa migração também corrigiu uma inconsistência sutil do produto. Antes, um local derivado do Immich poderia exibir uma contagem de fotos, mas ao abri-lo, mostrava uma grade de fotos vazia. O mapa sabia que as imagens existiam, enquanto a história do local não sabia como recuperá-las. Tratar o Immich como uma fonte indexada do mesmo tipo que Fotos permitiu que contagens, filtros, miniaturas, exclusões, mapas de calor e histórias correspondessem.
Um importador, várias fontes
Immich também forçou uma refatoração útil. O modelo original de importação de fotos misturava o acesso à fonte, a resolução de locais, a mesclagem, o progresso e a apresentação em um único modelo. Isso era viável para o Apple Photos, mas criaria uma ramificação separada para cada novo serviço.
Mapsake agora separa essas responsabilidades. Uma fonte produz registros de localização normalizados. O mecanismo de importação sem interface de usuário agrupa ou resolve esses registros, aplica as mesmas regras de hierarquia e combina o resultado no atlas. A interface do usuário fornece o acompanhamento do progresso e a revisão; a sincronização em segundo plano pode chamar o mesmo mecanismo sem criar a interface.
O benefício vai além do Immich. Os importadores de arquivos, Nomads e as integrações posteriores podem preservar sua análise específica da fonte, mantendo as regras que determinam quando uma cidade implica uma região e um país, como os duplicados são tratados e qual marca existente deve ser atualizada em vez de recriada.
Isso é menos glamouroso do que um novo cartão, mas é o tipo de limite interno que mantém um aplicativo rico em recursos compreensível. Um novo importador deve responder principalmente à pergunta "como leio esta fonte?" em vez de responder repetidamente à pergunta "o que significa um lugar?"
Sincronização em segundo plano sem rastreamento contínuo
Após a primeira importação, o Immich pode ser ativado como uma fonte de fundo opcional. Quando o sistema concede tempo de segundo plano ao Mapsake, o aplicativo verifica novamente o servidor, atualiza sua instantâneo de ativos locais e mescla os novos locais descobertos no mapa. As notificações para novos locais permanecem opcionais.
Isso não é rastreamento GPS contínuo. Mapsake reconstrói o registro a partir das datas e localizações das fotos que já estão armazenadas no Immich. Ele também mantém as ferramentas de revisão e edição importantes quando os metadados são imperfeitos: filtros de dispositivo, limites mínimos de fotos, inspeção de locais e a capacidade de excluir uma imagem individual do mapa sem excluí-la de sua fonte.
Immich não expõe todos os campos que o Apple Photos pode fornecer. Em particular, altitude e velocidade não estão disponíveis por este caminho, portanto, os filtros baseados nesses campos não afetam os ativos do Immich. Prefiro declarar essa limitação claramente, em vez de fingir que todas as fontes são idênticas.
A sincronização deve falhar com segurança
O trabalho em segundo plano é oportunístico nas plataformas Apple. O aplicativo pode solicitar acesso à localização, mas não pode garantir que o iOS o ative em um minuto exato. Um servidor hospedado localmente também pode estar offline, acessível apenas por meio de uma rede doméstica, ou pode retornar temporariamente um erro de autorização após a alteração de uma chave de API.
Mapsake considera que a captura de tela da origem é definitiva somente após uma recuperação bem-sucedida. Uma solicitação com falha não apaga o atlas anterior. O aplicativo registra o status da origem, agenda a tarefa novamente e conta as falhas consecutivas. Após várias falhas da fonte de rede, ela desativa essa automação e informa ao usuário em vez de tentar repetidamente indefinidamente.
O mesmo serviço executa uma verificação leve quando o aplicativo retorna ao primeiro plano, o que oferece um caminho prático para a sincronização, mesmo quando o agendamento em segundo plano é conservador. Uma opção de Sincronizar Agora permanece disponível porque a intenção do usuário deve sempre ter precedência sobre uma heurística de agendador.
A chave da API nunca aparece em logs, exportações ou um compartilhamento Passport.
O Passe tornou-se um verdadeiro segundo lar para o atlas.
O Passport original era uma tela de estatísticas compacta. Contava países e continentes e gerava um cartão compartilhável. Útil, mas muito menor do que o mapa por trás.
O novo Passport é uma coleção de histórias deslizáveis criadas a partir do mesmo registro de viagem:
- Um mapa do mundo e um cartão com a porcentagem do mundo visitado, vivido, a ser visitado ou uma visualização combinada.
- Bandeiras de países, progresso em continentes, regiões, cidades, aeroportos, número de fotos e dias no local.
- Filtros de região e ano, para que um atlas de uma vida inteira possa se tornar um continente ou um capítulo.
- Mapas de dados sombreados pelo número de fotos, pela data ou pelo tempo gasto.
- Variações de cartas coloridas e controles de cores por carta.
- Um vídeo de globo terrestre que é renderizado no dispositivo como um vídeo pronto para compartilhar nas redes sociais.
Cada cartão usa o mesmo modelo de dados Passport subjacente. Isso mantém a consistência dos totais quando alguém altera uma visualização, uma região ou um ano, e permite que o aplicativo Passport principal, o aplicativo Passport para amigos, os cartões compartilhados, os widgets e o Apple TV reutilizem os mesmos cálculos em vez de criar versões separadas da verdade.
O primeiro protótipo de cartão alternativo revelou por que esse modelo compartilhado é importante. É fácil criar uma bela grade de continentes que conta os países de uma maneira e um mapa que conta os territórios de outra maneira. Ambos podem parecer plausíveis isoladamente. Um ao lado do outro, a contradição é óbvia.
Os dados do Passport são calculados antes de qualquer cartão específico ser criado. Eles incluem a visualização de viagem selecionada, o escopo de tempo e região, as contagens, as flags, os totais de fotos, os intervalos de datas, a cobertura, os limites de corte e as cores do mapa. Um cartão decide como expressar esses valores; ele não os decide novamente.
Essa divisão tornou possível as variantes de cartões horizontais. A rolagem não carrega um novo conjunto de dados nem executa uma nova importação. Isso altera o argumento visual: mapa primeiro, números primeiro, bandeiras primeiro ou uma lista classificada. O botão de compartilhamento recebe a variante visível, então a imagem exportada é o cartão que o usuário realmente escolheu, em vez do primeiro cartão de sua família.
Um passaporte deve parecer pessoal sem perder a legibilidade
O sofisticado sistema de mapas começou como uma tentativa de ir além dos painéis de estatísticas genéricos e monocromáticos. As cores das lentes agora criam gradientes e destaques, os continentes podem usar suas próprias paletas, e os mapas podem adicionar uma rota de voo ou um globo brilhante sem alterar os dados subjacentes.
A personalização introduziu outra restrição. As cores do texto, do destaque e do fundo podem ser editadas em cada cartão, mas o renderizador ainda deve preservar o contraste tanto no modo claro quanto no escuro e na resolução de exportação para redes sociais. As configurações padrão fazem a maior parte do trabalho; a edição está disponível para aqueles que desejam que seu Passaporte corresponda ao próprio mapa ou a uma viagem específica.
O filtragem de regiões se tornou mais do que um simples menu suspenso. A seleção de um continente altera os limites da área do mapa e substitui a cobertura global por subregiões úteis: o sudeste asiático, os Bálcãs, os países nórdicos ou a cobertura de estados e províncias na América do Norte. A filtragem de anos aplica a mesma ideia ao tempo. O passaporte pode descrever uma vida inteira, ou apenas o que era verdade no final de 2016.
O cartão de mapa de dados foi outro ponto de unificação. As fotos, a atualidade e o tempo gasto foram os modos Atlas iniciais. Mover a métrica e a lógica de cores compartilhadas abaixo de ambas as superfícies permitiu que o Passport exportasse exatamente o mapa de calor que o Atlas estava mostrando, completo com uma legenda discreta.
O mesmo se aplica à bobina. Não é uma gravação da interface do aplicativo. O Mapsake renderiza o globo, os países destacados, as estatísticas e a sobreposição de marca em um vídeo adequado e, em seguida, passa o arquivo final para a folha de compartilhamento normal. Nada é postado automaticamente.
Por que renderizar um vídeo curto em vez de gravar a tela?
Uma gravação de tela capturaria as barras de navegação, os indicadores de toque, as dimensões do dispositivo e a taxa de quadros que a interface ao vivo pode manter. Também faria com que o resultado exportado dependesse do fato de o usuário executar o mesmo gesto corretamente a cada vez.
O renderizador da bobina usa um globo SceneKit dedicado e uma sobreposição de estatísticas transparente. Os quadros são escritos em um vídeo H.264 com uma altura vertical conhecida, com uma duração de rotação controlada e sem elementos da interface. O cartão Passaport inativo usa a mesma velocidade do globo, então tocar em Compartilhar parece estar exportando o item que já está na tela em vez de alternar para uma animação diferente.
Este renderizador offscreen é deliberadamente separado do globo Apple Maps usado para a exploração diária. MapKit é excelente para mapas interativos transmitidos, mas não é um renderizador de vídeo determinístico. Manter a geometria e os caminhos SceneKit mais antigos para mapas, reels, widgets e Apple TV é uma duplicação com um propósito: essas superfícies precisam de pixels repetíveis sem um serviço de mapa ativo.
A geração de vídeo é feita localmente e exibe o progresso porque vários segundos de quadros de alta resolução representam um trabalho real. Quando termina, o usuário pode salvá-lo em Fotos, enviá-lo via Mensagens ou abrir a folha de compartilhamento do sistema. O Mapsake não precisa de uma conta social ou um ponto de extremidade de upload para criar um resultado pronto para uso em redes sociais.
Uma única fonte de verdade, muitas maneiras de acessá-la.
Immich e Passport podem parecer recursos não relacionados, mas resolvem partes adjacentes do mesmo problema. A importação deixa o atlas completo o suficiente para ser confiável. O Passport torna esse registro completo fácil de revisitar.
Uma foto geolocalizada pode se tornar uma cidade, uma região e um país; contribuir para mapas de calor de fotos e de antiguidade; adicionar tempo a uma viagem; preencher um cartão de passaporte; e fortalecer a história de um lugar. Corrija a marca subjacente uma vez e todas as superfícies devem corresponder.
Essa é a direção arquitetônica do Mapsake: um histórico de viagens duradouro, com várias visualizações em vez de vários bancos de dados.
Ainda existem limites claros. Immich deve ser acessível a partir do dispositivo para miniaturas e novas sincronizações. O iOS determina quando as tarefas em segundo plano são executadas. Os metadados das fotos podem provar que uma câmera estava em algum lugar, mas não por que o viajante estava lá. As estatísticas do passaporte são precisas apenas se as datas e as marcas estão corretas.
Esses limites são o motivo pelo qual cada camada permanece editável. A automação deve ajudar alguém a criar um atlas confiável rapidamente; ela nunca deve fazer com que o registro pareça irrecuperável.
Como experimentar.
- Abrir Registar, escolha Adicionar lugares do servidor Immich, e conecte a URL do seu servidor e a chave da API.
- Teste a conexão, execute a importação e revise os locais antes de salvar.
- Habilite opcionalmente o Immich na sincronização em segundo plano se você quiser que o atlas permaneça atualizado.
- Abrir Passaporte, altere as lentes e, em seguida, tente os filtros de região e ano.
- Deslize um cartão para visualizar layouts alternativos, altere a cor de um cartão ou crie uma apresentação de globo rotativo.
Mapsake permanece gratuito, sem anúncios, assinatura ou conta obrigatória. O objetivo de uma atualização maior não é criar mais coisas para vender. É tornar o atlas mais útil.