The point in Kotlin isn't to never use null
(and nullable types), but rather to use it safely with convenient language constructs instead of fearing it. While using non-nullable types as much as possible is ideal, you don't have to always avoid them, that's why the various null
handling constructs (safe calls, the Elvis operator, etc) exist.
If you can delay creating your variable until you have something to assign to it, that's a solution. If you can't, then marking it nullable and assigning null
to it is perfectly fine, because the compiler will protect you from doing dangerous things with it.