CatsFeina é um aplicativo Android moderno, construído com as mais recentes tecnologias Jetpack, projetado para oferecer uma experiência elegante e agradável para amantes de poesia. Explore, descubra e interaja com um universo de conteúdo poético enriquecido visualmente.
- Exploração de Poesias: Navegue por uma coleção crescente de poesias.
- Detalhes Enriquecidos: Visualize cada poesia com sua imagem de capa e galeria de imagens adicionais.
- Favoritos: Marque suas poesias preferidas para acesso rápido.
- (Futuro) Marcar como Lido: Acompanhe o que você já leu.
- Design Moderno: Interface de usuário limpa e intuitiva construída inteiramente com Jetpack Compose.
- Temas Dinâmicos: Personalize sua experiência visual escolhendo entre tema claro, escuro ou o padrão do sistema.
- Animação de Splash: Uma agradável animação de boas-vindas com Lottie.
- Arquitetura Robusta: Segue os princípios de Clean Architecture e MVVM, utilizando:
- Room: Para persistência de dados local.
- Hilt: Para injeção de dependências.
- Kotlin Coroutines & Flow: Para programação assíncrona e reativa.
- Jetpack Navigation: Para navegação entre telas.
- Jetpack DataStore: Para armazenamento de preferências.
- Coil: Para carregamento eficiente de imagens.
- População Inicial de Dados: O conteúdo base é carregado localmente na primeira inicialização (a partir de um JSON interno).
- Linguagem: Kotlin
- UI Toolkit: Jetpack Compose
- Arquitetura: MVVM com elementos de Clean Architecture
- Persistência de Dados: Room
- Injeção de Dependência: Hilt
- Programação Assíncrona: Kotlin Coroutines & Flow
- Navegação: Jetpack Navigation Compose
- Preferências: Jetpack DataStore
- Carregamento de Imagens: Coil
- Animações: Lottie for Android
- Splash Screen API: AndroidX Core Splashscreen
- Gradle Version Catalog (libs.versions.toml): Para gerenciamento de dependências.
- Clone o repositório:
git clone https://[URL_DO_SEU_REPOSITORIO_GIT]/CatsFeina.git
cd CatsFeina
-
Abra no Android Studio:
- Abra o Android Studio (versão recomendada: [última versão estável, ex: Iguana ou superior]).
- Selecione "Open an existing Android Studio project".
- Navegue até o diretório clonado
CatsFeina
e selecione-o.
-
Sincronize o Gradle:
- O Android Studio deve iniciar automaticamente a sincronização do Gradle. Se não, clique em "Sync Project with Gradle Files" (ícone de elefante na barra de ferramentas).
-
Execute o Aplicativo:
- Selecione um emulador ou conecte um dispositivo físico.
- Clique no botão "Run 'app'" (ícone de play verde).
Pré-requisitos:
- Android Studio ([versão compatível com AGP usado no projeto])
- JDK 17 ou superior
O projeto segue uma estrutura modular para promover a separação de responsabilidades:
catsfeina/
├── app/src/main/java/com/marin/catsfeina/
│ ├── data/ # Camada de Dados: Repositórios, DAOs, Entidades Room, DataStore
│ │ ├── dao/
│ │ ├── entity/
│ │ ├── repository/
│ │ └── AppDatabase.kt
│ │ └── PreferenciasRepository.kt
│ ├── di/ # Módulos Hilt para Injeção de Dependência
│ ├── dominio/ # Camada de Domínio: Modelos de UI, UseCases/Actions, Enums
│ ├── ui/ # Camada de UI (Jetpack Compose): Screens, ViewModels, Themes, Ícones
│ │ ├── poesias/
│ │ ├── poesiadetail/
│ │ ├── preferencias/
│ │ ├── screens/ # Telas genéricas (Sobre, Política de Privacidade)
│ │ └── theme/
│ ├── MainActivity.kt # Ponto de entrada da UI
│ ├── MainScreen.kt # Layout principal com navegação
│ ├── Navigation.kt # Definições de rotas e NavGraph
│ └── CatsfeinaApplication.kt # Classe Application (Hilt, inicializações)
├── app/src/main/assets/ # Recursos brutos (ex: futuras poesias_iniciais.json, fontes)
├── app/src/main/res/ # Recursos Android (layouts XML legados, drawables, strings, etc.)
│ ├── drawable/ # Ícones e shapes
│ ├── raw/ # Animação Lottie (catsfeina_pata.json)
│ └── values/ # Strings, cores, temas
└── build.gradle.kts (project e app), gradle/libs.versions.toml # Scripts de build e dependências
Para entender melhor a colaboração com o assistente de IA e as decisões de arquitetura, consulte:
GEMINI.MD
: Detalhes da colaboração com o Assistente Gemini, suas capacidades e limitações observadas.AGENT.MD
: Descreve as funcionalidades "inteligentes" ou automatizadas do CatsFeina, como a população inicial de dados e o gerenciamento de tema.
Contribuições são bem-vindas! Se você tiver ideias para novas funcionalidades, melhorias ou correções de bugs:
1.Faça um Fork do projeto.
2. Crie uma nova Branch (git checkout -b feature/sua-feature-incrivel
).
3. Faça commit de suas mudanças (git commit -m 'Adiciona funcionalidade X'
).
4. Faça Push para a Branch (git push origin feature/sua-feature-incrivel
).
5. Abra um Pull Request.
Por favor, siga as convenções de código e estilo do projeto.
Se encontrar algum bug, por favor, abra uma Issue detalhando o problema, os passos para reproduzi-lo e a versão do aplicativo/Android.
Este projeto é licenciado sob a GNU General Public License v3.0 - veja o arquivo LICENSE para detalhes.
Desenvolvido com ❤️ e Kotlin por [Seu Nome/Apelido] com a colaboração do Assistente Gemini.
Este README foi gerado com a ajuda do Assistente Gemini.