Pular navegação

App Transporte UFRJ (Mobilidade Universitária)

Ajuda

App Transporte UFRJ (Mobilidade Universitária)

Grupo: Lucas de Paula, Juliano Marinho, Rafael Damasceno

Proposta inicial:

O projeto aborda a criação de um Aplicativo Mobile com informações sobre os transportes coletivos integrados da Universidade Federal do Rio de Janeiro (UFRJ). O Mínimo Produto Viável (MPV) tem como objetivo dispor as informações sobre os transportes integrados no Aplicativo de forma conveniente, permitindo a visualização em mapa com a localização do usuário e outras formas de consulta. Além disso, para a execução do projeto, seria necessário uma tarefa de campo para obter todas as informações relacionadas aos transportes integrados, por exemplo, onde embarcar, o itinerário completo e uma aproximação dos horários.

Cronograma:

cronograma_mpv.png


Andamento de Projeto:

Para o desenvolvimento do projeto foram escolhidas 3 plataformas, com o objetivo de chegar o mais próximo possível de um produto final. Dessa forma o desenvolvimento iOS, Android e Web ocorrem em paralelo, procurando seguir as mesmas linhas de criação.

03/12/15 - 23/12/15 - Pesquisa sobre o projeto
    296 respostas
    131 pessoas interessadas em colaborar (informaram email)
    Média da votação (de 1 a 5) pelo interesse no projeto: 4,52
    175 pessoas preencheram o campo opcional com sugestões

03/12/15 - 23/12/15 - Estudo da API do Google Maps

07/12/15 - Pontos de ônibus
    Os pontos de ônibus para o transporte integrado foram incorporados no Google MyMaps.

03/01/16 - Rotas dos ônibus internos
    As rotas dos ônibus internos foram incorporadas no Google MyMaps.

07/01/16 - Atualização das implementações
    A API já foi integrada em todas as plataformas, junto com a disposição da localização do usuário. Outras implementações estão ocorrendo gradualmente em níveis diferentes de acordo com as plataformas. Inserção de pontos e rotas já estão sendo postas em prática.

Comentários

#1

08/01/16 - Análise das sugestões da pesquisa

     Para termos uma ideia geral sobre as sugestões dos respondentes, criamos uma tagcloud que apresenta os termos mais frequentes entre as sugestões. Na tagcloud gerada, destaca-se a frequência das palavras "tempo", "ponto", "horário", "chegada" e "localização".

#2

12/01/2016 - Resumo (changelog) da versão iOS 

✓ Google Maps API devidamente integrada (via cocoa pods) 

✓ Tela de busca com filtro (scope bar) funcionando corretamente mesmo sem ter texto digitado

✓ Carregamento de kml para pontos, locais e rotas (funcionando como um xml parser) atualmente já retorna um array de Markers

✓ Criada tela de configurações que afeta o que será exibido no mapa (trânsito, pontos, locais etc.)

✓ Criada tela simples de carregamento do App versão beta :)

✓ Mapa se adapta para exibir uma rota completa na tela depois de ter sido selecionada na busca

✓ Mapa responde ao selecionar um local na busca, dando zoom para o local e abrindo a infoWindow do Marker

O botão de localização faz um zoom determinado para localização do usuário (default só faz zoom quando o mapa está muito afastado)

Tela de Itinerário por Locais criada e tabela populada automaticamente com Array de locais de itinerário específico para a linha de ônibus

Screenshots abaixo, link para ver em tamanho real: http://corais.org/sites/default/files/user/u4141/screenshots.png

screenshots.png

#3

Primeiro lugar... Parabéns!!! Tanto o trabalho quanto a documentação (o registro do trabalho) estão excelentes!!

Sugestões:

- No Telegram o Juliano citou algumas informações (além do que vcs já postaram) muito legais geradas pela pesquisa, vocês poderiam publicá-las aqui;

- postar o link pro código no git;

- conversar o mais breve possível com o Professor Luis Henrique do GTA (Vamos tentar essa quinta? Não esqueça de chamar a Rose ou o Severo, por causa do projeto do vídeo da disciplina).

- a depender da conversa com o Luis do GTA, colocar um GPS de teste em um ônibus da UFRJ.

#4

Anexo: Resultados da Pesquisa

#5

Galera, boa noite!

O Changelog da versão Web do projeto está assim:

05/01 - Terça passada mostramos, pela primeira vez, em sala o projeto rodando online. Ele está totalmente responsivo (durante o desenvolvimento, vou sempre testando esse quesito), e o projeto estava apenas com um protótipo de busca implementado, com o mapa pegando, uma única vez, a localização do usuário.

