Live App - Take the app for a live spin here.
- A simple MVVM project designed to have low coupling with some degree of cohesion.
- This project is created with code re-usability, a screaming architecture, some solid principles like single responsibility and dependency injection mind.
- The project domain has been modeled from the given exercise ui, a file called Development Tasks.doc in the project file structure.
- However small it is, with time, it has the potential to be an over engineered application, meaning CLEAN ARCHITECTURE.
- On top of that, you can easily plug in the network layer, implement cache and have the app running in no time.
- More importantly, the project also leverages some of kotlin's more exciting features, like the use of extension functions, sealed classes, lambdas functions, coroutines, and so on.
- Kotlin - First class and official programming language for Android development.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Room DB - Used to locally store our data.
- Dagger Hilt - For dependency injection.
- Data Binding - Used especially to bind data to the recyclerview.
- Material Design - Core design principles used to design the application.
- Navigation Component - Navigation system through the app.
- Android Studio - Arctic fox 2020.3.1
- List of all products.
- List of all categories.
- Create a product.
- Filter all products by category.
- Search a product by category.
- Add product image from the camera.
- Implement the functionalities using a different widget like TabLayout and Viewpager.
- Add more tests.
- Fix the bug in the horizontal list.
- Search a product using other attributes like name etc [FEATURE].
- Clean dependencies in the app gradle file.
- Fix UI jank when create in the toolbar is clicked.
- Clean out all unused classes/ files.
- Add color to the clicked item in the horizontal recyclerview holder.
- Appropriately handle camera permissions.
- DRY the app a bit more.
- Add the todos as issues in the github repo.
- Clone this repo into android studio.
- Build & Run the app.
If you need any help, you can connect with me.
Visit:- maku