add third party library to kotlin multiplatform mobile shared module

894 views Asked by At

Am writing a KMM mobile app that will be calling an AppSync API, my intention was to implement all the API calls in the shared module so that I don't have to write that code twice (i.e for iOS and Android separately)

Secondly, I want to use the Amplify libraries in the shared module to implement the API calls, am hoping this would allow me to take advantage of lots of features such as offline storage.

What I am noticing however is that even though I have successfully added the amplify libraries in the commonMain sourceSet, the libraries are not visible on the classpath so i can not import any class from the libraries

Here is my commonMain sourceSet dependencies in the build.gradle

val commonMain by getting {
  dependencies {
    implementation("com.amplifyframework:core:1.35.2")
    implementation("com.amplifyframework:aws-api:1.35.2")
   }
}

This builds successfully and installs the dependencies but i can't import anything

screenshot

My question here is,

  • Does this mean that I can not add any third party that is not a kotlin multiplatform library at all?

  • I feel like the only option this leaves me is to implement the API calls twice in a platform-specific way which kind of defeats the purpose of using KMM completely, is there an alternative solution that could allow me to use these libraries and write the API calls as shared code that is imported to both iOS and Android apps?

Thank you

1

There are 1 answers

1
austiine On BEST ANSWER

I have decided to use https://www.apollographql.com/docs/kotlin/v2/essentials/get-started-multiplatform.

This seems to work well with the KMM, I can build the API calls once and re-use for both platforms.