How jteenoone/dj-remix-pro works
DJ Remix Pro is a native Android DJ-mixing interface prototype. The main user flow enters the app shell, browses or searches the mock track library, opens the landscape mixer, and interacts with simulated decks and recording controls; saved recordings can then be managed in the recordings screen. Separate product branches cover onboarding and permissions, learning content, settings and language, and the shared UI widgets. README documentation describes the architecture and mock behavior; feature-to-repository wiring is summarized rather than verified from sampled feature source.
Main entry points: MainActivity.kt App shell · AppContainer.kt Dependency container · mixer Mixer screen · DataStoreSettingsRepository.kt Settings repository
Components 21
App flow
- App shell
app/src/main/java/com/example/djremixpro/MainActivity.kt - Shell state
app/src/main/java/com/example/djremixpro/feature/shell - Onboarding
app/src/main/java/com/example/djremixpro/feature/onboarding - Media permission
app/src/main/java/com/example/djremixpro/feature/permission
DJ mixing
- Track library
app/src/main/java/com/example/djremixpro/feature/library - Mixer screen
app/src/main/java/com/example/djremixpro/feature/mixer - Mixer controls
app/src/main/java/com/example/djremixpro/core/ui/widget - Recordings
app/src/main/java/com/example/djremixpro/feature/recordings
Data and settings
- Track repository
app/src/main/java/com/example/djremixpro/core/data/fake/FakeTrackRepository.kt - Simulated playback
app/src/main/java/com/example/djremixpro/core/data/fake/SimulatedPlaybackRepository.kt - Mix sessions
app/src/main/java/com/example/djremixpro/core/data/fake/InMemoryMixSessionRepository.kt - Recording repository
app/src/main/java/com/example/djremixpro/core/data/fake/FakeRecordingRepository.kt - Settings repository
app/src/main/java/com/example/djremixpro/core/data/settings/DataStoreSettingsRepository.kt - Dependency container
app/src/main/java/com/example/djremixpro/app/AppContainer.kt
Learning and preferences
- DJ learning
app/src/main/java/com/example/djremixpro/feature/learn - Learning repository
app/src/main/java/com/example/djremixpro/core/data/fake/FakeLearnRepository.kt - Settings
app/src/main/java/com/example/djremixpro/feature/settings - Language choice
app/src/main/java/com/example/djremixpro/feature/language
Other components
- User
- Android platform
- Android DataStore
Connections 27
- User → App shell: opens
- App shell → Shell state: reads state
- App shell → Track library: navigates
- App shell → DJ learning: navigates
- App shell → Recordings: navigates
- App shell → Settings: navigates
- App shell → Language choice: navigates
- App shell → Onboarding: navigates
- App shell → Media permission: navigates
- Media permission → Android platform: requests media access
- Track library → Track repository: loads tracks
- Track library → Mixer screen: opens mixer
- Mixer screen → Mixer controls: renders controls
- Mixer screen → Simulated playback: simulates playback
- Mixer screen → Mix sessions: uses mix sessions
- Mixer screen → Recording repository: simulates recording
- Recordings → Recording repository: manages recordings
- DJ learning → Learning repository: loads content
- Settings → Settings repository: reads and updates
- Language choice → Settings repository: stores selection
- Settings repository → Android DataStore: persists settings
- Dependency container → Track repository: provides
- Dependency container → Simulated playback: provides
- Dependency container → Mix sessions: provides
- Dependency container → Recording repository: provides
- Dependency container → Learning repository: provides
- Dependency container → Settings repository: provides