Challenge app for Android Engineer technical test, very useful and funny app for apply Android Architecture components.
This project is a technical test for apply Android Enginner job. Goal:
- Consume Random User API for show a list of user with endless pagination
- Save and delete favorite users showing into a horizontal scroll view
- Typing in a search bar for find suggested users and go forward to user details.
- Show a user detail with photo a main information
- Save and delete favorite in detail photo
- Save contact user into Smartphone contacts
- Frontend (Android):
- From a personal project with a solid, scalable and clean architecture for Android apps (CLEAN + MVVM), begins complete features for this project.
- This project contains 2 flavors: Dummy and Prod. Dummy reads a JSON file for local interaction and Prod request to API.
This project contains the following milestones
-
Build a scalable and stable architecture for Android App: MVVM + CLEAN Architecture
-
SOLID principles + pattern designs
-
Using Koin for Dependency Injection
-
Apply Android Architecture Components: Navigation, View Model, Live Data, Databinding, Room
-
Use Android X dependencies
-
Using modularization for decouple dependencies
-
Keep clean code and use minimal dependencies
-
Navigation: This app contains a single activity with a Navigation Controller with some Fragments:
UserFragment
andUsersDetailFragment
-
ViewModel: This component is useful for inject by Koin and implement use cases for connect domain data
-
Databinding and Observables: These are the ones in charge of refreshing data for UI throw Observable vars.
-
Unit Testing Implement test for ViewModel throw captors, mocks for check stats for LiveData too.
-
Continuous Integration With Github Actions feature (Top tab), this repository is processing throw CI.