Как стать автором
Обновить

Комментарии 4

Ну вот опять как и в прошлой статье
fun get(): MyMvpApp = INSTANCE!!


Тут будет краш в рантайме при определенном стечении обстоятельств
Вот простое решение которое однозначно скажет всем INSTANCE не может быть null что и требуется
    companion object {
        private lateinit var INSTANCE: MyMvpApp
        @JvmStatic
        fun get(): MyMvpApp = INSTANCE
    }


но если уж хочется что бы нул был так и get() должен возвращать null
а для обращения к null в котлин используется оператор безопасного вызова — ? его и надо использовать чтобы код оставался безопасным и надежным.

Кроме этого функция — fun get(): MyMvpApp провоцирует использовать фактически синглтон MyMvpApp.get() повсеместно где нужен контекст, тут разумнее было бы вернуть AppDiComponent т.е.
companion object {
 fun getInjector(): AppDiComponent = INJECTOR
}


тем самым ограничив область использования
Если у модуля конструктор без параметров то его не нужно указывать при построении компонента. В данном случае конструкция
.mainScreenModule(MainScreenModule()) 

Избыточна
Ваша статья нацелена на новичков в Android, так что же вы описывая dagger2 не потрудились описать зачем нужны все эти аннотации, которые новичкам придется прописать? Есть ли смысл от такой статьи, где читатель пропишет все что вы ему указали, и ничего не поймёт. Новичков надо учить добираться до истины, держать ответ за каждую написанную строчку кода, а вы учите переписывать рабочий код, не особо вдаваясь в подробности.
Справедливое замечание. Будет исправлено в ближайшее время.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории