Skip to content

Clean sample on the clean #48

Closed
Closed

Description

@michaem

Legacy part of our sample doesn't have almost clean architecture.
That's why, we had some stuck trouble with relations between presentation layer and data layer.
For example check out these files CharacterPageDataSource.kt and CharactersListViewModel.kt and you'll see.

GlobalScope.launch(CoroutineExceptionHandler { _, _ ->
            retry = {
                loadInitial(params, callback)
            }
            networkState.postValue(NetworkState.Error())
        })

DataSource shouldn't know anything about scopes.

Necessary to make sample architecture more cleaner with weak deps between presentation layer and data by implementing use case on domain layer.
It will be necessary for future, for example, to make tests functionality from Forma.

Activity

  1. self-assigned this
    on Dec 12, 2020
  2. ntnsmirnov commented on Dec 12, 2020

    @ntnsmirnov
    Collaborator

    Here is the class diagramm
    diagram
    I painted the main problems in red. And we also need usecases.

  3. linked a pull request that will close this issueusecases for favorite characters created #58on Dec 12, 2020
  4. stepango commented on Aug 6, 2026

    @stepango
    Collaborator

    Promoted to board ticket F-116 (P13) on TICKETS.md with priority: now / cron may continue. Landed board update: #251 — will close this issue when the sample domain clean-architecture slice lands on v2.

  5. stepango commented on Aug 6, 2026

    @stepango
    Collaborator

    Landed on v2 via F-116 / PR #252 — domain use cases on characters core; list paging uses viewModelScope (no GlobalScope); presentation no longer injects MarvelRepository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions