Compose-ShoppingList
Compose-ShoppingList is a sample project that presents a way of implementing UI components with Jetpack Compose.
Screenshots
Used Tech
- Kotlin
- MVVM
- 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.
Features
- Handle back press
- Handle configuration changes
- ActionBar menu
- Drawer menu
- Add shopping lists/products
- Archive/Unarchive lists
- Delete products
Report issues
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.
Contribute
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'
SHIFT+F10
.
Android Studio IDE setup
Compose-ShoppingList uses ktlint to enforce Kotlin coding styles. Here's how to configure it for use with Android Studio (instructions adapted from the ktlint README):
- 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:
rm ktlint
- Start Android Studio
License
Compose-ShoppingList is released under the MIT license. See LICENSE for details.