07/01 - Implementei a Geolocation, de forma que o usuário, ao se locomover, tivesse sua localização atualizada no mapa. Por limitações da API javascript, diferente das plataformas Mobile, a API não atualiza automaticamente a posição. Por conta disso, para fazer tal implementação foi preciso "contornar" de uma forma elegante, que é atribuindo um delay para busca da localização. Assim, o usuário tem sua localização atualizada no mapa, a priori, a cada 5 segundos, pois estamos em fase de implementação e é um número razoável pra testes (tempo suficiente pra locomoção, e não é muito tempo pra se aguardar).
Tentei também implementar o carregamento de camadas KML no mapa, sem sucesso, embora meu código estivesse exatamente igual ao da documentação da API.

12/01 - MUITO PRODUTIVO! Pela manhã, foquei em resolver o bug do KML, e... SUCESSO! O erro era porque eu estava passando o caminho "relativo" do arquivo kml, e não o caminho completo, vulgo absoluto. Ou seja, tem que usar a url cheia http://www...com/circular1.kml não pode simplesmente colocar 'circular1.kml'. A justificativa que vi no Stackoverflow, era de que a API precisa que o arquivo esteja PÚBLICO, ou seja, não permite que esteja no localhost, o que é perfeitamente aceitável, porém o bug acontecia também no servidor web, que é público, mas vai entender.... O certo é que com o absoluto funciona!
Na parte da tarde iniciei a criação da parte de configurações (onde o usuário decide o que vai ou não ser exibido no mapa), mas ainda não está finalizado. 

Vocês podem ir testando pelo link (a cada atualização no servidor online eu comunico por aqui.

http://www.lucasnaweb.com.br/integrado/

#6

14/01/2016 - Changelog da versão iOS 

Melhoras no carregamento dos arquivos kml (xml parser)

Parser para locais agora verifica a descrição do Marker (criado no myMaps) e procura um ícone correspondente para ele. Vantagem: Ícones diferentes num mesmo arquivo kml.

Agora se um arquivo kml de entrada não é encontrado o programa não trava (somente faz um print informativo no console)

Agora se um local ocultado pelas configurações é selecionado pela busca ele se tornará visível até que ocorra alguma troca de tela

#7

14/01/2015 - Changelog da versão Android

-Interface Navigation Drawer adicionada

-Google Maps Api integrada com a interface

-Função de mostrar a localização atual do usuário ativada

-Tela de configuração que exibe a seleção dos layers de pontos, locais, estacionamentos e trânsito

#8

Rolou o encontro com o Professor Luis do GTA, como foi?

Abraços

#9

16/01/2016 - Changelog da versão iOS

Uso de “if let” e “guard” para seguramente desempacotar valores

infoWindow agora usa “snippet” para exibir mais informações 

Melhora na busca por local que estão ocultos pelas configurações. O local será exibido e então será ocultado novamente depois de qualquer troca de tela somente se a infoWindow tenha sido fechada.

Criado alerta para quando o usuário não autorizou o uso da localização, com um botão para ir diretamente para os ajustes de privacidade do app :)

Os markers agora desaparecem depois que o level de zoom está abaixo de certo valor, e volta a aparecer quando é maior. (rotas não são afetadas)

#10

15/01/16 - Reuinão com o prof Luis responsável pelo projeto IMI

Em resumo, o projeto do IMI na parte de infraestrutura sofreu com certas limitações. Foram feitos testes com uma unidade base (no letras) que funcionou e depois ficou desativada.

Já houveram 2 projetos finais com a mesma ideia base e já foi desenvolvido (internamente) um app android e uma versão web, que não sabemos ao certo como está ou de quando é.

O Luis ficou disposto em ajudar no que pudesse e ficou de enviar alguns artigos dentre outras coisas sobre os projetos que já foram feitos. Curtiu a ideia mas não sabe como os problemas poderiam ser contornados.

A principal limitação para o projeto está relacionada a ter redes wifi em todos os locais de maneira estável. Sobre equipamento, eles tem bastante coisa (mas não para todos os ônibus) que poderia ser implementada, mas não é por essas limitações. Se quisermos ele pode tentar conseguir para que façamos alguns testes, como já foi feito para os 2 projetos finais.

A solução com pontos wifi seria útil de certa forma somente para os internos, já que não seriam dispostas estações wifi no caminho dos intercampi.

Ficamos com a ideia de então ir até a prefeitura universitária e talvez conversar com a TIC que tinha começado espalhar alguns roteadores pelo fundão, mas infelizmente sofre de instabilidades.

#11

18/01/2016 - Changelog da versão Android

-Implementação da barra de pesquisa, porém ainda não traz resultado.

-Alteração dos ícones

