object создаём переменную instance
2) при создании App, instance = this
3) теперь из абсолютно любого класса можно писать App.instance!! чтобы получить контекст
4) это норм или меня за это в дурку надо?
Видел, делают так. Чтобы app context был везде доступен. Только зачем !! ?
Чтобы не передавать контекст в аргументы какого нибудь метода, когда можно просто App.instance!! прописать
Эт понятно. Почему не App.instance ? Почему App.instance!! ?
Потому что: var instance: App? = null внутри companion object. Можно как то по другому, чтобы не писать "!!"?
private var _instance: App? = null val instance get() = _instance!!
Бля, с binding же так тоже делают, я тупанул че то
Пойду переносить это в свои проекты),
Ну это хреновая практика. Представь допустим, что у тебя многомодульный проект, модули которые не знают о классе App, что делать будем?
Ну значит пусть узнают о классе App. Постоянно Передавать контекст очень подбешивает
точно, это же потом невозможно будет распилить на модули)
Ну это прям совсем кошмар
Кстати, здесь можно применить даже lateinit, потому что он должен быть гарантировано инициализирован в App.
Тоже имеет смысл
Третий год так делаю
Ну хоть кто то успокоил)
да просто Сергей не юзает di как я понял, это не то чтобы современное популярное решение, в 90% случаях все таки придется di юзать
Если есть даггер/койн - то там апп контекст добывается его средствами ииинжектируется куда надо.
А hilt использовать нормально?
И его тоже, что нравится
да, но учи даггер
Почему?
Обсуждают сегодня