joreilly / mortycomposekmm Goto Github PK
View Code? Open in Web Editor NEWGraphQL based Jetpack Compose and SwiftUI Kotlin Multiplatform project (using https://rickandmortyapi.com/graphql)
License: Apache License 2.0
GraphQL based Jetpack Compose and SwiftUI Kotlin Multiplatform project (using https://rickandmortyapi.com/graphql)
License: Apache License 2.0
When trying to upgrade to the latest AGP, this error happens during sync:
Caused by: org.gradle.api.artifacts.UnknownConfigurationException: Configuration with name 'testApi' not found.
at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.createNotFoundException(DefaultConfigurationContainer.java:165)
at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:333)
at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:155)
at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.getByName(DefaultConfigurationContainer.java:64)
at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.add(DefaultDependencyHandler.java:120)
at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.add(DefaultDependencyHandler.java:114)
at org.jetbrains.kotlin.gradle.utils.GradleConfigurationUtilsKt.addExtendsFromRelation(gradleConfigurationUtils.kt:13)
at org.jetbrains.kotlin.gradle.utils.GradleConfigurationUtilsKt.addExtendsFromRelation$default(gradleConfigurationUtils.kt:10)
at org.jetbrains.kotlin.gradle.plugin.AbstractAndroidProjectHandler$addKotlinDependenciesToAndroidSourceSets$1.invoke(KotlinPlugin.kt:865)
at org.jetbrains.kotlin.gradle.plugin.AbstractAndroidProjectHandler.addKotlinDependenciesToAndroidSourceSets(KotlinPlugin.kt:877)
at org.jetbrains.kotlin.gradle.plugin.AbstractAndroidProjectHandler.access$addKotlinDependenciesToAndroidSourceSets(KotlinPlugin.kt:742)
Looks like an AGP/Kotlin plugin interop issue.
Hi John. I created a pull request for this but do not have permissions. If you grant me permissions I will try again.
in SwiftUI the episode number does not render. This is because episode.episode is in quotes. The fix is straightforward. In EpisodesListRowView.swift on line 13:
change Text("episode.episode")
to Text(episode.episode)
Hello and thanks for this nice sample project,
If I understand correctly, this sample uses the Apollo GraphQL client to load data from the network only. The Apollo client supports multiple types of local caches (memory, SQLite), which would make list scrolling potentially multiple times faster by utilizing the locally cached data.
The other point is regarding the use of subscription queries. I would like to automatically reload the list whenever the underlying data changes. To listen to data changes, the subscription GraphQL queries resulting in Kotlin flows are pretty simple to use. However, the Android paging library (from my understanding), does not really play well with these and the only way to refresh the paging data is to invalidate the whole paging data source, making it load everything again.
I'm interested in a sample for either one of these use cases, ideally a single solution for both of them. Has anyone else already achieved this? So far I have not been able to come up with something that works and is elegant, although I feel like there should be a way to do it.
Hi! First of all, thank you for this repo. I am exploring KMM + GraphQL and this was really helpful and inspirational.
Now the question: Do you think that having repositories and UI layer relying on GraphQL types instead of regular Kotlin data classes could have limitations at some point? There is always the possibility of writing Kotlin extensions if you need anything extra, but for annotations like @serializable, it could be an overhead.
What's your opinion? If that is the case, I'm happy to work on a PR to showcase the domain classes and how I think the mapping can work between them.
Thank you!
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
Warning
Renovate failed to look up the following dependencies: Failed to look up maven package androidx.test:core
, Failed to look up maven package androidx.test:runner
, Failed to look up maven package androidx.activity:activity-compose
, Failed to look up maven package androidx.compose:compose-bom
, Failed to look up maven package androidx.paging:paging-compose
, Failed to look up maven package androidx.navigation:navigation-compose
.
Files affected: androidApp/build.gradle.kts
, gradle/libs.versions.toml
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
com.apollographql.apollo3
, com.apollographql.apollo3:apollo-testing-support
, com.apollographql.apollo3:apollo-mockserver
, com.apollographql.apollo3:apollo-normalized-cache-sqlite
, com.apollographql.apollo3:apollo-normalized-cache
, com.apollographql.apollo3:apollo-runtime
)io.insert-koin:koin-test
, io.insert-koin:koin-core
, io.insert-koin:koin-android
)com.android.library
, com.android.application
).github/workflows/android.yml
actions/checkout v4
actions/setup-java v3
gradle.properties
settings.gradle.kts
build.gradle.kts
androidApp/build.gradle.kts
androidx.test:core 1.5.0
org.robolectric:robolectric 4.11.1
androidx.test:runner 1.5.2
gradle/libs.versions.toml
org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.0
org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.0
androidx.activity:activity-compose 1.8.2
androidx.compose:compose-bom 2024.02.01
androidx.paging:paging-compose 3.2.1
androidx.navigation:navigation-compose 2.7.7
com.google.accompanist:accompanist-insets 0.30.1
io.coil-kt:coil-compose 2.6.0
io.github.kuuuurt:multiplatform-paging 0.6.2
io.insert-koin:koin-android 3.5.3
io.insert-koin:koin-androidx-compose 3.5.3
io.insert-koin:koin-core 3.5.3
io.insert-koin:koin-test 3.5.3
com.apollographql.apollo3:apollo-runtime 4.0.0-beta.4
com.apollographql.apollo3:apollo-normalized-cache 4.0.0-beta.4
com.apollographql.apollo3:apollo-normalized-cache-sqlite 4.0.0-beta.4
com.apollographql.apollo3:apollo-mockserver 4.0.0-beta.4
com.apollographql.apollo3:apollo-testing-support 4.0.0-beta.4
junit:junit 4.13.2
com.android.application 8.1.4
com.android.library 8.1.4
com.google.devtools.ksp 2.0.0-Beta4-1.0.17
org.jetbrains.kotlin.multiplatform 2.0.0-Beta4
com.apollographql.apollo3 4.0.0-beta.4
com.rickclephas.kmp.nativecoroutines 1.0.0-ALPHA-24-kotlin-2.0.0-Beta3
shared/build.gradle.kts
gradle/wrapper/gradle-wrapper.properties
gradle 8.4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.