-Alteração das opções da barra lateral do Navigation Drawer

-Adição dos kml's dos circulares

#12

18/01/2016 - Changelog da versão iOS

Melhorias na View de Configurações

Adição de opções de compartilhamento (em desenvolvimento)

Uso de ícones para as opções de configuração

Corrigido bug de seleção de cédula na tabela de configurações (agora a cédula selecionada depois de trocar de tela e voltar aparece como não selecionada de forma correta) 

#13

21/01/15 - Estudo para Recurso de Localização dos ônibus via colaboração dos usuários

(falei no telegram e esqueci de passar para cá)

• Informações disponíveis em cada ponto de ônibus para o usuário. Cada ponto informa: ônibus x passou a y minutos

• Novo botão acima de " Obter Localização" para informar se está “esperando ônibus” ou se está “dentro de algum ônibus”.

- Se selecionado que está esperando determinado ônibus o celular envia uma notificação quando o usuário se mover perguntando se o usuário conseguiu pegar o ônibus, caso confirmado: zera o contador (ônibus x passou a 0 minuto)

- Se selecionado que está em um ônibus o celular monitora a localização do usuário até o ponto seguinte para zerar o contator de minutos para aquele ônibus.

Nas duas situações uma opção é continuar monitorando localização (e enquanto estiver na rota do ônibus selecionado) zerar os minutos dos próximos pontos, desvantagem é o consumo de bateria para continuar rastreando o usuário enquanto ele estiver nesta rota.

#14

Changelog da versão Web

Na última terça (19) terminei de portar todo o código para o novo framework front-end (bootstrap) que não conflita com a API do Google Maps; Inclusive, achei o front-end mais bonitinho até rs

Quinta feira dediquei o dia pra construir a busca, mas apanhei um pouco, e provavelmente terei que modificar a estrutura de carregamento dos kml's pra fazer com que a busca tenha possibilidade de implementação. Por ora, está implementado apenas o seu front-end, e um filtro das possibilidades de locais que podem ser pesquisados (conforme o texto é digitado, as possibilidades vão se reduzindo). Isso já estava pronto no antigo framework, mas era uma função nativa dele, como mudei, tive que fazer hardcoded mesmo.

#15

26/01/2016 - Changelog da versão iOS

Avanços na solução do usuário enviar informações de localização:

 Adição de um novo botão para o usuário compartilhar informações

- botão seguindo os mesmos padrões do google maps c/ icone etc. (tentativa e erro até acertar, haha)

 Novo container que aparece quando o novo botão é pressionado apresentando as opções para o usuário

- container via animação e com um pequeno botão para recuar o container

#16

28/01/2016 - Changelog da versão iOS

 Quando o usuário não fornece a localização o App inicia apresentando o fundão inteiro no mapa.

 Agora o alerta que o usuário não autorizou o uso da localização também é apresentado quando isso for verdade e o usuário selecionar o botão para enviar informações sobre os ônibus (é preciso da localização para saber o ponto de ônibus mais próximo etc.)

 Container agora desaparece se houver uma troca de tela (usuário ir para as configurações, pesquisa etc.)

 Melhorias no container para o usuário fornecer informações sobre o ônibus, agora as opções encaminham para uma busca personalizada onde só é possivel visualizar e escolher os internos ou intercampi.

 Implementada função que retornar o ponto de ônibus mais próximo do usuário (será usada para atualizar as informações do ponto)

#17

02/02/2016 - Changelog da versão iOS

 Container agora desaparece através do botão de fechar (uso de protocols e delegates para relacionar as telas)

 Caso o usuário tente enviar uma informação dos ônibus e não esteja próximo ao ponto de ônibus (mais de 20 metros de distância) uma mensagem de aviso aparece e o container desaparece.

 Mudança no carregamento das rotas. Agora cada rota dos integrados está na estrutura do item exibido na busca. Esse método irá facilitar quandor formos verificar se o usuário está na rota do circular.

#18

05/02/2016 - Changelog versão Android

-alterado a disposição das opçoes no menu drawer

-pesquisas de como trabalhar com KML dentro do maps

-novos cones adicionados 

-nova atividade para a pesquisa inseria, porém assim como a barra de pesquisa, ainda não funciona

-tentativa de inserir umlistview dentro do mapa para filtar elementos da pesquisa

#19

Changelog de Carnaval + 18/02/16

 Novo icone do aplicativo finalmente :)

 Implementada função que verifica se o usuário está na rota do ônibus integrado selecionado

 Correção relaciona a barra para exibir itinerário (quando um integrado é selecionado) que mudava de cor

 Correções relacionadas à enviar informações do usuário e exibir mensagens para o usuário

 Pesquisa sobre aferir a precisão do gps e como isso pode afetar o comportamento do aplicativo, por exemplo, quando o app busca o ponto de ônibus mais próximo ou verifica se o usuário está na rota de determinado integrado.

