Libraries & Plugins
This list includes libraries I have used, libraries that I have seen used in previous offerings of this course, and libraries that I have seen recommended by others online.
Apart from the list here, there are also maintained lists:
- JetBrains Package Search is the semi-official JetBrains package index.
- Awesome KMM is a curated list of community-contributed libraries.
Please read documentation carefully and make sure to use the most recent version of a library. I strongly recommend testing a library against a small sample project before committing to it.
Libraries
Official Libraries
These official libraries supported by JetBrains.
- Exposed is a DSL/DAO database framework. SQLDelight is more common for Android.
- Kandy is a plotting library, for displaying charts and graphs. Beta IIRC.
- Kotlinx datetime is the official datetime library.
- Kotlinx is the official serialization library.
- Ktor is a library for building networked clients and services.
- Markdown is a parsing library and markdown component.
Third-Party Libraries
These libraries are released and supported by the community. We only list libraries that claim to be multiplatform
, meaning that they will run on Android, Desktop, or any supported platform.
- Appdirs: Find special folders for your platform e.g., Windows Pictures folder.
- Clickt: Command-line interface framework. Used for console apps only.
- Coil: Image loading library, uses coroutines. Competes with Kamel.
- File Picker: Compose multiplatform file picker. Strangely absent from Compose.
- Keval: A Kotlin mini library for math expression string evaluation.
- Kamel: An image loading library. Competes with Coil.
- Kotter: Declarative API for dynamic console applications.
- Ksoup: Kotlin multiplatform HTML/XML parser. Port of Jsoup to Kotlin.
- Kweb: Kotlin web framework. Manipulate DOM elements in Kotlin.
- Odyssey: Multiplatform navigation library. Alternative to Voyager.
- Okio: Multiplatform IO library. Useful for working with byte streams.
- SQLDelight: Database integration. Alternative to Exposed to Android.
- Voyager: Navigation library. Alternative to Odyssey. See Meet Voyager.
Plugins
Core Plugins
These are included with with Gradle. See Gradle documentation.
- java: Base plugin for many JVM projects. Adds Java compilation.
- application: Extends Java plugin to create a runnable application. Use this for console applications.
- java-library: Extends Java plugin to support building a Java library. Use this if you are building a shared module in a multi-project build.
Community Plugins
Community plugins that can extend your build’s functionality. Search the Gradle plugin portal.
- Dependency Analysis can analyze your dependencies and locate errors in config files. Use this if you get strange dependency errors!
- Shadow is a plugin for creating fat/uber JARs. Useful for creating standalone console applications. This is not recommended for Android or Compose projects.