Разумно ли использовать Application класс как синглтон в пределах жизненного цикла приложения?

|
SoulReaver3 2022-06-26 21:10:18
mairwunnx 2022-06-26 21:09:52
5 — 6 лет, не считаю)

неплохо, я год 🙂

and_deve1 2022-06-26 21:10:52
mairwunnx 2022-06-26 21:09:52
5 — 6 лет, не считаю)

Круто, я 2,5)) но мне 20 только))) так а по поводу вопроса?)

SoulReaver3 2022-06-26 21:12:50
and_deve1 2022-06-26 21:09:25
Вижу ты шаришь в андроиде и в разработке вообще, у меня есть такой вопрос, почему не запускать активити с помощью app context? Никак не могу найти нормальный, разумный ответ)))

потому что app context это контекст всего приложения, он используется для того, что юзается для всего приложения. например, для инициализации базы данных

mairwunnx 2022-06-26 21:13:15
and_deve1 2022-06-26 21:09:25
Вижу ты шаришь в андроиде и в разработке вообще, у меня есть такой вопрос, почему не запускать активити с помощью app context? Никак не могу найти нормальный, разумный ответ)))

Шанс схлопотать UB

Chelovek_uni 2022-06-26 21:14:13
SoulReaver3 2022-06-26 21:00:55
да не за что. я тебе говорю как человек который где-то год в андроиде. многие ребята здесь, наверное, начинали даже с джавы, для них этот вопрос не возникает, поэтому я тебя понимаю) но честно — джава будет для тебя как язык, на котором говорят местные, поэтому хочешь не хочешь ты его запомнишь, даже если раньше не знал

спасибо вам огромное я сам в данное время учу с и хотелось бы под телефоны создавать приложухи просто вопрос такой был часть говорят котлин а другая чпсть джаву

creeksoncreeks 2022-06-26 21:14:48
mairwunnx 2022-06-26 21:13:15
Шанс схлопотать UB

ub?

mairwunnx 2022-06-26 21:14:57
creeksoncreeks 2022-06-26 21:14:48
ub?

Undefined behavior

creeksoncreeks 2022-06-26 21:15:07
mairwunnx 2022-06-26 21:14:57
Undefined behavior

ох уж эти сокращения

Ivansuper 2022-06-26 21:16:16
and_deve1 2022-06-26 21:09:25
Вижу ты шаришь в андроиде и в разработке вообще, у меня есть такой вопрос, почему не запускать активити с помощью app context? Никак не могу найти нормальный, разумный ответ)))

По умолчанию активности запускаются в спец контейнерах «в тасках». Одна таска отображается как один экран в разделе «недавние приложения» (где можно переключаться между ними). Чтобы знать в какой таске запуститься, нужно запускать от контекста, который уже связан с таской. Апп контекст не имеет такого инфо и ты словишь краш. Но можно явно указать флаг NEW_TASK и запустить с app context

Ivansuper 2022-06-26 21:16:44
Минус — под каждый запуск новый таск и «засорение» раздела переключения приложений и потенциальная жопа в навигации
Tonyshampan 2022-06-26 21:21:33
SoulReaver3 2022-06-26 21:03:01
если тебе видео формат нужен то посмотри видосы на канале Roman Andrushchenko. Если текстовый то в гайдах гугла вполне доступно написано

Спасибо! На него как раз наткнулся ) годные туториалы

xDilettante 2022-06-26 21:24:03
Подскажите что мне сделать что бы можно было с мобильника в дебаг режиме тестить gRPC? Если указать тот же адрес, что и при подключении с AVD то не работает…
Tonyshampan 2022-06-26 21:25:37
Разумно ли использовать Application класс как синглтон в пределах жизненного цикла приложения? Хранить там ссылку на бд, префы, апп контекст
yesple 2022-06-26 21:26:35
Tonyshampan 2022-06-26 21:25:37
Разумно ли использовать Application класс как синглтон в пределах жизненного цикла приложения? Хранить там ссылку на бд, префы, апп контекст

С Di ознакомьтесь