#20

Novo Icone e algumas screenshots novas do App versão iOS :)

Link para ver em tamanho real: http://corais.org/sites/default/files/user/u4141/screenapp.png

PS: Vou corrigir agora a mensagem para "Não foi encontrado(...)", hahaha 

screenapp.png

#21

"Não foi encontrado nenhum ponto de ônibus próximo" sensacional kkkkk

Cadê as versões web/dróide?

#22

Changelog Web

Nas últimas semanas foquei na parte da criaçao de um webservice que servirá de interface entre os aplicativos android/ios. Esse webservice será responsável por atualizar o banco de dados baseado em requests feitos pelos aplicativos. Para seguirmos o caminho do Mooveit isso será extremamente necessário! Tentarei criar uma interface básica até o fim da disciplina, para darmos continuidade no seu desenvolvimento depois.

A versão web do App Transporte será limitada a mostrar as rotas e centros, pois por limitaçoes da biblioteca do Maps, inviabilizam algumas funcionalidades que estão presentes no Android e iOS. O fato de não ter localização em tempo real na biblioteca JS é crucial para cálculo de distâncias e proximidades, além de não ser possível fazer detecção de quando a pessoa entrar no ônibus baseado no movimento e velocidade de movimento.

#23

Fala, pessoal!
Bom, aí vão algumas atualizações quanto o desenvolvimento do app do transporte pra android.

Desde o último changelog...

-Foi alterado o ícone do aplicativo \o/

Bom, estive muito ocupado nos últimos dias com as outras matérias e muitas provas a fazer. O MPV consistia em mostrar rotas, pontos, locais e localização via GPS do usuário para auxiliar na hora em que precisasse pegar algum dos internos. O app do adroid já faz essas coisas \o/ \o/. A partir de agora estamos emepnhados em desenvolver as funções sugeridas pelas pessoas na nossa pesquisa. Esse desenvolvimento continuará mesmo após o término da disciplina, pois é algo que estamos nos sentindo bem em fazer, além de nos ser útil, hahaha.

Os próximos desafios são:

-Localização em tempo real do ônibus (depende de muitos outros fatores que saem das nossas possibilidades, mas estamos estudando alternativas para encontrar uma solução viável e eficente)

-Questões relacionadas à troca de informação do usuário com o aplicativo, como avisar quando o ônibus está chegando e essas coisas

Não lembro mais de muitas coisas mas é isso aí. O céu é o limite e vamos continuar trabalhando para que esses aplicativos (web, ios, android) de transporte da ufrj seja fnalizado e fique disponível o mais breve possível =]

 Até amanhã posto screenshots com as principais funcionalidades do aplicativo e talvez um apk pra galera já ir testando e dar feedbacks sobre melhorias e mudanças! 

#24

ALÔ ALÔ!

Como o prometido, aqui vão alguns prints do que temos até agora na versão Android e uma verão Beta do APK pra quem desejar testar.

Link pra versão beta do aplicativo: /sites/default/files/user/u4131/app-debug.apk

Link pra ver a imagem em tamanho real: /sites/default/files/user/u4131/prints.jpg

#25

Pessoal,

Mais uma vez mil parabéns pelo trabalho!!!

Em anexo está uma planilha com o resultado final de vocês (se tiver algo errado avisem), por favor, paguem-se nos CK$ que estão faltando. Por exemplo, o Juliano fechou com saldo CK$ 189, mas no Corais ele lançou apenas CK$ 70.

body,div,table,thead,tbody,tfoot,tr,th,td,p { font-family:"Calibri"; font-size:x-small }

Projeto Nomes Conta 27/10/15 3/11/15 10/11/15 17/11/15 24/11/15 26/11/15 1/12/15 8/12/15 10/12/15 5/1/16 12/1/16 19/1/16 26/1/16 2/2/16 16/2/16 23/2/16 1/3/16 8/3/16 Total de faltas Presenças CK$ MVP EXTRAS Saldo Nota acadêmica
Transporte UFRJ Juliano 4131 Faltou Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente 1 17 204 11 84 189 10
Lucas Santos 4133 Presente Presente Atrasado Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente 0 18 216 11 84 201 10
Rafael 4141 Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Presente Faltou Presente Faltou Presente Presente Presente 2 16 192 11 84 177 10
Precisa de ajuda?

Blog

O blog permite que os membros de um projeto se comuniquem, discutindo e publicando novidades. É um ótimo lugar para compartilhar processos, desafios e explorar ideias.