4 pontos por GN⁺ 3 시간 전 | 2 comentários | Compartilhar no WhatsApp
  • O recurso de mapas do Pedometer++ no watchOS foi refinado por mais de 6 anos com o objetivo de oferecer a melhor experiência de mapas possível no Apple Watch, e com o lançamento do Pedometer++ 8 alcançou um marco importante
  • A tentativa inicial gerava mapas no servidor e os exibia no Apple Watch, mas como era necessário transmitir os dados do exercício de ida e volta a cada vez, isso não era prático para navegação nem para o uso cotidiano, e também não funcionava offline
  • Para obter o nível de controle necessário no watchOS, foi criado diretamente um motor nativo de renderização de mapas em SwiftUI e, em 2021, ele já conseguia renderizar mapas baseados em tiles de forma estável e sobrepor informações de localização
  • Para se adequar ao watchOS 26 e ao Liquid Glass, foi criado um novo mapa-base junto com Andy Allen, reduzindo a complexidade visual e aumentando contraste e saturação para facilitar a leitura mesmo sob elementos com aspecto de vidro
  • Em colaboração com Rafa Conde, foi criado um novo layout que sobrepõe as métricas no canto superior esquerdo e coloca o mapa como a página do topo em uma pilha vertical; depois de centenas de milhas de validação em campo, isso foi incorporado ao design final do Pedometer++ 8

A jornada dos mapas no watchOS do Pedometer++

  • Um hábito essencial para não se perder em montanhas ou ao ar livre é verificar a posição atual com muita frequência durante o deslocamento, e um mapa no pulso é uma das melhores formas de fazer isso
  • Desde os primeiros dias do Apple Watch, havia o desejo de ter um bom mapa no pulso, mas, na prática, a possibilidade só surgiu de verdade depois que o watchOS 6 introduziu o SwiftUI e tornou viável criar apps “de verdade”
  • Os primeiros Apple Watch tinham tela pequena e processadores lentos, o que dificultava atingir o nível desejado, e a primeira tentativa de mapa no Pedometer++ usava geração de mapas no servidor
  • Esse método de geração no servidor exigia o envio e retorno dos dados relevantes do exercício a cada atualização de tela, o que foi útil para validar a ideia, mas não era prático para navegação ou uso cotidiano e não funcionava offline

Motor de mapas customizado com SwiftUI

  • Para avançar no watchOS, era necessário ter controle de nível mais baixo, então foi construído internamente um motor completo e nativo de renderização de mapas em SwiftUI
  • Na época, SwiftUI era a opção suportada no watchOS, e isso também ajudava a colocar mapas em widgets que só suportavam SwiftUI
  • Em 2021, o projeto chegou a um nível em que era possível renderizar mapas no watchOS com estabilidade e bom desempenho
  • Esse motor consegue renderizar mapas baseados em tiles e sobrepor informações de localização por cima deles

As limitações do design de tela no watchOS

  • Projetar apps para watchOS era um desafio ao mesmo tempo interessante e frustrante por causa das restrições de tela pequena e uso com uma mão
  • O objetivo era permitir que o usuário lesse o mapa e o utilizasse para navegação, sem perder acesso às informações relacionadas ao exercício
  • Depois de várias tentativas de design, durante um tempo foi adotado um modo modal que alternava entre a tela do mapa e a tela de métricas por meio de um botão no canto superior esquerdo
  • Esse método permitia, em uma tela, mover, ampliar e reduzir o mapa livremente e, em outra, oferecer métricas e controles por meio da interface típica de páginas por abas do watchOS
  • Mas esse design parecia um compromisso, e era difícil colocar um mapa interativo dentro de uma estrutura de UI que exigia gestos de deslizar
  • À medida que a tela do Apple Watch ficou maior, parece ter diminuído a necessidade de separar com tanta rigidez um espaço exclusivo para tornar o mapa útil
  • Depois, também foi considerada a ideia de colocar as métricas na parte inferior da tela, mas isso gerava outras limitações em saídas longas ou em exercícios que não eram centrados em navegação
  • Várias propostas de design compartilhavam a limitação de que o app precisava mostrar apenas um conjunto fixo de campos de cada vez
  • Também seria possível tornar a interface configurável pelo usuário, mas no design de watchOS deve-se evitar interações que levem mais de alguns segundos, e configurações de usuário são inerentemente trabalhosas, então isso não era adequado

