constanza-player

Constanza Player

Constanza Player é um reprodutor de mídia moderno e intuitivo, desenvolvido para oferecer uma experiência de áudio e vídeo fluida e elegante. O foco do projeto é a simplicidade de uso aliada a uma interface limpa.

License Stars Issues


Funcionalidades

O player foi projetado para oferecer uma experiência imersiva, combinando estética moderna com ferramentas avançadas de personalização.

Experiência Visual e Interface

Controle de Áudio e Reprodução

Performance e Atalhos

Tecla Ação
Espaço Play / Pause
Seta Dir/Esq Avançar / Retroceder
Seta Cima/Baixo Aumentar / Diminuir volume

Imagens do Constanza Player

Interface e Reprodução


Arquitetura

Clean Architecture em 4 camadas:

lib/
├── core/             constants, theme, router, utils
├── domain/           entities (Song, Album, Artist, LyricLine, ...)
├── services/         audio_handler, scanner, storage, share, crash, backup
└── presentation/
    ├── pages/        UI por feature (home, library, now_playing, settings…)
    ├── providers/    Riverpod StateNotifiers (player, library, theme, artwork)
    └── widgets/      reusáveis (artwork_image, song_tile, mini_player…)

Stack: Flutter 3.41 · Material 3 · Riverpod 2 · go_router · just_audio + audio_service · on_audio_query · share_plus 11.

Plataforma alvo: Android (minSdk 24, targetSdk 35).

Build

flutter pub get
flutter run                       # debug
flutter build apk --release       # APK assinado (chave de debug em sideload)
flutter build appbundle --release # AAB para Play Store (requer keystore)

Signing release (para publicar)

  1. Gere a keystore (uma vez — guarde com vida):
    keytool -genkey -v -keystore ~/constanza-release.jks \
      -keyalg RSA -keysize 2048 -validity 10000 -alias constanza
    
  2. cp android/key.properties.example android/key.properties e preencha.
  3. flutter build appbundle --release — usa a keystore automaticamente.

R8 + shrinkResources já estão ativos em release.

Histórico

Veja update.md para o changelog completo.

Credits