This repository is meant to host a simple Android app that shows a list of countries with their flags, names, and country code, and allows the user to search countries by name. The purpose of the app is to demonstrate clean architecture with MVVM while not bloating the app with too many features. The app uses common libraries such as retrofit and coil-image loading/caching. There is unit tests in the required sections of the app as well.
countryList.mp4 |
Fig 2: Package structure of the app following Google's Clean Architecture |
This simple app demonstrates minimal use of network bandwidth despite device configuration changes such as device rotations.
Screen.Recording.2024-01-03.at.2.24.50.AM.1.mp4
Fig 3: Network inspection in Android Studio to show minimal bandwidth usage despite device configuration change
The app also has image caching to minimize the use of network bandwidth using the Coil library.
Fig 4: Image caching logs
The following are the test coverages of some of the important classes in the app.
Fig 5: 100% Test Coverage of View Model
Fig 6: 100% Test Coverage of Repository
Fig 7: 100% Test Coverage of Use case