Criando um novo mapa alinhado ao Liquid Glass

  • Enquanto a estrutura do app ainda estava em discussão, a Apple anunciou o watchOS 26 e o Liquid Glass
  • Um elemento central do design do Liquid Glass é o uso de camadas sobrepostas, e o tipo de cores que combina bem entre si também era importante
  • Antes, o app usava o Thunderforest Outdoors como mapa-base padrão, e embora o conteúdo incluído fosse bom, ele não combinava bem com o Liquid Glass quando elementos com aparência de vidro eram colocados por cima
  • Junto com o cartógrafo Andy Allen, foi criado um mapa-base totalmente novo para funcionar bem com o Liquid Glass
  • Nesse novo mapa, a complexidade visual foi reduzida, o contraste entre elementos foi aumentado e a saturação dos elementos do mapa foi elevada para que eles não ficassem opacos e embaralhados sob o vidro
  • Esse trabalho também tornou possível criar uma variante em modo escuro dos tiles do mapa
  • O modo escuro é útil também no iOS, mas teve um efeito especialmente grande no watchOS, e o ajuste foi feito com a meta de criar um mapa muito legível até à distância de um braço
  • Como resultado, surgiu um mapa apropriado para o watchOS, mas o design do app à altura desse nível ainda deixava a desejar

Rafa Conde e o novo layout

  • Para sair do impasse de design, houve uma colaboração com o designer Rafa Conde
  • Entre vários layouts alternativos, a direção final foi um design que sobrepõe as métricas no canto superior esquerdo e posiciona o mapa como a página superior de uma pilha vertical
  • Esse design resolve o problema do mapa interativo ao fazer com que seja necessário tocar primeiro no mapa para entrar no modo de exploração
  • Depois que o conceito geral foi definido, o trabalho continuou com a implementação do app real e o refinamento dos detalhes
  • O conceito de Rafa foi rapidamente transformado em um protótipo funcional e validado em campo ao longo de centenas de milhas de caminhada
  • Depois, a tipografia e escolhas de design mais sutis foram refinadas até chegar ao design final incluído no Pedometer++ 8
  • A tela final se consolidou como algo legível e útil, natural para a plataforma watchOS, mas ainda assim com um design novo e distintivo

Por que não usar MapKit

  • O trabalho no mapa customizado começou antes de o Apple MapKit para watchOS existir, e a razão para implementar a solução própria em vez de usar o MapKit foi a falta de configurabilidade e utilidade necessárias para o Pedometer++
  • O MapKit é bom para usos básicos, mas não oferecia o nível de controle que o Pedometer++ queria entregar
  • O MapKit no watchOS é sempre exibido em modo escuro e, embora isso possa ser um bom padrão, cria limitações em termos de acessibilidade e escolha do usuário, então deveria haver opção de escolha
  • O MapKit no watchOS passou a fazer mais coisas com o tempo, mas ainda tinha limitações em animações e overlays
  • A cobertura de curvas de nível do terreno e de trilhas no MapKit está melhorando, mas ainda há muitos lugares onde são necessários detalhes mais ricos mesmo em áreas em que o mapa do MapKit parece quase vazio
  • Como exemplo, é feita uma comparação entre o mapa customizado e o MapKit na entrada de uma trilha favorita na Escócia

2 comentários

 
xguru 1 시간 전

