https://github.com/omerixe/omnirecipe-android
Android app to browse, add and edit recipes
https://github.com/omerixe/omnirecipe-android
android jeptack-compose kotlin multimodule-android-app
Last synced: about 1 month ago
JSON representation
Android app to browse, add and edit recipes
- Host: GitHub
- URL: https://github.com/omerixe/omnirecipe-android
- Owner: Omerixe
- License: mit
- Created: 2024-04-13T15:06:37.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-20T13:42:32.000Z (over 1 year ago)
- Last Synced: 2025-06-15T11:06:32.537Z (12 months ago)
- Topics: android, jeptack-compose, kotlin, multimodule-android-app
- Language: Kotlin
- Homepage:
- Size: 3.72 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OmniRecipe
**IMPORTANT**: This project is currently in development and not yet ready for use.
OmniRecipe is a recipe app that is currently still quite simple and allows to browse through
recipes.
Adding and editing recipes will follow in the future as well as more features.
The app is built with modern Android technologies like Jetpack Compose, Hilt and it is modularized.
The app uses a mock backend by default but can be connected to a network backend.
The api/backend for this version of the app is implemented in a different
repository: [OmniRecipe-Backend](https://github.com/Omerixe/OmniRecipe-Backend).
## Features
- Browse through recipes
**Outlook:**
- Delete recipes
- Add recipes
- Edit recipes
## Tech Stack
- [Kotlin](https://kotlinlang.org/)
- [Jetpack Compose](https://developer.android.com/jetpack/compose)
- [Hilt](https://dagger.dev/hilt/)
- [Ktor](https://ktor.io/)
- [Room](https://developer.android.com/jetpack/androidx/releases/room)
- [Modularization](https://developer.android.com/topic/modularization)
## Architecture
The app is built with clean architecture in mind but does not follow it to every last detail.
Although the app is still small, I have opted for modularization to get a feeling for the overhead
it can create but also to see if the advantages make it worth.
It is modularized in a way which is based on the approach
in [NowInAndroid](https://github.com/android/nowinandroid/tree/main). Room is used to store data for
offline usage, but the app is not built "offline-first".
## Setup
The app uses mock data by default. This means you can navigate within the app but you can't change
any data.
1. Clone the repository
2. Build and run the app
3. Enjoy browsing through recipes
If you want to run the app with the real server, you need to set up the backend as well.
Before you run the app, you need to set it up to use the real server.
### Using environment variables
1. Set `API_URL` to the url of your server
2. Set `API_KEY` to the api key of your server
3. Set `USE_MOCK`to `false`
### Using local values
1. In the `build.gradle.kts` file of the `app` module, change the `useMockBackend` variable
to `false`.
2. Create a `secrets.properties` file in the root directory of the project
3. Add the following properties to the file:
```
API_URL="your_api_url"
API_KEY="your_api_key"
```
## License
This project is licensed under the terms of the MIT license."