Lada is a native Android recipe app built with Kotlin and Jetpack Compose. It gives users a place to sign in, browse recipes, view profile information, and work with recipe data stored in Firebase.
The project currently includes authentication, home feed, profile, saved, and notification navigation flows, with the data layer organized around repositories and domain models.
- Splash, sign-in, and sign-up screens
- Email/password authentication with Firebase Auth
- Google sign-in support through Google Play Services
- Recipe feed backed by Cloud Firestore
- User profile data backed by Cloud Firestore
- Saved, notifications, and profile destinations in the main navigation
- Custom bottom navigation for the main app area
- Clean layered structure with data, domain, presentation, and dependency container packages
- Kotlin
- Jetpack Compose
- Material 3
- Android Architecture Components
- ViewModel
- Kotlin Coroutines and Flow
- Navigation Compose
- Firebase Auth
- Cloud Firestore
- Firebase Analytics
- Google Sign-In
- Coil for image loading
- Exyte Animated Navigation Bar
- Android Studio with recent Android Gradle Plugin support
- JDK 11 or newer
- Android SDK 36
- A Firebase project configured for Android
-
Clone the repository.
git clone <repository-url> cd Lada
-
Open the project in Android Studio.
-
Add your Firebase configuration file:
- Create or open a Firebase project.
- Add an Android app with package name
project.ma.lada. - Download
google-services.json. - Place it in the
app/directory.
-
Enable the Firebase products used by the app:
- Authentication
- Cloud Firestore
- Analytics, if desired for your Firebase setup
-
Build and run the app from Android Studio, or use Gradle:
./gradlew assembleDebug
On Windows:
.\gradlew.bat assembleDebug
The app currently reads and writes these Firestore collections:
recipesusers
Recipe documents map to the Recipe domain model:
idtitledescriptioningredientsstepsimageUrluserIdratingtimecategoryauthorNameauthorImageUrltimestamp
app/src/main/java/project/ma/lada/
|-- core/common/ # Shared utility types such as Resource
|-- data/
| |-- repository/ # Firebase-backed repository implementations
| `-- source/ # Local/simple data sources
|-- di/ # AppContainer dependency wiring
|-- domain/
| |-- model/ # Domain models
| |-- repository/ # Repository interfaces
| `-- usecase/ # Use cases
|-- presentation/
| |-- components/ # Reusable Compose UI components
| |-- navigation/ # Screen routes
| |-- state/ # UI state models
| |-- ui/ # App screens
| `-- viewmodel/ # ViewModels
`-- ui/theme/ # Compose theme, colors, and typography
./gradlew assembleDebug
./gradlew test
./gradlew connectedAndroidTestOn Windows, replace ./gradlew with .\gradlew.bat.