OpenTrails é um aplicativo Android desenvolvido como parte do projeto AVP3, com o objetivo de oferecer aos usuários uma ferramenta intuitiva e eficaz para registrar, monitorar e visualizar suas trilhas e atividades ao ar livre. Utilizando recursos de GPS, o app acompanha a distância percorrida, velocidade, duração e estima calorias queimadas, salvando todas essas informações para consulta futura.
O projeto foi construído com as mais recentes diretrizes de Material Design, garantindo uma experiência de usuário moderna, responsiva e agradável, com suporte completo a temas claro e escuro.
- Registro de Trilhas: Inicie e pare o rastreamento de suas trilhas em tempo real, visualizando dados como velocidade atual, distância percorrida e tempo decorrido.
- Dados Detalhados: Ao parar uma trilha, visualize um resumo completo, incluindo duração, distância total, velocidade média, velocidade máxima e estimativa de calorias queimadas.
- Salvar e Consultar: Salve suas trilhas registradas com nomes personalizados e consulte-as a qualquer momento em uma lista organizada.
- Visualização Individual: Acesse detalhes específicos de cada trilha salva, incluindo o trajeto no mapa e todos os dados estatísticos.
- Edição e Exclusão: Edite o nome de trilhas salvas ou exclua-as diretamente da tela de visualização.
- Compartilhamento: Compartilhe os detalhes de suas trilhas com amigos e outros aplicativos.
- Configurações Personalizadas: Ajuste configurações como o modo de mapa (normal/satélite) e outras preferências do aplicativo.
- Design Moderno (Material Design): Interface de usuário intuitiva e agradável, com animações suaves e consistência visual, incluindo suporte a tema escuro.
- Linguagem de Programação: Java
- Framework: Android SDK
- Design System: Material Design
- Mapa: Google Maps API (SDK for Android)
- Banco de Dados: SQLite (com
SQLiteOpenHelper) - Localização: Android Location Services API
app/
├── src/
│ ├── main/
│ │ ├── java/com/example/opentrails/
│ │ │ ├── MainActivity.java # Tela principal com navegação
│ │ │ ├── RegistrarTrilhaActivity.java # Tela de registro e rastreamento da trilha
│ │ │ ├── VisualizarTrilhaActivity.java # Tela de detalhes de uma trilha salva
│ │ │ ├── ConsultarTrilhasActivity.java # Tela de listagem de trilhas
│ │ │ ├── ConfiguracaoActivity.java # Tela de configurações
│ │ │ ├── CreditosActivity.java # Tela de créditos e informações do desenvolvedor
│ │ │ ├── DatabaseHelper.java # Helper para o banco de dados SQLite
│ │ │ ├── TrilhaContract.java # Contrato para o banco de dados
│ │ │ ├── Trilha.java # Modelo de dados para Trilha
│ │ │ ├── TrilhaAdapter.java # Adapter para a RecyclerView de trilhas
│ │ │ └── RastreamentoService.java # Serviço para rastreamento em background
│ │ ├── res/
│ │ │ ├── drawable/ # Ícones e gráficos vetoriais
│ │ │ ├── layout/ # Arquivos de layout XML para as telas
│ │ │ ├── mipmap/ # Ícones do aplicativo
│ │ │ ├── values/ # Strings, cores, estilos
│ │ │ └── values-night/ # Estilos para o tema escuro
│ └── AndroidManifest.xml # Configurações globais do app, permissões
- Clone o Repositório:
git clone https://github.com/RafaelQSantos-RQS/OpenTrails.git
- Abra no Android Studio: Abra o projeto clonado no Android Studio.
- Obtenha uma API Key do Google Maps:
- Siga as instruções do Google Cloud para obter uma chave de API para o Google Maps SDK for Android.
- Habilite a API de Mapas no seu projeto Google Cloud.
- No arquivo
local.propertiesdo seu projeto Android (se não existir, crie-o), adicione sua chave:MAPS_API_KEY="SUA_CHAVE_API_AQUI"
- No arquivo
app/build.gradle(Module: app), você verá como essa chave é injetada noAndroidManifest.xml.
- Sincronize o Gradle: Clique em "Sync Project with Gradle Files" na barra de ferramentas do Android Studio.
- Execute o Aplicativo: Selecione um emulador ou um dispositivo físico conectado e clique no botão "Run 'app'" (ícone de play verde).
O aplicativo requer as seguintes permissões para funcionar corretamente:
android.permission.ACCESS_FINE_LOCATION: Para obter a localização precisa via GPS.android.permission.ACCESS_COARSE_LOCATION: Para obter uma localização menos precisa, porém mais rápida.android.permission.INTERNET: Para carregar os mapas e outras funcionalidades online.android.permission.FOREGROUND_SERVICE: Para permitir que o serviço de rastreamento de localização seja executado em primeiro plano.android.permission.FOREGROUND_SERVICE_LOCATION: Para permitir que o serviço em primeiro plano acesse a localização.android.permission.POST_NOTIFICATIONS: Para exibir notificações ao usuário, como o status do rastreamento.
Essas permissões são solicitadas em tempo de execução ao usuário quando o aplicativo é iniciado pela primeira vez ou quando uma funcionalidade de localização é acessada.
Este projeto foi desenvolvido por:
- [Rafael Queiroz Santos] - [https://github.com/RafaelQSantos-RQS]
Este é um projeto acadêmico. Contribuições externas são bem-vindas se o projeto evoluir para uma fase de código aberto.