Getting Started
This guide will help you set up and run the project on your local machine.
Quick Start
-
Clone the repository (with depth 1 to reduce clone size):
-
Open the project in Android Studio Hedgehog or newer
-
Run the debug build variant:
Note
The debug variant should work out of the box with the template google-services.json
file.
However, Firebase features like authentication and Firestore won't be functional until you set up
your own Firebase project.
Prerequisites
- Android Studio Hedgehog or newer
- JDK 21
- An Android device or emulator running API 24 (Android 7.0) or higher
Setting Up Firebase Features
To use Firebase authentication, Firestore, and analytics:
-
Follow our Firebase Setup Guide to:
- Create your Firebase project
- Configure Authentication
- Set up Firestore
- Get your
google-services.json
-
Before replacing the template
google-services.json
, prevent Git from tracking changes: -
Replace the template file at
app/google-services.json
with your own
Release Build Setup
To create release builds, you'll need to set up signing:
- Create a keystore file
-
Create
keystore.properties
in the project root: -
Place your keystore file in the
app/
directory -
Build the release variant:
Tip
Use Android Studio's "Generate Signed Bundle/APK" tool to help create your keystore if you don't have one.
Next Steps
-
Understand the Architecture: Read our Architecture Overview to understand how the app is structured
-
Setup CI/CD: Follow the GitHub CI/CD Guide to set up automation
-
Code Style: Review the Spotless Setup for code formatting guidelines
Common Issues
-
Build Fails:
- Ensure you have JDK 21 set in Android Studio
- Run
./gradlew clean
and try again - Check if all dependencies are resolved
-
Firebase Features Not Working:
- Verify you've replaced
google-services.json
- Check Firebase Console for proper setup
- Ensure SHA-1 is added for authentication
- Verify you've replaced
-
Release Build Fails:
- Verify keystore.properties exists and has correct values
- Confirm keystore file is in the correct location
- Check signing configuration in build.gradle
Important
Never commit sensitive files like keystore.properties
, your keystore file, or your real
google-services.json
to version control.
IDE Setup
For the best development experience:
-
Enable Compose Preview:
- Ensure "Live Edit of Literals" is enabled
- Configure appropriate preview devices
-
Run Configurations:
- Use provided run configurations for common tasks
- Signing Report configuration helps get SHA-1 for Firebase
-
Code Style:
- Import the project's
.editorconfig
- Enable "Format on Save" for Kotlin files
- Use the Spotless plugin for consistent formatting
- Import the project's
Further Reading
- Firebase Setup Guide: Learn how to set up Firebase features in your project
- Dependency Management: Understand how dependencies are managed in the project
- Architecture Overview: Learn about the app's architecture
- Design Philosophy: Understand the design principles behind the architecture
- Adding New Features: Learn how to add new features to the project
- Convention Plugins: Learn about custom Gradle plugins used in the project
- Performance Optimization: Optimize the app for speed and efficiency
- Useful Tips & Tricks: Get useful tips for development and debugging
- Publishing to Play Store: Learn how to publish your app to the Google Play Store