Честно говоря, странно что вы меня так плохо понимаете. Вопроса по инкапсулции не стоит! Я как раз пытаюсь все закрыть и запрятать - уже раз 10 это в разных формах Вам повторил. Естественно меня одна фабрика, ведь я разношу app-монолит по модулям. Жаль, очевидно вы работаете с MVP, а значит вопрос с общей фабрикой у вас не стоит - превращать одну фабрику в кучу болер плейт кода без крайней нужнды я не спешу, уж извините. В любом случае спасибо что хоть что-то написали
У нас в проекте фабрика общая - реализована через map:
class CarolViewModelFactory @Inject constructor( private val creators: @JvmSuppressWildcards Map<Class<out ViewModel>, Provider<ViewModel>>) : ViewModelProvider.Factory {
В мапу добавляется по ключу:
@Target( AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)@Retention(AnnotationRetention.RUNTIME)@MapKeyannotation class ViewModelKey(val value: KClass<out ViewModel>)
отсюда и возникает делема: чтобы добавить вьюмодель фичи в мапу - должна существовать мапа, а она вроде как живет только в app. Можно попробовать разрулить интерфесами, но уж больно их много получится. Если у вас есть время, пожалуйста, сделайте для меня примерчик - торжественно клянусь помочь 10 другим ребятам на SO)))
@foxspa Спасибо за статью - буквально по мне проводим рефакторинг! Скажите, как вы подключаете вьюмодели в фича модулях? Фабрика уходит в коммон и подключается в каждый модуль в отдельности? Откуда тогда локально брать мапу viewModel-провайдеров? А если подключиние строго в app-module - прокидываете объект фабрики в модуль? Очень интересно как у вас организована работа с фабрикой вьмоделей, ломаю над этим голову второй день. В ваших классных примерах viewModel-и почему-то не представлены.
@Phansier , спасибо за статью - мы как раз в процессе рефакторинга. Скажите, как вы подключаете вьюмодели в фича модулях? Фабрика уходит в коммон и подключается в каждый модуль в отдельности? Откуда тогда локально брать мапу viewModel-провайдеров? А если подключиние строго в app-module - прокидываете объект фабрики в модуль? Очень интересно в общем, т.к. ломаю над этим голову второй день. В ваших классных примерах viewModel-и почему-то не представлены.
Взял себе в декабре pixel 6 pro - доволен как слон. Камера невероятная, все летает. Из минусов - отпечаток пальцев работает не очень, нужно сильно прижимать палец. Зарядка идёт почти 2 часа - явно что-то мнакрутили чтобы батарея не изнашивались. Остальных недостатков я не заметил, взял бы его ещё раз 100%
Доброе утро) По ходу вхождения в многомодульность я несколько раз перечитал вашу статью (это крутая!), но у меня все-равно есть один неразрешенный вопрос: допустим, клиент находиться на каком-то экране, в этот момент запускается сборщик мусора - получиться, что ссылка на компонент будет удалена из holder-а. Если для клиента этот модуль был модуль с состоянияем, которое должно было использовать в следующем модуле, возникнет проблема - ведь во втором модуле мы получим уже другой объект компонента, т.к. weakReference занулиться. Получается, для модулей, которые хранят состояния и подключается между несколькими фичами нельзя использовать мягкую ссылу и нужно вычищать их ручками? Как быть?
P.S. у меня этот вопрос архи-важный, т.к. приложение работает нон-стоп с момента включения планшета и его выключения
Спасибо за статью! Интересно, есть на чем подумать, мб получиться решить проблемы, сделав гибридный вариант. Не могу не спросить что означает "прикопает"? Di -> dig -> прикопает? Это какой-то слэнг? Напомнило мне старый анекдот. Мужчина просить девушку передать за проезд в автобусе: - Будьте добры, рыбанька, передайте пожалуйста Девушка думает: "Рыбанька значит щука, щука значит зубастая, зубастая значит собака": - А-о! Товарищи, он меня с*чкой обозвал!
Во-первых, хочется спросить администрацию: Хабрпочему приходится листать 400 комментариев, чтобы написать свой? Форум девелоперов с неудобным софтом - это не круто. Во-вторых, почему всех так удивила статья?) Ну лоббируют они интересы свои, а кто так не делает? Кто платить больше налогов должен иметь с этого какое-то плюс, иначе какой смысл? Ну лучше ли тогда платить налоги в ОАО? В третьих, нефть, газ уголь и бумага - пережиток пришлого. Если мы не отойдем от этого то через 100 или 200 лет придем к безумному Максу. Если для кого то 100 лет это много, высуньте голову из... песка - нельзя за 10 лет индустрии перестроить, на это уйдет целое поколение. И хорошо, что кто-то это делает пока другие рассуждают
да, такое ощущние, что вы прочитал Kotlin in action и сделали наоборот)) Ну ладно, действительно дело вкуса - главное чтобы все в вашей компании писали одинаково.
Три года назад, в это самое время я ковырял outsource-ный проект на Cordove, паралельно пытаясь чего там накодить на котлине для внутренних нужд компании, и вот я здесь) Очень скоро наш проект нагонит все последние тренды - от Кордовы слава богу отказались как два года. Спасибо вам за статью. Интересно было бы узнать ваше внемние спустя три года? Чтобы сделали теперь иначе, лучше?
ну, это вы как-то строго берете. 2 года в джунах ходить?) Если человек увлекается кодингом лет с 13, а с 16 заинтересовался android — почему он сейчас не может пройти на мидла? К тому же вы оцениваете ситуацию, как коня в вакууме, уж простите) Во-первых, любая ламповая кмпания заинтересована в перспективных юнцах и с радостью пойдет им на встречу, ведь у них потенциала в развитии куда больше чем у нас, матерых волков индустрии)) К тому же автора мог кто-то натаскать — будь у меня мелкий брат я бы его обязательно кодить научил и советами засыпал еще в пубертатном периоде, чтобы он моих ошибок не совершал. В общем, мое мнение такое: сообщество отрицает все, что выше их возможностей. Большинство в 17 сортировку колпачком с ошибками писали, а тут человек на работу устроился.
Человека заминусили за успех - добро пожаловать во взрослый мир, где полно злющих и завистливых лентяев)) я тоже был на дэф офф, но не прошел - скорее всего меня прирезали за использование стринги в алгоритме - это плохо и временно, и я честно об этом сказал, но времени на исправление у меня не хватило, да и желания тоже - второй интервьювер откровенно грустил от того, что его заставили работать в субботу))) не люблю когда на меня кладут зер, положил его в ответ. Но это мелочи) Поздравляю тебя с хорошим стартом, жги дальше, не трать время на слабые компании только ради денег.
Честно говоря, странно что вы меня так плохо понимаете. Вопроса по инкапсулции не стоит! Я как раз пытаюсь все закрыть и запрятать - уже раз 10 это в разных формах Вам повторил. Естественно меня одна фабрика, ведь я разношу app-монолит по модулям. Жаль, очевидно вы работаете с MVP, а значит вопрос с общей фабрикой у вас не стоит - превращать одну фабрику в кучу болер плейт кода без крайней нужнды я не спешу, уж извините. В любом случае спасибо что хоть что-то написали
примеры посмотрел, но это совсем не то. Здесь локальные закрытые фабрики для локальных закрытых объектов - никакой связи с app или чем-то подобным
и за это спасибо, наверное меня увлекли задачи, раз я пропустил ответ
да, спасибо за примеры - посмотрю их сейчас
У нас в проекте фабрика общая - реализована через map:
В мапу добавляется по ключу:
отсюда и возникает делема: чтобы добавить вьюмодель фичи в мапу - должна существовать мапа, а она вроде как живет только в app. Можно попробовать разрулить интерфесами, но уж больно их много получится. Если у вас есть время, пожалуйста, сделайте для меня примерчик - торжественно клянусь помочь 10 другим ребятам на SO)))
@foxspa Спасибо за статью - буквально по мне проводим рефакторинг! Скажите, как вы подключаете вьюмодели в фича модулях? Фабрика уходит в коммон и подключается в каждый модуль в отдельности? Откуда тогда локально брать мапу viewModel-провайдеров? А если подключиние строго в app-module - прокидываете объект фабрики в модуль? Очень интересно как у вас организована работа с фабрикой вьмоделей, ломаю над этим голову второй день. В ваших классных примерах viewModel-и почему-то не представлены.
@Phansier , спасибо за статью - мы как раз в процессе рефакторинга. Скажите, как вы подключаете вьюмодели в фича модулях? Фабрика уходит в коммон и подключается в каждый модуль в отдельности? Откуда тогда локально брать мапу viewModel-провайдеров? А если подключиние строго в app-module - прокидываете объект фабрики в модуль? Очень интересно в общем, т.к. ломаю над этим голову второй день. В ваших классных примерах viewModel-и почему-то не представлены.
Взял себе в декабре pixel 6 pro - доволен как слон. Камера невероятная, все летает. Из минусов - отпечаток пальцев работает не очень, нужно сильно прижимать палец. Зарядка идёт почти 2 часа - явно что-то мнакрутили чтобы батарея не изнашивались. Остальных недостатков я не заметил, взял бы его ещё раз 100%
Доброе утро) По ходу вхождения в многомодульность я несколько раз перечитал вашу статью (это крутая!), но у меня все-равно есть один неразрешенный вопрос: допустим, клиент находиться на каком-то экране, в этот момент запускается сборщик мусора - получиться, что ссылка на компонент будет удалена из holder-а. Если для клиента этот модуль был модуль с состоянияем, которое должно было использовать в следующем модуле, возникнет проблема - ведь во втором модуле мы получим уже другой объект компонента, т.к. weakReference занулиться. Получается, для модулей, которые хранят состояния и подключается между несколькими фичами нельзя использовать мягкую ссылу и нужно вычищать их ручками? Как быть?
P.S. у меня этот вопрос архи-важный, т.к. приложение работает нон-стоп с момента включения планшета и его выключения
Спасибо за статью! Интересно, есть на чем подумать, мб получиться решить проблемы, сделав гибридный вариант. Не могу не спросить что означает "прикопает"? Di -> dig -> прикопает? Это какой-то слэнг? Напомнило мне старый анекдот. Мужчина просить девушку передать за проезд в автобусе:
- Будьте добры, рыбанька, передайте пожалуйста
Девушка думает: "Рыбанька значит щука, щука значит зубастая, зубастая значит собака":
- А-о! Товарищи, он меня с*чкой обозвал!
А, х*ли нам простым разрабам?) Шучу конечно. Причина в том, что софта слишком много, гениев и времени на из обучения нет - пришло время ИИ.
"7/10 - да, вы явно инженер" - а еще я гадалка, потому что не понял ни строчки из этого бреда)
Во-первых, хочется спросить администрацию: Хабрпочему приходится листать 400 комментариев, чтобы написать свой? Форум девелоперов с неудобным софтом - это не круто. Во-вторых, почему всех так удивила статья?) Ну лоббируют они интересы свои, а кто так не делает? Кто платить больше налогов должен иметь с этого какое-то плюс, иначе какой смысл? Ну лучше ли тогда платить налоги в ОАО? В третьих, нефть, газ уголь и бумага - пережиток пришлого. Если мы не отойдем от этого то через 100 или 200 лет придем к безумному Максу. Если для кого то 100 лет это много, высуньте голову из... песка - нельзя за 10 лет индустрии перестроить, на это уйдет целое поколение. И хорошо, что кто-то это делает пока другие рассуждают
когда они только работать успевают))
да, такое ощущние, что вы прочитал Kotlin in action и сделали наоборот)) Ну ладно, действительно дело вкуса - главное чтобы все в вашей компании писали одинаково.
С таким подходом отток мозгов за границу превратиться в массовое бегство, а значит очень скоро нас ждет железный занавес
Три года назад, в это самое время я ковырял outsource-ный проект на Cordove, паралельно пытаясь чего там накодить на котлине для внутренних нужд компании, и вот я здесь) Очень скоро наш проект нагонит все последние тренды - от Кордовы слава богу отказались как два года. Спасибо вам за статью. Интересно было бы узнать ваше внемние спустя три года? Чтобы сделали теперь иначе, лучше?
Что за задача?
Человека заминусили за успех - добро пожаловать во взрослый мир, где полно злющих и завистливых лентяев)) я тоже был на дэф офф, но не прошел - скорее всего меня прирезали за использование стринги в алгоритме - это плохо и временно, и я честно об этом сказал, но времени на исправление у меня не хватило, да и желания тоже - второй интервьювер откровенно грустил от того, что его заставили работать в субботу))) не люблю когда на меня кладут зер, положил его в ответ. Но это мелочи) Поздравляю тебя с хорошим стартом, жги дальше, не трать время на слабые компании только ради денег.