Question: Is there any way to annotate variable in Kotlin which is `null` on application start and after it is created it cannot be assigned to `null` again?

I can't set field as e.g. `var someField: Boolean?` because it can be nulled at some point or `lateinit var someField: Boolean` because it is expected that field is initialized before it will be used (or maybe this is proper way to resolve my situation?).

Answer: 
I'm not sure I understand why `lateinit` doesn't work for you, other than that it doesn't work for primitive types - but the [`notNull` delegate](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.properties/-delegates/not-null.html) might be what you're looking for:

```
class X {
    var z: String by Delegates.notNull()
}

val x1 = X()
x1.z = "foo"
println(x1.z) // foo

val x2 = X()
println(x2.z) // IllegalStateException: Property z should be initialized before get.

```

It will give you an exception if you read it before setting it, and otherwise the property will have a non-null type.
I'm not sure because i don't really see what you want to do but why you don't create the var when you initialize it? So the var will never be null and you will not have to initiate it with null

If you really need this var in order to check if it's null to change it why you don't use an int instead of a bool ?