mairwunnx 2022-06-26 21:26:51
Tonyshampan 2022-06-26 21:25:37
Разумно ли использовать Application класс как синглтон в пределах жизненного цикла приложения? Хранить там ссылку на бд, префы, апп контекст

Смотря кого слушать.

Если тебе говорит человек что «так низяя!», и советует ди, то вероятно это не то что ты хочешь услышать

mairwunnx 2022-06-26 21:27:08
Можно начать с того, что один фиг ди тоже самое делает)))
yesple 2022-06-26 21:27:28
mairwunnx 2022-06-26 21:27:08
Можно начать с того, что один фиг ди тоже самое делает)))

Но SOLID же)

mairwunnx 2022-06-26 21:28:58
Я как встречал), аппликейшн класс по солиду, весь крутой такой, в ди контейнере валяется (хотя к слову сам Application класс нарушает СОЛИД)

И на нафиг! Классы утилитарные лежат как синглтончики)

mairwunnx 2022-06-26 21:30:05
Я считаю, плевать, будет ли синглтоном или нет, не важно на какой платформе, в каком языке

Главное чтобы время жизни объекта контролировалось, и чтобы из-за этого не словить опять же UB

yesple 2022-06-26 21:30:58
mairwunnx 2022-06-26 21:30:05
Я считаю, плевать, будет ли синглтоном или нет, не важно на какой платформе, в каком языке

Главное чтобы время жизни объекта контролировалось, и чтобы из-за этого не словить опять же UB

Если отдашь Application условному Hilt, проблем больших не будет, разве что с тестированием

mairwunnx 2022-06-26 21:31:25
И без, тоже проблем не будет, если все правильно разрулить
V3n0m5 2022-06-26 21:31:42
mairwunnx 2022-06-26 21:28:58
Я как встречал), аппликейшн класс по солиду, весь крутой такой, в ди контейнере валяется (хотя к слову сам Application класс нарушает СОЛИД)

И на нафиг! Классы утилитарные лежат как синглтончики)

А порождающий Application класс Context так вообще пример эталонного God-объекта, однако же пользуются и до сих пор есть
Activity myActivity = (MainActivity) getContext();

mairwunnx 2022-06-26 21:32:20
V3n0m5 2022-06-26 21:31:42
А порождающий Application класс Context так вообще пример эталонного God-объекта, однако же пользуются и до сих пор есть
Activity myActivity = (MainActivity) getContext();

Ну в целом это и нормально, так сказать, делали бы по солиду, кодовая база разрослась в десятки раз)

PSA_98Serg 2022-06-26 21:33:07
Tonyshampan 2022-06-26 21:25:37
Разумно ли использовать Application класс как синглтон в пределах жизненного цикла приложения? Хранить там ссылку на бд, префы, апп контекст

Ну если модные di — койны всякие не используются — то этосамое удобное для добычи аппконтекста где угодно

yesple 2022-06-26 21:33:11
mairwunnx 2022-06-26 21:31:25
И без, тоже проблем не будет, если все правильно разрулить

Ну без, не так удобно, не зря придумали фреймворки внедрения зависимостей

yesple 2022-06-26 21:33:41
Честно, жизнь с DI Framework стала гораздо проще
Flobster 2022-06-26 21:40:51
народ, вы как тягаете строки с ресурсов во view model?
creeksoncreeks 2022-06-26 21:41:04
yesple 2022-06-26 21:33:41
Честно, жизнь с DI Framework стала гораздо проще

главное чтобы человек понимал, как это самое di работает изнутри, а не тащил его «потому что сказали»

mairwunnx 2022-06-26 21:41:35
Flobster 2022-06-26 21:40:51
народ, вы как тягаете строки с ресурсов во view model?

Свои наработки. Любые классы врапперы так называемые «ресурс провайдеры»

yesple 2022-06-26 21:41:54
creeksoncreeks 2022-06-26 21:41:04
главное чтобы человек понимал, как это самое di работает изнутри, а не тащил его «потому что сказали»

Это не так сложно, если уж честно, за тебя большинство обычно сделано

mairwunnx 2022-06-26 21:42:08
creeksoncreeks 2022-06-26 21:41:04
главное чтобы человек понимал, как это самое di работает изнутри, а не тащил его «потому что сказали»

