On this page
Add dependencies to your project
You've already created your first cross-platform Kotlin Multiplatform Mobile project! Now let's learn how to add dependencies to third-party libraries, which is necessary for building successful cross-platform applications.
Dependency types
There are two types of dependencies that you can use in Multiplatform Mobile projects:
Multiplatform dependencies. These are multiplatform libraries that support multiple targets and can be used in the common source set,
commonMain
.Many modern Android libraries already have multiplatform support, like Koin, Apollo, and Okio.
Native dependencies. These are regular libraries from relevant ecosystems. You usually work with them in native iOS projects using CocoaPods or another dependency manager and in Android projects using Gradle.
When you work with a shared module, you can also depend on native dependencies and use them in the native source sets, androidMain
and iosMain
. Typically, you'll need these dependencies when you want to work with platform APIs, for example security storage, and there is common logic.
For both types of dependencies, you can use local and external repositories.
Add a multiplatform dependency
Let's now go back to the app and make the greeting a little more festive. In addition to the device information, add a function to display the number of days left until New Year's Day. The kotlinx-datetime
library, which has full multiplatform support, is the most convenient way to work with dates in your shared code.
Navigate to the
build.gradle.kts
file in theshared
directory.Add the following dependency to the
commonMain
source set dependencies:kotlin { sourceSets { val commonMain by getting { dependencies { implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0") } } } }
In
shared/src/commonMain/kotlin
, create a new fileNewYear.kt
and update it with a short function that calculates the number of days from today until the new year using thedate-time
date arithmetic:import kotlinx.datetime.* fun daysUntilNewYear(): Int { val today = Clock.System.todayIn(TimeZone.currentSystemDefault()) val closestNewYear = LocalDate(today.year + 1, 1, 1) return today.daysUntil(closestNewYear) }
In
Greeting.kt
, update thegreeting()
function to see the result:class Greeting { private val platform: Platform = getPlatform() fun greeting(): String { return "Guess what it is! > ${platform.name.reversed()}!" + "\nThere are only ${daysUntilNewYear()} days left until New Year! 🎅🏼 " } }
Run the updated application on Android and iOS and see the results:

Next step
Add more dependencies and more complex logic to your project.
See also
Discover how to work with multiplatform dependencies of all kinds: Kotlin libraries, Kotlin Multiplatform libraries, and other multiplatform projects.
Learn how to add Android dependencies and iOS dependencies with or without CocoaPods for use in platform-specific source sets.
Check out the examples of how to use Android and iOS libraries in sample projects (be sure to check the Platform APIs column).
Get help
Kotlin Slack. Get an invite and join the #multiplatform channel.
Kotlin issue tracker. Report a new issue.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform-mobile-dependencies.html