
600 mil pessoas visualizam a programação em nossos dias, portanto, todas as pequenas alterações têm um efeito em larga escala. Quero relatar um pouco sobre o fato de termos adicionado trens elétricos ao aplicativo a pedido da comunidade. E agradecer a todos que nos deram feedback e mostrar o que mudamos.
O primeiro recurso importante é o modo offline. Não o introduzimos por um longo tempo, porque o significado do cronograma está precisamente em constantes mudanças. E se você já ultrapassou a cobertura de celular, é melhor atualizar para não chegar ao trem cancelado.
Como se viu, não fazer é uma idéia mais ou menos, porque:
- Muitas pessoas querem ver a programação como um todo, e não de acordo com a situação atual.
- Uma maneira completamente incomum de usar o aplicativo foi aberta: a partir de uma escada rolante. E em escadas rolantes, geralmente algum tipo de interconexão 3G-LTE ou apenas uma mudança de estação base. Na hora do rush, também é "esticado" entre os assinantes de celular. Em geral, no metrô, muitas vezes acontece que a Internet é como era, mas na verdade não há conexão.

Obrigado
OVAV : começamos a detectar essas situações. Agora, o modelo de ação é este: se houver uma conexão rápida, o agendamento atual será sempre carregado. Se não houver conexão, a versão offline será exibida (na verdade, é do cache local), e será o carimbo de data / hora em que foi relevante. À medida que navegamos, conseguimos obter uma atualização (os pacotes são muito leves) e mostrá-la imediatamente diretamente na interface on-the-fly. A marca sobre o modo offline será removida.

