Coder Social home page Coder Social logo

cocktails's Introduction

Cocktails

🍸 Cocktails is a application where you could find your favorite cocktails, their details and how to prepare them... Happy drinking🥂🥂


Download

Coming Soon .....

Tech stack & Open-source libraries

  • Minimum SDK level 24
  • Kotlin based, Coroutines + Flow for asynchronous.
  • Jetpack
    • Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
    • ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
    • View Binding: Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
    • Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
    • Hilt: for dependency injection.
  • Architecture
    • MVVM Architecture (View - View Binding - ViewModel - Model)
    • Repository Pattern
  • Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
  • Moshi: A modern JSON library for Kotlin and Java.
  • ksp: Kotlin Symbol Processing API.
  • Material-Components: Material design components for building ripple animation, and CardView.
  • Coil: Loading images from network.
  • API

Architecture

Cocktails is based on the MVVM architecture and the Repository pattern, which follows the Google's official architecture guidance.

The overrall architecture of Cocktails is composed of three layers; the presentation layer, domain and the data layer. Each layer has dedicated components and they have each different responsibilities, as defined below:

Cocktails was built with Guide to app architecture, so it would be a great sample to show how the architecture works in real-world projects.

Architecture Overview

  • Each layer follows unidirectional event/data flow; the UI layer emits user events to the data layer, and the data layer exposes data as a stream to other layers.
  • The data layer is designed to work independently from other layers and must be pure, which means it doesn't have any dependencies on the other layers.

With this loosely coupled architecture, you can increase the reusability of components and scalability of your app.

UI Layer

The UI layer consists of UI elements to configure screens that could interact with users and ViewModel that holds app states and restores data when configuration changes.

  • UI elements observe the data flow via View Binding, which is the most essential part of the MVVM architecture.
  • With View binding, which is an Android DataBinding kit for notifying data changes.

Data Layer

The data Layer consists of repositories, which include business logic, such as querying data from the local database and requesting remote data from the network and follows the single source of truth principle.

cocktails's People

Contributors

j-cart avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.