{"id":17149339,"url":"https://github.com/louiscad/kotlin-libraries-playground","last_synced_at":"2025-04-07T12:08:21.347Z","repository":{"id":43698212,"uuid":"295134297","full_name":"LouisCAD/kotlin-libraries-playground","owner":"LouisCAD","description":"A playground to gain a wider and deeper knowledge of the libraries in the Kotlin ecosystem. Also the official sample for gradle refreshVersions.","archived":false,"fork":false,"pushed_at":"2024-01-29T20:20:04.000Z","size":768,"stargazers_count":183,"open_issues_count":16,"forks_count":57,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-31T10:08:58.794Z","etag":null,"topics":["hacktoberfest","kotlin","kotlin-libraries","playground"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LouisCAD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-13T11:11:08.000Z","updated_at":"2025-01-20T08:36:18.000Z","dependencies_parsed_at":"2024-12-31T07:21:54.154Z","dependency_job_id":null,"html_url":"https://github.com/LouisCAD/kotlin-libraries-playground","commit_stats":{"total_commits":99,"total_committers":30,"mean_commits":3.3,"dds":0.4040404040404041,"last_synced_commit":"ff3ae6af7530d3b873b79486cf6e947f1ee53aa1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisCAD%2Fkotlin-libraries-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisCAD%2Fkotlin-libraries-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisCAD%2Fkotlin-libraries-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LouisCAD%2Fkotlin-libraries-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LouisCAD","download_url":"https://codeload.github.com/LouisCAD/kotlin-libraries-playground/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648977,"owners_count":20972945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","kotlin","kotlin-libraries","playground"],"created_at":"2024-10-14T21:32:55.636Z","updated_at":"2025-04-07T12:08:21.320Z","avatar_url":"https://github.com/LouisCAD.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kotlin Libraries Playground\n\nA playground to gain a wider and deeper knowledge of the libraries in the Kotlin ecosystem\n\nAlso the official sample for [gradle refreshVersions](https://github.com/jmfayard/refreshVersions)\n\n[![](https://user-images.githubusercontent.com/459464/93568735-ddcc9300-f990-11ea-952b-1c9a461f8e14.png)](http://www.youtube.com/watch?v=VhYERonB8co \"Gradle refreshVersions\")\n\n## Usage\n\nRun all the samples\n\n```\n$ ./gradlew :kotlin-jvm:run\n```\n\nRun all the tests\n\n```\n$ ./gradlew :kotlin-testing:test\n```\n\nTest tests called FailingXXX are expected to fail\n\n\u003cimg width=\"522\" alt=\"kotlin-libraries-playground_–_versions_properties__kotlin-libraries-playground__and_GitHub_Desktop\" src=\"https://user-images.githubusercontent.com/459464/116738577-edb25800-a9f2-11eb-9a63-96805bb59cf4.png\"\u003e\n\n\n## ❤️ Contributors welcome! #hacktoberfest\n\nWe want to collect sample usage of Kotlin libraries, and the more the better!\n\nYou are very welcome to contribute your own library sample.\n\n\u003cbig\u003e==\u003e [CONTRIBUTING.md](https://github.com/LouisCAD/kotlin-libraries-playground/blob/main/CONTRIBUTING.md)\u003c/big\u003e\n\n### 🤔How do you keep up with all the new stuff?\n\nThere are [great resources to learn Kotlin](https://dev.to/jmfayard/best-ways-to-learn-kotlin-from-scratch-or-from-java-with-books-or-tutorials-online-or-in-the-ide-52cm).\n\nBut once you master the language, you are not done just yet.\n\nYou now face another challenging task: become familiar with its ecosystem of libraries.\n\nWith time, you want to both acquire:\n\n- a **wider** knowledge of what good libraries are available in the ecosystem in general\n- a **deeper** knowledge of some specific libraries particulary important for you\n\nThere are several inefficient ways to do that:\n\n- reading tutorial after tutorial and being stuck in a loop where you \"learn\" about things you don't practice\n- starting a new project from scratch for every libraries you come around - overwhelming\n- trying out the library in your main project at work - a project with a compilation time of 5 minutes, who uses an older version of the library than the tutorial assumes ; not sure your colleagues will be happy that you introduce a dependency you don't yet master.\n\n### 🦅Widening your knowledge of libraries\n\nThe `kotlin-libraries-playgound` contains samples for a growing number of good Kotlin libraries including\n[Apollo, CliKt, Kodein DI, Kodein DB, Exposed, Fuel, Hoplite, Klaxon, Konad, Konf, Kotlin Collections, Kotlin  Faker, Kotlin IO, Kotlinpoet, Kotlin Statistics, Kotlinx Serialization, Ktor Client, Mordant, Moshi, OkHttp, OkIO, Picnic, Retrofit, Skrapeit, SqlDelight, Statemachine, ...](https://github.com/LouisCAD/kotlin-libraries-playground/tree/main/kotlin-jvm/src/main/kotlin/playground),\n[KoTest, Mockk, Spek, Strikt, Mockito, Junit-Jupiter, ...](https://github.com/LouisCAD/kotlin-libraries-playground/tree/main/kotlin-testing/src/test/kotlin/testing) ...\n\nYou are very welcome to contribute new samples (see contributing section below).\n\nFor each library, we have a sample usage that is:\n\n- self-contained (own package and main function, usually one file)\n- simple, yet meaningful (no fancy coffee machine with [termosiphon](https://github.com/google/dagger/tree/master/examples/maven/coffee/src/main/java/example/dagger))\n\nHere is for example the sample usage for [kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization)\n\n```kotlin\npackage playground.kotlinx.serialization\n\nfun main() {\n    println(\"# Kotlin/kotlinx.serialization : Kotlin multiplatform / multi-format serialization\")\n    val user = User(name = \"Robert\", age = 42)\n    val json = \"\"\"{\"name\":\"Robert\",\"age\":42}\"\"\"\n\n    Json.encodeToString(user) shouldBe json\n    Json.decodeFromString\u003cUser\u003e(json) shouldBe user\n}\n\n@Serializable\ninternal data class User(\n    val name: String,\n    val age: Int\n)\n```\n\n\n## 🔭 Deepening your understanding of one library\n\nClone this repository and make it yours.\n\nWant to learn more about, say, [OkHttp](https://github.com/square/okhttp)?\n\nYou don't have the hassle to create a new project.\n\nCreate a new **branch** called okhttp and try out things while you are reading the [documentation](https://square.github.io/okhttp/recipes/)\n\n## 🎩 Easy dependency management with gradle refreshVersions\n\nThis playground is also the official sample for [gradle refreshVersions](https://github.com/jmfayard/refreshVersions)\n\nIt makes it super easy to refresh dependencies\n\n`$ ./gradlew refreshVersions`\n\n![](https://raw.githubusercontent.com/jmfayard/refreshVersions/5d646e3a0f2924b5097bf9ce680a03772807f2c2/docs/screenshots-usage/versions.properties_step02.png)\n\nAnd to add a new dependency without leaving the IDEA and with auto-completion :\n\n![](https://raw.githubusercontent.com/jmfayard/refreshVersions/5d646e3a0f2924b5097bf9ce680a03772807f2c2/docs/screenshots-usage/dependencies_constants_autocomplete_2.png)\n\n\n## ❤️ A big thanks to our wonderful contributors !\n\n\n\u003ca href=\"https://labhr.github.io/hatrack/#repo=LouisCAD/kotlin-libraries-playground\"\u003e\u003cimg width=\"1063\" alt=\"Let_s_Build_a_Hat_Rack\" src=\"https://user-images.githubusercontent.com/459464/97205591-f3b34c00-17b7-11eb-884c-11a9ac42a4b8.png\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouiscad%2Fkotlin-libraries-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flouiscad%2Fkotlin-libraries-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouiscad%2Fkotlin-libraries-playground/lists"}