How To Make Singleton Class In Kotlin

How To Articles

So you’re interested in creating a Singleton class in Kotlin. Well, you’re in luck, because I happen to be a big fan of Kotlin and I’m excited to share my knowledge with you.

First, let’s start with a brief introduction to what a Singleton class is. In simple terms, a Singleton class is a class that allows only one instance of itself to be created and provides a global point of access to that instance. It’s like having a unique key to a particular resource that everyone can use.

Now, let’s dive into how to create a Singleton class in Kotlin. There are a few different approaches, but I’ll show you the one that I find most straightforward and easy to understand.

Step 1: Create a class

The first step is to create a class that will serve as our Singleton class. Let’s call it MySingleton. Here’s how you can define it:

class MySingleton {
    companion object {
        private var instance: MySingleton? = null

        fun getInstance(): MySingleton {
            if (instance == null) {
                instance = MySingleton()
            return instance as MySingleton

    // Other properties and methods of the Singleton class go here

As you can see, we’re using a companion object to declare a private instance variable. We also have a getInstance() method that checks if the instance is null and creates a new instance if it is.

Step 2: Access the Singleton instance

Now that we have our Singleton class defined, we can easily access the Singleton instance from anywhere in our code. Here’s an example:

val mySingleton = MySingleton.getInstance()

By calling the getInstance() method, we get a reference to the Singleton instance. If the instance doesn’t exist yet, it will be created.

Step 3: Using the Singleton instance

Once we have the Singleton instance, we can use it to access its properties and methods. Here’s an example:

mySingleton.someProperty = "Hello, Singleton!"

In this example, we’re setting the value of the someProperty property and then printing its value. As you can see, we can treat the Singleton instance just like any other object.

Now that you know how to create and use a Singleton class in Kotlin, you can start incorporating it into your projects. Singletons can be useful for managing shared resources, global configurations, or any other scenario where you need a single instance of a class.


In conclusion, Singleton classes in Kotlin provide a way to create a single, globally accessible instance of a class. By following the steps outlined in this article, you can create and use Singleton classes in your Kotlin projects. Just remember to use them judiciously, as they can introduce tight couplings and make testing more difficult.

So go ahead, give it a try, and let me know how it goes! Happy coding!