A modern Android application that allows users to manage a local inventory including adding, editing, selling, and deleting items.
This project is developed using modern Android architecture principles using Jetpack components including Room, ViewModel, StateFlow, and Navigation, and follows the MVVM architecture pattern. It leverages Kotlin Coroutines for asynchronous operations and persists data locally using an SQLite database via the Room persistence library.







Features
Manage inventory :
Displays and manages a complete inventory system stored locally using Room, allowing users to add new items with name, price, and quantity, edit existing entries through a dedicated screen, permanently delete items from storage, and sell items to automatically decrease their quantity while ensuring data persistence across app restarts.
Modern and fluid interface :
Implements a clean and responsive user interface following Material Design 3 guidelines, featuring smooth navigation transitions using the Navigation Component, adaptive layouts for different screen sizes, and optimized scrolling behavior for a fluid user experience.
Light & dark mode dupport :
Supports dynamic light and dark themes that automatically adapt to system settings to enhance accessibility and improve user comfort.
Custom theme :
Applies a fully customized design system including tailored color palettes, shapes, and typography while integrating the Google font “Space Grotesk” to create a distinctive and modern visual identity.
Real-time state management :
Handles UI state reactively using StateFlow combined with lifecycle-aware ViewModel logic and Kotlin Coroutines to ensure efficient, safe, and asynchronous data operations.
Data persistence :
Persists inventory data locally using Room (SQLite) and automatically restores the stored inventory state whenever the application is restarted.
Architecture & code structure :
Follows the MVVM architecture pattern to ensure a clean separation between UI and business logic while maintaining scalability, maintainability, and testability.
Performance and responsiveness :
Optimizes UI rendering, animations, and scrolling performance to provide a smooth and responsive experience even when handling larger datasets.
Error handling and testing :
Implements validation mechanisms and robust error handling for Room DAO operations while ensuring reliability through unit testing with an in-memory database.
Tech stack
Kotlin :
Modern, concise language for Android development.
Jetpack compose :
Declarative UI toolkit for Android.
Material 3 :
Modern, accessible user interface.
Kotlin flow :
Reactive streams for data.
StateFlow :
Reactive state management for real-time updates.
ViewModel:
MVVM architecture to separate business logic from user interface.
Room :
Local database with DAO and entites.
State management:
Handle states with MutableStateOf and StateFlow.
Navigation component :
Seamless screen transitions.
Coroutines :
Async programming made simple.