Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teste/matheus lima #14

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

Limatucano
Copy link

Documentação

Desenvolvimento:

O app foi desenvolvido utilizando a arquitetura MVVM seguindo os principais conceitos de clean architecture, respeitando o seguinte fluxo de dados:
image

Utilizei o Jetpack Compose para criar as telas e assim também a navegação da aplicação, os composables foram organizados na estrutura de atomic design onde eu separo os componentes visuais em átomos, moléculas, organismos e templates.

Foram utilizadas as seguintes tecnologias para a construção do app:

  • Google Maps: Mapa utilizado para exibir ônibus e suas paradas
  • Koin: Biblioteca de injeção de dependência
  • Retrofit: Client Http para requisições HTTP
  • Jetpack Compose: Criação de layouts
  • Catálogo de versão: Organização das dependências do projeto

Meu Maior desafio:

Os meus principais desafios durante a construção da aplicação foi:

  • Lidar com interceptor de token e cookie para persistir a sessão do usuário
  • Lidar com cluster dos marcadores no mapa, a API retorna cerca de 10k de registros no endpoint utilizado para exibir os ônibus no mapa, ao adicionar todos esses itens a aplicação crashava. Para solucionar esse problema foi utilizado o clusterManager com NonHierarchicalViewBasedAlgorithm onde é calculado somente os marcadores visíveis na tela, e também agrupado caso o zoom out seja muito grande.
  • E por último, um dos principais desafios foi pensar no fluxo de dados e estrutura de UI que fique de fácil usabilidade para o usuário.

Como Rodar o App:

  1. Adicionar a API Token da API Olho Vivo no local.properties localizado na raiz do projeto, deve ficar assim: API_TOKEN=...
  2. Adicionar a API Key do Google Maps no AndroidManifest.xml, lá tem o meta-data com.google.android.geo.API_KEY que deve possuir sua key como value
  3. Agora está tudo pronto para rodar o app.

Resultado

Screen_recording_20240918_140608.1.2.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant