Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

💡 Task Description

The application allows users to browse trending Kotlin repositories on GitHub and search for repositories by name. Results are displayed with pagination support.

Main functionality:

  1. Home Screen - Displays a paginated list of popular Kotlin repositories from GitHub.
  2. Search Screen - Users can search for repositories with debounced input, and the app displays paginated results.
  3. Repository Details - Shows detailed information about a selected repository including stars, forks, language, and owner info.

Development

Testing (TDD Approach)

All unit tests in this project were developed following the Test-Driven Development (TDD) methodology:

  1. RED — Write a failing test that defines the expected behavior before implementing the code.
  2. GREEN — Write the minimal production code to make the test pass.
  3. REFACTOR — Improve the code while keeping all tests green.

Tests follow the Given / When / Then structure and use the naming convention:

GIVEN <precondition> WHEN <action> THEN <expected result>

Test coverage by module:

  • domain — UseCases (GetPagedKotlinReposUseCase, SearchReposUseCase, GetRepoUseCase), domain models.
  • data — Repository (GithubRepositoryImpl), DataSource (GithubDataSource), mappers (RepoDtoMapper, RepoResultListDtoMapper, RepoDboMapper, UserDtoMapper, UserDboMapper), cache (RepositoryCache), paging (SearchPagingSource), interceptor (PagingInterceptor).
  • app — ViewModels (SearchViewModel, HomeViewModel, DetailsViewModel), UI state classes (ScreenStatus, SearchState, DetailsScreenState), and error-to-UI status mapping extensions.

📸 Screenshots

🌞 Light Mode

Home Search Details

🌚 Dark Mode

Home Search Details

Find this repository useful? ❤️

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages