RandomUsers is a sample Android application with the main goal of show my clean architecture approach, using several Architecture Components from Android Jetpack, to do the following:
- Get a paged list of random users from a paged API, save them in a local database, and show the list on screen
- Load more users on scroll
- See the user details on click
- Mark users as favorites
- Show favorite users list
- Delete favorite users on swipe, and undo the deletion
I used the following architecture, patterns and libraries:
- Clean Architecture
- MVVM pattern in presentation layer, using ViewModel and LiveData
- RxJava for concurrency in domain and data layers
- Koin for dependency injection
- Navigation (Architecture component)
- Android Paging Library for pagination
- Retrofit for networking, to retrieve data from Random user generator
- Room for database
- Timber for logging
- Glide for loading images
- Some Unit testing using Mockito and Google Truth
Copyright 2019 Juan José Granadilla Manzano
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.