4 pontos por zxavi 2025-04-10 | 4 comentários | Compartilhar no WhatsApp

Olá, sou um desenvolvedor solo.

Correr tem sido meu hobby ultimamente, e como os apps mais conhecidos não tinham a função de que eu precisava, resolvi criar um eu mesmo.

Foi desenvolvido em Flutter, e a versão inicial para validar o conceito ficou pronta em cerca de 2 semanas, mas para lapidar tudo e elevar ao nível de lançamento levei algo em torno de 3 a 4 meses.

Atualmente o app já está disponível nas lojas da Apple e do Google para download, e você pode acessar o site e clicar nos links de cada loja para baixá-lo com mais facilidade.

Apresentação do serviço

Pace Teller é um app que mostra, em tempo real durante a corrida, a previsão de tempo para 10 km, meia maratona e maratona completa.

Por que eu criei isso

  • Enquanto eu fazia o desafio de “correr 5 a 6 km todos os dias”, de repente fiquei curioso para saber qual seria meu tempo estimado nos 10 km se eu continuasse correndo no ritmo final.
  • Os apps de corrida têm funções para ver a velocidade média, mas não é fácil estimar mentalmente o tempo real de prova com base na condição física no fim do treino.
  • Quem corre com frequência talvez consiga fazer uma previsão aproximada, mas desenvolvi este app pensando em quem tem dificuldade para calcular esse tempo estimado por conta própria.
  • Ao ouvir a previsão de tempo enquanto corro de verdade, isso tem ajudado bastante tanto na motivação em relação à meta quanto no ajuste da condição, como diminuir o ritmo.
  • Eu o fiz originalmente para usar sozinho, mas gostei tanto do resultado que criei coragem para postar no Show GN.

Como a previsão é calculada

  • A distância já percorrida é calculada com base na velocidade média, e a distância restante é calculada com base no ritmo dos 20% mais recentes do percurso, fornecendo assim uma previsão em tempo real.
  • Também incluí orientação por voz (TTS) para que seja possível ouvir o tempo previsto.
  • No entanto, uma limitação desse método é que, se o ritmo final estiver muito bom, o tempo estimado pode ficar otimista demais.
  • No momento, ainda não considerei ritmos que melhoram ou pioram conforme a condição física, mas no futuro pretendo corrigir isso com perguntas ao usuário sobre seu estado ao fim do exercício.

Características do serviço

  • É possível registrar a maioria dos indicadores oferecidos por apps de corrida básicos.
  • Oferece filtros por treino, visualização em calendário e visualização de estatísticas.
  • Suporta importação/exportação de arquivos GPX. (Deixei isso prático para levar os registros deste app para outros serviços.)
  • Há funções para importar dados do Strava ou enviar automaticamente os dados para o Strava.
  • Em serviços que exportam tudo em GPX, como o RunKeeper, basta baixar os arquivos, compactá-los e importá-los para inserir todos os dados de uma vez.
  • Usuários de dispositivos Galaxy podem importar dados de saúde e mapear a frequência cardíaca aos dados do treino.
  • O app usa um banco SQLite interno e não salva dados em servidores externos, então funciona com rapidez.
  • Se o usuário informar sua própria chave da API do Open Weather Map, as informações de clima também são registradas automaticamente (embora a precisão possa ser um pouco limitada).
  • Suporta inglês e coreano.

Funcionalidades planejadas para o futuro

  • Quero experimentar criar um app que funcione no relógio.
  • Ouvi dizer que muita gente que usa Garmin tem curiosidade principalmente sobre a previsão de tempo para maratona completa, então, se eu fizer isso, talvez precise criar um app para Garmin.
  • No momento, estou correndo com o app do relógio aberto e este app também aberto, iniciando os dois ao mesmo tempo.
  • Pretendo melhorar pontos ainda insuficientes relacionados à cadência e aos gráficos de ritmo.
  • Ainda estou pensando se devo adicionar uma função para salvar dados no servidor, mas a chance de desenvolver isso é alta. Hoje, se você não exportar em arquivo GPX, todos os dados podem desaparecer ao apagar o app. Por outro lado, se a opção de envio automático para o Strava estiver ativada, os dados ficam salvos no Strava, o que traz mais tranquilidade.
  • Também estou considerando adicionar funções sociais, como comunidade ou compartilhamento de conquistas. Mas como o Strava já faz isso muito bem, ainda estou pensando se realmente vale a pena.
  • Também penso em transformar percursos de corrida em “Routes”, algo como “quais são os bons trajetos para correr neste bairro?”, mas como outros apps já fazem isso, ainda estou em dúvida.

Impressões após o desenvolvimento

  • O que senti durante o desenvolvimento foi algo como: “Uau, um app desses pode mesmo ser feito tão rápido por uma pessoa só??”. Foi um projeto em que também senti o mesmo espanto com o “desenvolvimento usando IA” que muita gente já deve ter experimentado.
  • Quando eu criava apps nativos para iOS e Android separadamente, muitas vezes batia um desânimo ao terminar um e ter que fazer o outro.
  • Por isso resolvi começar com Flutter, e pelo menos nesse aspecto de “estresse mental” fiquei totalmente satisfeito.
  • Por outro lado, os pacotes e bibliotecas são atualizados com frequência, e sofri bastante com problemas de dependência, algo que continua me preocupando.
  • Como os dados de velocidade fornecidos pelo GPS não são perfeitos, levei bastante tempo para aumentar a qualidade do app enquanto tentava melhorar a precisão da fórmula por vários métodos.
  • Claro que também fiquei preso em vários ciclos com a ajuda da IA, mas não dava para deixar de usar.
  • Como sempre, o trabalho de implementar assinatura recorrente nas duas lojas foi difícil.

4 comentários

 
kipsong133 2025-04-10

Na verdade, preocupações como problemas de dependência acabam existindo do mesmo jeito mesmo usando nativo.. haha

Por acaso você poderia compartilhar qual pacote é?

 
zxavi 2025-04-10

Sim, é verdade ^^ Quando você diz algum pacote, a que pacote se refere? Você quer dizer em qual pacote teve problemas de dependência? Como isso acontece com bastante frequência e também foi um problema que enfrentei quando ainda entendia pouco de Flutter, na verdade não me lembro muito bem ^^

 
seonymoon 2025-04-10

A Strava vai encerrar o serviço na Coreia em breve..!

 
zxavi 2025-04-10

Sim, ele já foi removido da loja. Mas isso não significa que você não possa usar o serviço. Os usuários existentes ainda podem usá-lo, e também é possível acessá-lo pela web.