I have been using both of them, both of them provide safety for NullPointerException but the lateinit can cause UnInitializedPropetyException
NullPointerException
lateinit
UnInitializedPropetyException