O modo offline adiciona automaticamente rotas selecionadas e horários visualizados (histórico). Além disso, este não é um download manual e não apenas um cache - percorremos todas as suas rotas após acessar nossos servidores e atualizamos tudo para o modo offline. Você não pode abrir suas rotas favoritas por anos, mas sempre haverá uma versão nova a partir do momento em que você teve a Internet pela última vez com o aplicativo aberto. O histórico é armazenado em cache para os dias em que você já examinou a programação.
Como os pacotes são muito leves (há dados XML para alguns kilobytes por rota), tudo isso é muito rápido.
Previsão tardia
Os trens elétricos que usam a API do sistema de transporte fornecem um status com um atraso de uma etapa do gráfico (10 minutos), e o status fica nos últimos 10 minutos. Ou seja, às 14:22, você pode obter uma imagem real do movimento dos trens às 14:12. E às 14:12 ele será montado com um quadro de 10 minutos, ou seja, no pior dos casos, o atraso será de 19 a 20 minutos, na melhor das hipóteses - 10. Jogamos um pouco com os modelos e dados históricos e aprendemos a reduzir essa janela para dois minutos, prevendo o movimento dos demais. trens. Ou seja, se o trem estiver atrasado, não por causa de um acidente repentino, mas por causa de uma mudança tática no cronograma, descobriremos isso com muita confiabilidade 8 a 18 minutos antes dos dados reais.
Usabilidade
Acima de tudo, tínhamos perguntas sobre usabilidade. Sim, há um ano, não abrimos imediatamente a tela que você precisava: um clique extra na programação restante. Graças a
arejado para o bilhete levantado.
Agora a última pesquisa é aberta imediatamente na tela inicial. Além disso, monitoramos metade do dia: se você abrir o aplicativo após o almoço, reorganizamos as estações de partida e destino em alguns lugares.
Eles encontraram um bug muito bonito, que eles mesmos lançaram há vários anos. E aconteceu que a mesma pessoa que o trouxe estava procurando por ele. Em geral, era uma vez que precisávamos de um momento em que amanhã chegasse na estrada de ferro. Meia-noite não se encaixa. O fato é que o dia do planeta termina à meia-noite e as pessoas - em outro momento. E quando você assiste aos trens elétricos de hoje, espera que, depois do trem às 23:50, seja exibido às 00:20 sem mudar de data.
A questão era onde estabelecer a fronteira: aparecer até uma da manhã, até duas, até três, antes das cinco da manhã?
Por sermos matemáticos, modelamos fluxos e levamos em conta a distribuição de voos. Como não havia grande volume de dados, eles estavam limitados a constantes. O tempo mágico foi trazido para Moscou - 2:52, foi nesse momento que era mais conveniente mudar o dia.
Por cerca de cinco anos, aprofundou-se cada vez mais no código. Havia também alguns bilhetes sobre o fato de que os trens estão desaparecendo hoje: essas são algumas consultas de pesquisa entre 00:00 e 2:52 (eles pensavam que hoje era ontem). E ontem todos os trens foram embora.
Como resultado, dividimos em categorias mais compreensíveis, como deveríamos ter feito inicialmente se não estivéssemos buscando otimização naqueles anos (e estávamos perseguindo).
Reclamações choveram sobre um tema brilhante: eles dizem que é impossível observar a programação à noite. Eles tornaram escuro, agora está na moda. O que é característico: até ficar na moda, ninguém escreveu esses ingressos.
Às vezes, os bilhetes eram vazados com o efeito de que "você perdeu trens elétricos". Eles não desaparecem aqui, mas no CPPK e em outras transportadoras (no horário). O modelo de comportamento padrão é que, quando um trem sai do horário, simplesmente se dissolve no ar. Os usuários que se lembraram dele, pensam que de alguma forma estão procurando algo errado e estão nervosos. Sinta a perda de controle. Agora criamos o fantasma do trem: uma linha na programação chamada "Cancelado". As pessoas ficaram mais calmas, mas não somos considerados desenvolvedores do mal roubando trens de cidadãos honestos.
Perca a estação. Existem vários lugares onde os trens elétricos em uma estação ferroviária estão em dois lugares diferentes. Por exemplo, no final do horário de Moscou Kursk, existem duas partes: uma - direções Kursky, a segunda - Gorky. Estas são duas estações independentes com coordenadas comuns. O problema acabou sendo que você pode construir uma rota diretamente de um deles para um ponto familiar, ou pode perder a interface e selecionar outro ponto de partida, construir uma rota com quatro transferências por duas horas a mais, mas para o mesmo ponto. As pessoas reclamaram. Conectamos esses locais em um ponto e corrigimos automaticamente as entradas em vários casos.
A segunda característica semelhante - existem muitas estações com nomes semelhantes. Perguntamos explicitamente ao usuário o que exatamente ele quis dizer quando a probabilidade de colisão é alta.
Muitas pequenas melhorias na localização geográfica: agora o prompt para entrar na estação depende da sua posição aproximada, mostramos os mais próximos a você.
Karpion escreveu muitos desejos sobre a aparência do aplicativo em conjunto com outros modos de transporte. Nós pensamos que tínhamos completado, então nos deparamos com dificuldades computacionais, e novamente pensamos que tínhamos completado ... Em geral, aconteceu em algum lugar completamente diferente, em algum lugar melhor, mas em algum lugar há becos sem saída. Após um lançamento estável, meus colegas dirão com mais detalhes.
Enquanto isso, posso dizer que realizamos um estudo sobre o quanto é necessário - atravessar ônibus com trens elétricos. Aconteceu que o caminho certo. Mas, como amamos os dados, outra coisa importante surgiu no processo de pesquisa. Comparamos as direções em Moscou, onde é mais conveniente de ônibus e onde - de trem.
Olha, identificamos as direções para onde importa (ou para onde você pode ir diretamente de ônibus, onde são necessários trens). Classifique por popularidade do destino. Portanto, se você tem parentes morando nessas cidades, talvez essa comparação seja interessante para eles.
Em geral, cerca de 50% das direções dos trens (nas quais as duas estações têm conexão com a cidade) têm uma alternativa ao horário do ônibus. Ao mesmo tempo, o cruzamento com trens de longa distância é pequeno, cerca de 7%.
Eles fizeram uma coisa muito legal (para nós): o recurso “plataforma e caminho”. É nas 50 estações mais populares que começamos a prever onde o trem elétrico será servido com base na história de sua oferta e movimentos de trem. Ao mesmo tempo, os passageiros do aplicativo podem votar na plataforma de partida. Ou seja, você entrou, entrou no trem e clicou assim:

Se houver votos suficientes, o caminho e a plataforma são mostrados a todos os passageiros. Se confiarmos em você (e depois de alguns votos corretos), você terá uma voz mais poderosa. Quinze anos atrás, pessoas desconhecidas nos ligaram para dizer que em algum lugar houve um cancelamento, e colocamos em um cronograma (porque havia apenas papel). Mesmo assim, lembramos que os passageiros estavam felizes em ajudar um ao outro. Acho que agora entenderemos como fazê-lo melhor e continuaremos a olhar nessa direção.
Bem, e enquanto analisamos diferentes recursos por conveniência, também criamos um modelo da população de trens. Ajuda a prever se você vai andar em trens diferentes enquanto está de pé ou sentado. Enquanto o rodarmos, provavelmente vou lhe contar mais sobre como tudo terminou.
Continuamos a ver a programação mais precisa no Runet, mantemos contato e estamos prontos para você dizer o que mais pode e deve ser feito. Nem sempre fazemos as coisas necessárias rapidamente, mas sempre ouvimos. Portanto, repreenda ou elogie-nos, por favor: isso é útil.