Application that allows to search some products and display them in a list, also allows to add some product to the shopping cart and remove it

Overview

Meli - Compose

Main Branch: Build status

Features

  • Search products from the Mercado Libre API and display them in a list.
  • Show error screen if try to fetch the data and doesn't have network connection.
  • See the detail from a specific product.
  • Unit tests for domain, data and presentation(viewmodel) layers (100% coverage)
  • This app supports dark theme and keep state even if the device rotates
  • Add and remove products from Shopping cart

🏃 For run the app just clone the repository and execute the app on Android Studio.

Requirements to install the app

  • Use phones with Android Api 23+
  • Having an internet connection
This application was developed using Kotlin and uses the following components:
  • Jetpack compose
  • Coroutines
  • Clean architecture (Domain, Data, Presentation)
  • MVVM
  • App center
  • Repository pattern
  • StateFlow
  • Mutable State
  • Jetpack navigation compose
  • Lottie animations
  • Coil (Images)
  • Timber (Logs)
  • ViewModel
  • Dagger Hilt (Dependency injection)
  • Coil (Load images)
  • Retrofit (HTTP requests)
  • Unit testing (Mockk, Thruth, Coroutines tests)
  • Room database
  • Flow

Screenshots Light theme

Splash Home Loading Products Detail
Splash Home Loading Products Detail
Detail quantity modal Detail quantity textfiel modal Shopping cart Empty Cart Error
Detail quantity modal Detail quantity textfiel modal Shopping cart Empty cart Error

Screenshots Dark Mode

Splash Home Loading Products Detail
Splash Home Loading Products Detail
Detail quantity modal Detail quantity textfiel modal Shopping cart Empty Cart Error
Detail quantity modal Detail quantity textfiel modal Shopping cart Empty cart Error

🎯 Architecture

The application is built using Clean Architeture pattern based on Architecture Components on Android. The application is divided into three layers:

Clean Arquitecture

  • Domain: This layer contains the business logic of the application, here we define the data models and the use cases.
  • Data: This layer contains the data layer of the application. It contains the database, network and the repository implementation.
  • Presentation: This layer contains the presentation layer of the application.

License

MIT

Bikcodeh

You might also like...
FireApp is an open-source project that is built around Firebase Products, especially for learning purposes
FireApp is an open-source project that is built around Firebase Products, especially for learning purposes

FireApp is an open-source project that is built around Firebase Products, especially for learning purposes. This application is written entirely in Kotlin using Android Architecture Components and MVVM architecture pattern. You'll see in the code of this repo, how Firebase Products are working together.

It is an Android app that uses an SQLite database to store an inventory of products

A project completed for a Udacity course. It is an Android app that uses an SQLite database to store an inventory of products. Each product’s name, price, quantity available, supplier, and picture are tracked. The main screen lists all products in a list and provides a button to add a new product. Clicking on a product shows a detailed view for that product. Options to modify or delete the product are available in this detailed view.

This project consists in the approach of a bakery business, in which the user can book one or more products (cakes), in addition to having the method of payment in cash (post-shipment) or the method of payment via mobile

This project consists in the approach of a bakery business, in which the user can book one or more products (cakes), in addition to having the method of payment in cash (post-shipment) or the method of payment via mobile

Project allowing to query products (languages, libraries, databases, etc) by their properties.

Products app This project allow to search products (mostly software products for now such as languages, libraries etc) based on their properties. For

An android app that lists all planets in our solar system and brings some information about them.
An android app that lists all planets in our solar system and brings some information about them.

SolarSystem This application was developed in Android Studio and uses Kotlin as programming language. In short, it is an app that lists all the planet

Display's information about SpaceX crew members and ships by consuming a rest api and storing the data to display when the user is offline.

Space-X App Display's information about SpaceX crew members(look for ‘Crew’ section in rest api docs) and ships (look for ‘Ships’ section in rest api

A news application through which you can learn and browse all the news that interests you by choosing the country and type of news with the ability to browse and add some news to your favorites
A news application through which you can learn and browse all the news that interests you by choosing the country and type of news with the ability to browse and add some news to your favorites

MY-NEWS-Android A news application through which you can learn and browse all the news that interests you by choosing the country and type of news wit

Product Flavours for Android
Product Flavours for Android

Product Flavors If you need to develop more than one app for one project one might think of building two different android projects, fortunately, Andr

Mobile App that that enables users to manager product listing IProcure Ltd Senior Android Engineer Role interview solution
Mobile App that that enables users to manager product listing IProcure Ltd Senior Android Engineer Role interview solution

Mobile App that that enables users to manager product listing (in and e-commerce environment) IProcure Ltd Senior Android Engineer Role interview solution

Owner
Victor
Android developer | Kotlin | Clean architecture | MVVM | Jetpack | Repository Pattern | Unit Testing | Android | Material | Coroutines | Rx Java
Victor
Online Shopping Application which uses Augmented Reality(AR) for product trials, thus completely changing shopping experiences.

ShopOn This is an Android Native application which is developed as a solution for HackOn with Amazon 2022 for the problem statement related to shoppin

Akshat Kumar Verma 17 Dec 23, 2022
An android app make a one-stop solution for finding the desired reading or research partner, sell their own products, and also be a tutor

The purpose of this project is to make a one-stop solution for finding the desired reading or research partner, sell their own products, and also be a tutor.

Md.Asraful Islam Asif 4 Dec 14, 2022
ShopKeeper - A simple android app for sellers. The seller can add, edit and delete products that are bought by customers

ShopKeeper - A simple android app for sellers. The seller can add, edit and delete products that are bought by customers

Amit Kumar guha 1 Feb 23, 2022
Math World is an Android Application specialized in mathematics, where the application includes some sections related to arithmetic, unit conversion, scientific math laws and constants, as well as some mathematical questions that need some intelligence to reach the solution.

Math World is an Android Application specialized in mathematics, where the application includes some sections related to arithmetic, unit conversion, scientific math laws and constants, as well as some mathematical questions that need some intelligence to reach the solution.

null 7 Mar 12, 2022
Todo List Application is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item

Todo List Application is an android app that allows building a todo list and basic todo items management functionality including adding new items, editing and deleting an existing item

null 0 Jan 22, 2022
An application to create custom QR codes to specify waste types and waste disposal procedures for products.

wasteqr An application to create custom QR codes to specify waste types and waste disposal procedures for products. What is WasteQR? WasteQR is an app

Mihir Arya 1 May 24, 2022
Money Manager app that helps you to add your daily small incomes and expenses and track them easily.

Simple Money Manager This app is a simple money manager app which helps you to add your daily small incomes and expenses and track them easily. Screen

Yash Bansal 2 Nov 21, 2021
Sharkur is a fork of Purpur which adds more configuration and also some optimalization.

Sharkur Sharkur is a fork of Purpur which adds more configuration and also some optimization. API Javadoc Dependency Information Maven <repository>

SharkurMC 8 Aug 1, 2022
Simple android application that consumes RAWG API to display a list of games

Gamex Compose -Work in Progress- An android application that consumes RAWG API to display a list of popular video games built using Jetpack Compose an

Victor Kabata 17 Nov 14, 2022
ComicsShow app: Display comics and search for any favourites one

ComicsShow app: Display comics and search for any favourites one. Technologies used: Koin: For injecting class and providing modules on runtime :). Vi

Ahmed Gamal Yousef 1 Nov 21, 2021