What problem does it solve?
It prevents fragile, one-off GraphQL handling by providing a consistent controller-and-mapper lifecycle for every AniList query and mutation, including reliable error propagation and safe Room persistence.
Core Features & Use Cases
- Request lifecycle standardization: Validates GraphQLResponse, converts results via a mapper, persists to Room, and emits domain models through DataState.
- Remote source binding clarity: Keeps Retrofit tags, operation name resolution, QueryContainerBuilder variables, and asset-backed .graphql queries synchronized.
- Mutation and edge modeling rules: Guides how to structure mutations, domain contracts, mapping/persistence responsibilities, and remote-to-local model fidelity.
Quick Start
Apply the GraphQL Query / Controller Pattern when adding a new AniList GraphQL request by defining a Retrofit @GraphQuery interface method, placing the .graphql file under assets/graphql, and executing the call through GraphQLController with the correct mapper and dispatcher.