Compose-ShoppingList is a sample project that presents a way of implementing UI components with Jetpack Compose.
- Compose - Modern toolkit for building native UI.
- Ambient - Compose passes data through the composition tree.
- Coroutines - Provide sophisticated tools to handle concurrency.
- Declarative UI Patterns
- Koin - Runtime framework for dependency injection.
- Lifecycles - Create a UI that automatically responds to lifecycle events.
- LiveData - Build data objects that notify views when the underlying database changes.
- Room - Access your app's SQLite database with in-app objects and compile-time checks.
- Test - An Android testing framework for unit and runtime UI tests.
- ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks.
- ktlint - Enforce Kotlin coding styles.
- Handle back press
- Handle configuration changes
- ActionBar menu
- Drawer menu
- Add shopping lists/products
- Archive/Unarchive lists
- Delete products
Something not working quite as expected? Do you need a feature that has not been implemented yet? Check the issue tracker and add a new one if your problem is not already listed. Please try to provide a detailed description of your problem, including the steps to reproduce it.
Awesome! If you would like to contribute with a new feature or submit a bugfix, fork this repo and send a pull request. Please, make sure all the unit tests, integration tests &
./gradlew spotlessApply are passing before submitting and add new ones in case you introduced new features.
How to run the project in development mode
- Clone or download repository as a zip file.
- Open project in Android Studio.
- Run 'app'
Android Studio IDE setup
- Close Android Studio if it's open
- Download ktlint using these installation instructions
- Inside the project root directory run:
./ktlint --apply-to-idea-project --android
- Remove ktlint if desired:
- Start Android Studio
Compose-ShoppingList is released under the MIT license. See LICENSE for details.