Example mobile app for browsing recipes and cooking instructions.
- Maciej Bazela (261743)
- Joanna Kulig (261738)
- Marek Traczyński (261748)
- Józef Melańczuk (261703)
- Piotr Piotrowski (261723)
- kotlin 1.8.10
- Jetpack Compose 1.4.3
- Material3 1.1.0 (and material2 1.4.3 because of PullRefresh )
- Compose Destinations 1.9.42-beta
- Dagger-Hilt 2.46.1
- ViewModel, LifeData, Lifecycle 2.6.1
- Firestore SDK 24.6.0
- Room 2.5.1
- Glide 4.15.1
Our project follows MVVM architecture. We use Jetpack Compose for UI, Firestore and Room for external/local data storage, Hilt for dependency injection and ViewModels for sharing data between domain and UI layers.
Each layer is split into different subpackages:
- controllers - contains classes responsible for fetching from data sources and Hilt modules
- models - contains application entity models
- ui - contains UI components (composables, screens, theming, navigation)
- viewmodels - contains ViewModels for several parts of the application
└───com
└───flowyh
└───letmecook
├───controllers
│ ├───di
│ ├───interfaces
│ └───repositories
├───models
├───ui
│ ├───components
│ ├───navigation
│ ├───screens
│ └───theme
└───viewmodels
- Recipe List view
- Detailed recipe view
- Searching by name/filter
- Rated recipes view
- Shopping list view
-
Browsing recipe list (image + quick info)
-
Recipe list chips section filters (filter by course type)
-
Recipe details screen
- Rating recipe
- Adding recipe ingredients as a shopping list
-
Top Bar
- Search bar
- Jump to random recipe details screen
- Jump to recipe of the day details screen
-
Nav bar
- Home screen
- Shopping list screen
- Rated recipes screen (favorites)
-
Shopping list screen
- Adding ingredients to shopping list
- Removing ingredients from shopping list
- Removing shopping list
- Link to recipe details screen
-
Rated recipes screen
- Link to recipe details screen
-
Cool theme (light and dark)
-
Cool animations
-
Cool transitions between navigated screens