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:

Caution

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.