Hacktoberfest just started, and I have just the right kind of project to show you if you want to contribute some Kotlin!

Hacktoberfest is a month-long celebration of open-source technology organized by DigitalOcean. If you’re new to development, a student, longtime contributor, event host, you can help drive open-source and offer significant contributions to an ever-growing community.

If you haven't done so already, register for hacktoberfest here.

Last year, I suggested in my article contributing to open-source is like dancing Tango to pick something meaningful but simple, and focus on the social side of programming: it's all about creating a connection!

This year, I am launching a brand new project that is designed to make it easy for you to contribute something meaningful!

πŸ“š The Kotlin Library Playground

There are great resources to learn Kotlin.

But once you master the language, you are not done just yet.

You now face another challenging task: become familiar with its ecosystem of libraries.

There are several inefficient ways to do that:

  • reading tutorial after tutorial and being stuck in a loop where you "learn" about things you don't practice
  • starting a new project from scratch for every libraries you come around - overwhelming
  • 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 master yet.

The Kotlin Library Playground is a crowdsourcing of sample usages from popular Java & Kotlin libraries.

It aims to give you wider knowledge of what good libraries are available.

  • Interested in networking? We have samples for OkHttp, Retrofit and Ktor-Client.
  • Interested in testing? We have samples for junit-jupiter, kotest, spek, strikt, mockito, mockk, ...
  • Interested in database? We have you covered with Sql Delight, Kodein DB and Exposed.
  • Interested in trolling about what is The Best(tm) DI framework? We have samples for Dagger, Koin and Kodein
  • … you get the idea.

It is a non-goal to pick sides and say what library is best for a given topic.

Instead what we give you is a starting point if you want to go deeper in your knowledge of some specific libraries particularly important for you: you already have a Gradle project setup with the dependencies, just follow the documentation and hack you way into more knowledge!

❀️ Contributors welcome!

Head over to the "issues" tab and select a library for which you feel like contributing a usage sample

Issues_Β·_LouisCAD_kotlin-libraries-playground

Your goal is to contribute for your library of choice a self-contained, simple yet meaningful sample.

Here is for example a sample for Moshi, a modern Json library for Kotlin and Java

kotlin-libraries-playground_–_Moshi_kt

What do those 1-2-3-4 mean?

Thanks for asking, it is described in details in the CONTRIBUTING guide

πŸ€” What does a contribution look like in practice?

To give you an idea, here is an excellent contribution from Douglas Camata for Kodein, a Dependency Injection library:

βœ… TL:DR

  1. Register for hacktoberfest
  2. Read the README
  3. Claim an issue as yours
  4. Read the contributing guide
  5. Code, code, code and submit your PR
  6. Only three more PR to go, and you get the nice tee-shirt!

This post is also available on DEV.