Так и происходит, многие даже его ни разу не настраивали), кто на работу уже пришел)

mairwunnx 2022-06-26 21:42:31
yesple 2022-06-26 21:41:54
Это не так сложно, если уж честно, за тебя большинство обычно сделано

В этом и проблема часто, все сделано, остается пукнуть в ладошку и скопипастить строку

yesple 2022-06-26 21:42:51
mairwunnx 2022-06-26 21:42:31
В этом и проблема часто, все сделано, остается пукнуть в ладошку и скопипастить строку

Ну, в новом проекте ещё модули настроить)

yesple 2022-06-26 21:43:12
И к тестам присобачить тестовый апп
creeksoncreeks 2022-06-26 21:43:21
yesple 2022-06-26 21:41:54
Это не так сложно, если уж честно, за тебя большинство обычно сделано

в том-то и дело, что за тебя все сделано) и потом говорят «как это ты не юзаешь нав компонент? ты что fragmentManager используешь? с коммитами этими?»

yesple 2022-06-26 21:43:48
creeksoncreeks 2022-06-26 21:43:21
в том-то и дело, что за тебя все сделано) и потом говорят «как это ты не юзаешь нав компонент? ты что fragmentManager используешь? с коммитами этими?»

Нууу, нав компонент в маленьких проектах идеален
Без вложенности это прям шикарно

yesple 2022-06-26 21:44:50
Правда потом появляется вложенность, и можно плыть кукухой
creeksoncreeks 2022-06-26 21:45:06
yesple 2022-06-26 21:43:48
Нууу, нав компонент в маленьких проектах идеален
Без вложенности это прям шикарно

опять же, все это верно лишь в том случае, если ты понимаешь как он работает, читал доку и копался в сорцах

(но имхо концепция писать все в хмл и фрагменты соединять стрелочкой такое себе, чисто с эстетической точки зрения)

yesple 2022-06-26 21:46:02
creeksoncreeks 2022-06-26 21:45:06
опять же, все это верно лишь в том случае, если ты понимаешь как он работает, читал доку и копался в сорцах

(но имхо концепция писать все в хмл и фрагменты соединять стрелочкой такое себе, чисто с эстетической точки зрения)

Наоборот это прекрасная концепция, и да, ты можешь писать навигацию и в коде, после того как стрелочки расставишь)

yesple 2022-06-26 21:46:32
Но, проблемы с вложенностью и бекстеками есть и сейчас
2022-06-26 21:46:35
Какой же кайф понимать, о чем тут пишут, а так же, что ты уже знаешь и умеешь применять
MaxSiominDev 2022-06-26 21:46:47
creeksoncreeks 2022-06-26 21:43:21
в том-то и дело, что за тебя все сделано) и потом говорят «как это ты не юзаешь нав компонент? ты что fragmentManager используешь? с коммитами этими?»

Мама я в телевизоре

and_deve1 2022-06-26 22:04:31
Ivansuper 2022-06-26 21:16:44
Минус — под каждый запуск новый таск и «засорение» раздела переключения приложений и потенциальная жопа в навигации

Спасибо за ответ))

ckw71 2022-06-26 22:19:03
android_ru-1187804.jpg
Почему ругается на this при переходе с фрагмента на фрагмент?(
Panic_Berlin 2022-06-26 22:19:48
У фрагмента нет контекста
Panic_Berlin 2022-06-26 22:19:59
Поставь requerActivity
awawa0_0 2022-06-26 22:20:15
ckw71 2022-06-26 22:19:03
Почему ругается на this при переходе с фрагмента на фрагмент?(

Потому что фрагмент не наследуется от контекста

ckw71 2022-06-26 22:20:21
Panic_Berlin 2022-06-26 22:19:59
Поставь requerActivity

Спс

creeksoncreeks 2022-06-26 22:22:13
Panic_Berlin 2022-06-26 22:19:59
Поставь requerActivity

зачем? почему именно requireActivity?

Panic_Berlin 2022-06-26 22:22:52
creeksoncreeks 2022-06-26 22:22:13
зачем? почему именно requireActivity?

Ну или requerContext, у него я думаб все равно single activity

|