Recipely is just a SIMPLE recipe app. Built with Modern Android developement tool. Intergrated with ML
Inspired from many recipe app on store, this app was made to simplify all the use case of a chef.
- Well design with Material 3 UI
- Offline! All recipes are loaded in local database. You alway can create a new one.
- Ingredient predicted include
- Kotlin - Official programming language for Android development.
- Jetpack Compose - Modern toolkit for native UI
- Corountine - For asynchronous stuff
- Material3 Componenet - Modular and customizable Material Design UI components for Android.
- Room - SQLite database for data persistence
- Dependency Injection -
- Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
- Hilt-ViewModel - DI for injecting
ViewModel
.
- Coil - An image loading library for Android backed by Kotlin Coroutines.
- CameraX - Jetpack library for in-app camera
- Media3 - Media libraries that enables Android apps to display rich audio and visual experiences
- DataStore - Data presistence library for simple dataset
- Protobuf - Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.
- Tensorflow Lite - Library for deploys models on mobile device
com.anbui.recipely # Root Package
.
├── composeApp # Project entry point
|
├── build-logic # Handle gradle build logic
| ├── convention # For specific options
|
├── config
| ├── detekt # Detekt config
|
├── core # Core modules
| ├── data #
│ | ├── di # DI for Data module
| | ├── impl # Impl single source of data
| | ├── mapper # Map core model to entity vice versa
| |
| ├── database # Local database module
| | ├── assets # Default data for application
| | ├── converter # Room converter
| | ├── dao # Room dao
| | ├── entities # Room entities
| | ├── relation # Room cross-ref relation for better query
| |
| ├── datastore-proto # Define proto entity for datastore module
| |
| ├── datastore # Datastore module
| | ├── di # DI for datastore module
| |
| ├── designsystem # Design system module
| | ├── components # Application specific design component
| | ├── theme # Application specific theme system
| |
| ├── model # Core model module
| |
| ├── testing # Testing module
| | ├── di # DI for testing module
|
├── feature # Feature module
| ├── account # Account-related feature module
| | ├── account # Account screen, its viewmdel and components
| | ├── edit_profile # Edit profile screen,...
| | ├── ...
| | ├── navigation # navigation system in account feature
| | ├── components # account feature UI component
| ├── ...
This project use a combination of Multi-module architecture and (Model-View Model-Model, explain as clean architecture for Android Developement. A very well-made example by Android can be found Now in Android
I use pre-trained MobileNet and retained with Tensorflow library. Here are some resources:
Make it an cross-platform application
- Kotlinx-Datetime - KotlinX multiplatform date/time library
- Ktor - Ktor is a framework for building asynchronous server-side and client-side applications
Detekt is Static code analysis for Kotlin
Any contributions are welcome! Here are some note
- Open issue to report a bug and make your suggestion.
- Fork this repo and do your changes. Remember to follow project's code style.
- Open PR against
main
branch with nice description and you are good to go 😊. Recipely is an open source project developed by me. My purpose is to demonstrate my knowleadge in Android Development and share with everyone who interested☺️ . Please do not use for commercial purposes.
This application is released under Apache license 2.0 (see LICENSE). Some of the used libraries are released under different licenses.