There are three layers,
-
domain
contains business objects, usecases and repositories. -
data
provides repository implementations. Apollo is used for Graphql requests. -
ui
is the presentation layer which uses MvRx pattern. Conceptually, MvRx will feel very familiar for those who are used to React. Koin is used as DI in this layer
JUnit and Mockk for unit tests are used here.
There is no UI tests(Espresso) due to time limit.
Detekt is used for static code analysis for Kotlin.
.idea/codeSytles folder is shared in the repository.
Replace auth_token
with your own github access token with repo
and user
scopes in strings.xml
when you run the app.
Otherwise you will end up with 401 Unauthorized