Prerequisites
Before you begin, make sure you have:- Android Studio (latest stable version recommended)
- Physical Android device with API level 24 or higher
- Firebase project with Authentication and Firestore enabled
- Git installed on your machine
Quick setup
Add Firebase configuration
Download your
google-services.json file from the Firebase Console and place it in the app/ directory:The
google-services.json file connects your app to your Firebase project. Without it, authentication and Firestore features won’t work.Open in Android Studio
Launch Android Studio and open the project:
- Click File > Open
- Navigate to the cloned repository folder
- Click OK to open the project
Sync Gradle files
Android Studio should automatically sync Gradle files. If not, click the Sync Project with Gradle Files button in the toolbar, or go to:File > Sync Project with Gradle FilesThis will download all dependencies specified in
build.gradle.kts:app/build.gradle.kts
Connect your device
Connect your Android device via USB and enable Developer Options:
- Go to Settings > About phone
- Tap Build number 7 times to enable Developer Options
- Go to Settings > Developer options
- Enable USB debugging
- Connect your device and authorize the computer when prompted
Run the app
Click the Run ‘app’ button in the Android Studio toolbar (or press
Shift + F10):- Select your connected device from the deployment target dropdown
- Wait for the build to complete
- The app will install and launch on your device
First build may take several minutes as Gradle downloads dependencies and compiles the project.
Verify installation
Once the app launches, you should see the authentication screen. The app automatically routes users based on session state:MainActivity.kt
RouterScreen component evaluates the auth state in real-time:
- No session: Redirects to Login screen
- Active session: Redirects to Home screen
Test voice features
To verify voice input is working:- On the login screen, tap the microphone icon next to the email field
- Say something like: “demo arroba example punto com”
- The field should populate with:
[email protected]
Voice normalization converts Spanish spoken words to symbols. For example:
- “arroba” →
@ - “punto” →
. - “guion bajo” →
_ - “uno dos tres” →
123
Next steps
Detailed setup
Learn about Firebase configuration, permissions, and advanced setup
Architecture
Understand the app’s Service-Repository pattern and folder structure
Authentication
Explore how Firebase Authentication powers user management
Voice input
Deep dive into speech-to-text normalization algorithms
Troubleshooting
Build fails with 'google-services.json not found'
Build fails with 'google-services.json not found'
Make sure you’ve placed the
google-services.json file in the app/ directory (not the project root). The file should be at the same level as app/build.gradle.kts.Voice recognition not working on emulator
Voice recognition not working on emulator
Google’s speech recognition engine requires Google Play Services and may not work properly on emulators. Use a physical device for testing voice features.
Location permissions denied
Location permissions denied
The app requires runtime permissions for location access. Make sure to grant both
ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION when prompted.Gradle sync fails
Gradle sync fails
Try these steps:
- Click File > Invalidate Caches
- Delete the
.gradlefolder in your project - Click File > Sync Project with Gradle Files
- Ensure you have a stable internet connection for dependency downloads