Apollo Kotlin
A strongly-typed, caching GraphQL client for the JVM, Android, etc.
...You also don't have to write model types yourself, because these are generated from the GraphQL definitions your UI uses. Because generated types are query-specific, you can only access data that you actually specify as part of a query. If you don't ask for a particular field in a query, you can't access the corresponding property on the returned data structure. This library is designed primarily with Android in mind, but you can use it in any Java/Kotlin app, including multiplatform.