Eu não faço trilha, mas o esforço colocado no app é enorme mesmo.
Chegaram a contratar cartógrafos...

 
GN⁺ 3 시간 전
Comentários do Hacker News
  • Parece uma grande falha o Apple Watch não ter mapas topográficos/de trilha feitos pela própria Apple. Nem o Watch Ultra, o mais caro e “para exploradores”, tem isso, e recursos como importação de GPX parecem quase um sonho
    No fim é um dispositivo de estilo de vida, mas ainda assim decepciona

    • Acho que também não levou mais de 10 anos para fazer um app de calculadora para iPad
    • Sinceramente, acho que quanto menos apps feitos pela Apple, melhor para o ecossistema e para a qualidade geral dos apps. Os apps que a Apple “sherlockou” recentemente não têm uma qualidade tão boa assim e, ao virarem apps padrão, fica muito mais difícil para terceiros competirem
  • A evolução é excelente, e também é bom ver o que dá para criar quando se sai de convenções de design como interface centralizada e simétrica. Dá até vontade de ter um Apple Watch
    Nos screenshots do artigo aparece Hidden Valley, em Glen Coe, na Escócia, uma das minhas trilhas curtas favoritas
    Só que as lembranças ligadas à casa no fundo daquele vale são menos agradáveis. Eu costumava passar de carro por ali e olhar quase sonhando para aquela casa, sempre fechada, num canto isolado entre as montanhas, pensando em como seria especial morar num lugar assim. O estacionamento da trilha ficava a apenas algumas centenas de metros adiante, pela estrada
    Alguns anos depois reconheci a casa num documentário do Louis Theroux, em que ele visitava o lugar junto com o dono, a personalidade de TV Jimmy Saville. Depois voltei para a Austrália, e então veio à tona, após a morte dele, que Saville era um dos mais infames abusadores de crianças e criminosos sexuais do Reino Unido, o que foi realmente horrível. No topo do mapa do screenshot dá para ver de fato o nome e o contorno daquela cabana

  • Fui procurar por curiosidade e parece que eles contrataram um cartógrafo para inserir detalhes que não existem no Apple Maps, como trilhas, e criar imagens de mapa personalizadas, grandes e bonitas
    Por isso, em vez de Apple Maps renderizado dinamicamente, o sistema basicamente mostra tiles de imagem. Dá para criar mapas mais bonitos e detalhados, mas isso afeta coisas como downloads separados por nível de zoom, rotação e possibilidade de atualização

    • Contratar um cartógrafo para criar um design separado e a tecnologia para renderizar e entregar esse design são problemas completamente distintos
      O provedor de mapas original oferece tanto serviço de tiles vetoriais quanto de tiles raster: https://www.thunderforest.com/maps/outdoors/
      O caminho mais comum é usar diretamente um serviço de tiles vetoriais com uma definição de estilo ou, se necessário, gerar tiles raster
    • Acho que a Apple não abre a API gráfica Metal do Apple Watch para desenvolvedores terceiros, então esse tipo de renderização dinâmica pode simplesmente não ser possível
  • Como usuário do Pedometer++, impressiona a obsessão por detalhes que David manteve ao longo dos anos. A evolução do app é realmente incrível

    • Ele é um desenvolvedor de verdade muito dedicado. Aqui também, esse “então... encomendei um mapa personalizado”, ou seja, contratar um cartógrafo, é um exemplo perfeito disso
      Antes, por ter investido tanto no Watchsmith, ele acabou virando praticamente um especialista de nível mundial em widgets, e por isso também foi muito legal ver o grande sucesso que teve com o Widgetsmith. Parece um caso de dar certo para alguém que realmente merecia
  • No relógio, tiles estáticos são a escolha certa. Já fiz renderização dinâmica em dispositivos muito limitados, e o pan e o zoom eram consumidos pelas pausas do coletor de lixo a cada frame

    • O watchOS não tem coletor de lixo; usa ARC
  • O Apple Maps no WatchOS é bem bom, mas normalmente eu entro na bike, defino uma rota e, uns 3 minutos depois, a tela “Você está se exercitando?” cobre tudo, então não dá mais para ver o mapa até eu parar e desligar aquilo
    Acho que essa tela não deveria ocupar a tela inteira; deveria virar uma notificação ou, depois de algum tempo, simplesmente começar a registrar silenciosamente
    É surpreendente, porque certamente existem pessoas na Apple desenvolvendo isso que também devem passar por esse problema
    Se o mapa deste app conseguir manter a tela sob controle, isso para mim seria uma funcionalidade matadora. Mas, olhando rapidamente a página da App Store, não ficou claro quais recursos ficam atrás da assinatura e quais não, e eu odeio apps que só te contam isso depois que você termina toda a configuração, então provavelmente vou só tentar lembrar de iniciar o treino de referência manualmente

    • O recurso “Você está se exercitando?” pode ser desativado. Basta desligar Check In Reminders nas configurações de treino