Skip to content

Recipely is an Android Application simplify all the use case of a chef. Build with Modern Android development tool (Kotlin , Jetpack Compose, Coroutine, Hilt/Dagger 2, Room, MVVM, Clean Architecture, Material Component. Intergrated with ML using MobilenetV3

License

AnBuiii/Recipely

Repository files navigation

Untitled design

Recipely 🍗

Recipely is just a SIMPLE recipe app. Built with Modern Android developement tool. Intergrated with ML

About

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

Built with 🔨

  • 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

Project Structure 🏭

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
|   ├── ...

Architecture 🏢

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

Image-classification

I use pre-trained MobileNet and retained with Tensorflow library. Here are some resources:

Further plans

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

Lint

Detekt is Static code analysis for Kotlin

Contribute 🪖

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.

License

This application is released under Apache license 2.0 (see LICENSE). Some of the used libraries are released under different licenses.

About

Recipely is an Android Application simplify all the use case of a chef. Build with Modern Android development tool (Kotlin , Jetpack Compose, Coroutine, Hilt/Dagger 2, Room, MVVM, Clean Architecture, Material Component. Intergrated with ML using MobilenetV3

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages