This is a Mobile application for users to fetch information about their card using the first 6 - 8 digits of the card. The information provided includes bank, country, card type, and card brand.
- Minimum SDK level 26
- Compile SDK version 34
- Version code 1
- Version name "1.0"
- Kotlin, Coroutines + Flow for asynchronous operations and background processes.
- Jetpack
- Lifecycle - Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel - Manages UI-related data holder and lifecycle awareness. Allows data to survive configuration changes such as screen rotations.
- Compose - Manages states for user interface.
- JUnit, Mockito -For writing test cases.
- Hilt - Manage dependency injection.
- Architecture
- MVVM Architecture (Model - View - ViewModel)
- Repository Pattern
- Retrofit2 & OkHttp3 - Construct the REST APIs.
- [KotlinX Serializer] - A modern JSON library for Kotlin.
- Timber - A logger with a small, extensible API.
- Truth - A library for performing assertions in tests.
- Material-Components - Material design components for building user interfaces.
The Card Info Finder app is based on the MVVM architecture and the Repository pattern.
- Side Note: Instead of emitting LiveData, we have chosen to emit StateFlow which similar to LiveData can be observed for any changes by views. This allows maintaining a consistent flow of data stream while leveraging on the power of Kotlin Flow to transform the data stream however we like.
The following APIs were consumed in this project
- Binlist API
- The app can only be installed on Android devices with versions between Android 8 and 14.
Miracle Ukaka retains exclusive rights to the use and ownership of this project.