Ao entrar em nosso projeto voluntário, valorizamos sua contribuição e entusiasmo. No entanto, é importante estar ciente de algumas diretrizes essenciais para manter a integridade e o propósito do projeto. Primeiramente, familiarize-se com a documentação existente, que detalha o estado atual e os objetivos do projeto. Isso é crucial para entender onde estamos e para onde estamos indo. Em segundo lugar, pedimos que evite refatorações desnecessárias ou alterações radicais. Tais mudanças podem levar à estagnação e desviar-nos do nosso caminho. Busque sempre aprimorar e construir sobre o que já foi alcançado, em vez de reconstruir do zero. Ao seguir essas diretrizes, você ajudará a preservar a essência do projeto e a garantir que nosso trabalho coletivo continue evoluindo de forma produtiva e reconhecível.
-
Objetivo: O "Pet Journal" é uma ferramenta de gerenciamento para a vida dos pets, ajudando no controle de vacinas, vermífugos, rações, e outros aspectos importantes do cuidado animal.
-
Público-alvo: Direcionado a donos de pets que desejam manter um controle organizado e acessível sobre a saúde e bem-estar de seus animais.
- Pré-requisitos:
- Android Studio (versão mais recente) - (Giraffe | 2022.3.1)
- Kotlin SDK (min: 24, max: 34)
- Ndk Version: 23.1.7779620
- Gradle: 8.1.3
- Configuração Local:
- Clone o repositório do projeto.
- Abra o projeto no Android Studio.
- Permita que o Android Studio sincronize o projeto com os arquivos Gradle.
- Configure um emulador ou conecte um dispositivo que suporte Android SDK versão 24 até 34.
- Execute o projeto para verificar se tudo está funcionando.
Nesta seção, você encontrará informações detalhadas sobre as diferentes telas do nosso aplicativo e sobre seus funcionamentos.
- Splash
- Login
- Cadastro
- Esqueceu a senha
- Aguardando código
- Troque a senha
- Ambiente do usuário
- Tela padrão inicial
- Tela padrão espécie
- Tela padrão nome e gênero
- Tela padrão raça e porte
- Tela padrão data de Nascimento
Utilizamos os recursos a baixo em nosso app, o que torna importante conhecer tais padrões.
- A API que estamos usando é do próprio projeto, criada pela equipe de backend, para saber mais a respeito, por favor, visite o repositório do projeto: Backend
- Testes Unitários:
- Objetivo: Testar partes individuais do código (funções, métodos) de forma isolada.
- Como Fazemos: Utilizamos JUnit, Mockk para testes unitários. Mock objects são usados para simular dependências externas.
- Benefícios: Ajuda a encontrar bugs cedo, facilita a manutenção e melhora a qualidade do código.
- Testes Instrumentados:
- Objetivo: Testar componentes do aplicativo no ambiente de um dispositivo Android real ou emulador.
- Como Fazemos: Utilizamos Espresso para simular interações do usuário com a interface gráfica.
- Benefícios: Garante que a interface do usuário funcione bem e identifica problemas de integração e performance.
- Boas Práticas:
- Automatizamos os testes para integração contínua.
- Buscamos alta cobertura de código, mas também focamos na qualidade dos testes.
- Documentamos os testes claramente para facilitar a compreensão e manutenção.
- Conclusão: Nossa abordagem de teste ajuda a manter a qualidade e estabilidade do software, facilitando a contribuição de novos integrantes e a manutenção do projeto.
- Bibliotecas:
- Coil: Biblioteca de carregamento de imagens para Kotlin, otimizada para desempenho e eficiência.
- Koin: Framework de injeção de dependência leve para Kotlin.
- Room: Biblioteca de abstração de banco de dados do Android, que facilita o acesso ao SQLite.
- Retrofit: Cliente HTTP tipo-safe para Android e Java.
- Navigation: Componente do Android Jetpack para facilitar a navegação entre telas.
- Material Design You: Versão mais recente do Material Design, com foco em personalização e adaptabilidade.
- Compose: Toolkit moderno de UI do Android para criar interfaces nativas com menos código.
- Coroutines: Recurso do Kotlin para programação assíncrona e não bloqueante.
- Como Contribuir:
- Explore o Repositório: Acesse o repositório no GitHub, leia atentamente o 'README', para compreender as diretrizes do projeto.
- Fork e Clone: Faça um fork do projeto para sua conta no GitHub e clone-o para seu ambiente de desenvolvimento local.
- Identifique Oportunidades de Contribuição: Examine as issues abertas para encontrar problemas que você pode resolver ou áreas onde pode melhorar a documentação ou o código.
- Faça suas Alterações: Trabalhe nas mudanças localmente, mantendo-se fiel às práticas e padrões de codificação do projeto.
- Envie um Pull Request: Após finalizar suas alterações, envie um pull request para o repositório original com uma descrição clara do que foi modificado.
- Aguarde Feedback: Esteja aberto para receber feedback dos mantenedores do projeto e pronto para fazer ajustes em seu pull request conforme necessário.
- Padrões de Código: Convenções de nomenclatura, formatação, uso de linters.
- Comentários e Documentação: Escreva comentários claros no código para explicar a lógica complexa e mantenha a documentação atualizada para facilitar a compreensão e colaboração.
- Princípios de Design de Código: Siga princípios como SOLID para estruturar o código de forma coesa, DRY para evitar repetições, e KISS para manter a simplicidade.
- Padrões de Arquitetura: Utilize padrões como MVVM para organizar o código de forma lógica, facilitando manutenção e expansão.
- Revisão de Código: Implemente revisões de código regulares para garantir a qualidade, aderência aos padrões e promover o aprendizado entre os desenvolvedores.
- Testes Unitários e Integrados: Encoraje a escrita de testes para validar individualmente cada componente e suas integrações, assegurando a robustez do software.
- Gerenciamento de Dependências: Mantenha as dependências bem gerenciadas e atualizadas para evitar conflitos e vulnerabilidades.
- Tratamento de Erros: Adote uma abordagem consistente para o tratamento de erros, garantindo que o sistema se comporte de maneira previsível e segura.
- Segurança: Siga as melhores práticas de segurança no código para prevenir vulnerabilidades, como injeção de SQL e vazamento de dados, sempre procure compreender a ação que esta realizando para evitar problemas neste quesito.
- Performance: Otimize o código para melhorar a performance, considerando aspectos como tempo de execução e consumo de recursos, para isso, não há problema em utilizar ferramentas de inteligência artificial para otimizar o código e o seu tempo, desde que compreenda o que foi feito e saiba explicar.
- Perguntas, dúvidas ou problemas: Sinta-se a vontade para abrir uma essue Clicando aqui
Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.