Inventory is an Android app for keeping track of storage with the option to organize it by categories and sort it by ascending or descending order.

When there’re inventory items they’re grouped into 2 sections – To buy and Enough and sorted by ascending order – beginning with To buy section starting with the items that least match the criteria quantity-minQuantityTarget to those close to enough, moving to Enough section beginning with the items that’re least enough to those that are most enough. The descending sort option applies the same rules but in descending order.

The app follows the recommended architecture by Google dividing the app into Data Layer(DataSources, Repositories) and UI Layer (Compose UI + ViewModel). The UI Layer follows the MVI architectural pattern (State, Event, ViewModel, UI). Everything except the Jetpack Compose UI is unit tested using Kotest and Mockk.

inventory-1 inventory-2 inventory-3 inventory-4
inventory-5 inventory-6 inventory-7 inventory-8
inventory-9 edit-item empty-inventory

Tech Stack

  • Languages: Kotlin
  • Architectures: MVVM, MVI, Clean
  • Android: Android Jetpack, Jetpack Compose, Hilt (DI), Room DB, Kotlin Flow, Kotlin Coroutines, Kotest, DataStore, KotlinX Serialization, Ktor, Android SDK
  • Testing: Unit tests, Kotest, Mockk
  • Other: HTTP, REST APIs, JSON


View Github