Павел
Всем привет. Есть вопрос касательно приложения с MVP. Суть такова: есть ViewPager с тремя фрагментами. Все фрагменты одинаковы (содержат RecyclerView), отличается только контент. Если для каждого фрагмента делать свой класс со своим презентером, всё работает как положено. Но такой подход мне не очень нравится, поскольку по структуре фрагменты одинаковы, т.е. происходит лишний копипаст кода. Я хотел бы использовать несколько экземпляров одного класса фрагмента и в зависимости от ситуации отдавать ему, скажем, разные презентеры или реализовать в одном презентере логику выбора контента. Но в последнем случае начинает твориться какая-то дичь, контент подгружается неправильно. Как вообще лучше быть в таком случае?
Mike
central
Копипаст — один из самых страшных монстров.
да но иногда он лучше, чем говнокод
Mike
да но иногда он лучше, чем говнокод
Действительно, одни формы говнокода в принципе могут быть лучше других
Сергей
Всем привет. Есть вопрос касательно приложения с MVP. Суть такова: есть ViewPager с тремя фрагментами. Все фрагменты одинаковы (содержат RecyclerView), отличается только контент. Если для каждого фрагмента делать свой класс со своим презентером, всё работает как положено. Но такой подход мне не очень нравится, поскольку по структуре фрагменты одинаковы, т.е. происходит лишний копипаст кода. Я хотел бы использовать несколько экземпляров одного класса фрагмента и в зависимости от ситуации отдавать ему, скажем, разные презентеры или реализовать в одном презентере логику выбора контента. Но в последнем случае начинает твориться какая-то дичь, контент подгружается неправильно. Как вообще лучше быть в таком случае?
Я пытался похожее сделать в mvvm - три фрагмента, три адаптера и три вьмодели. Логика отличается только в адаптерах, в моделях разное только подмножество данных. Но при попытке сделать базовый класс с параметрами повылазило такое что нуегонах.
Павел
Хорошо начал, но финал всё испортил. Творится дичь — ну, значит, так закодил. Как лучше быть — кодить хорошо.
Не захотелось расписывать много лишнего. Фрагменты принимают на вход enum, в зависимости от этого решается, что нужно загрузить. Создавая три экземпляра фрагмента, я хотел бы загрузить для каждого свои данные, но происходит так, что загружаются всегда данные последнего фрагмента во все предыдущие.
Сергей
Хотя может и пперепишу - но копипаст надежнее
Anes
Всем привет. Вопрос такой на что может уходить оперативка при работающем приложении. Приложение простое, даже в меню жрет 200мб. Утечек нет проверял с профиллером и leakCanary. Может загрузка дизайна и граф ресурсов в imageView так сильно влияет?
Сергей
Ну я сразу в профайлере умидел эти многомегабайтные буфера битмапов и сообразил где искать
Mike
А в newInstance какой код?
Павел
А в newInstance какой код?
Каким-то чудом решил сейчас проблему, переписал всё заново. Теперь один класс фрагмента и разные презентеры, пока оставлю так. Спасибо)
Anonymous
Хелп плс. После 15ти минут работы в андроид студио, начинаются жуткие фризы. Что может влиять?
Anes
Есть ли библиотеки какие нибудь готовые под рекламу? Нужно сделать так чтобы приложение грузило баннеры с нашего сервера и время от времени листала их.
Anonymous
Железо здесь не причём. Если бы, железо играла бы роль, я думаю сразу бы фризы проявились. (Железо, не на самом низу)
Anonymous
Та по сути, я каждый раз оффаю, не нужные нагрузки
Anonymous
Ну ладно, пойдём в гугл. Спасибо)
Anonymous
В идеи, все прекрасно
Maksim
Подскажите, если кто-то пишет параллельно под Андроид и iOS, сильно отличаются эти системы с точки зрения разработки?
Maksim
Много времени нужно, чтобы дополнительно ещё и ios разработку освоить?
central
натив?
Maksim
Да
Anonymous
Здарова всем,
Anonymous
Посоветуйте норм браузер быстрый без рекламы И чтоб в загрузке можно было остановить а то ща у многих браузеров эт не робит (пауза).
Anonymous
Если не ошибаюсь
central
для ios маки нужны точно
Maksim
Там кажется маки нужны
Это не проблема. Мне интересно насколько сильно отличается платформа. Есть ли аналоги объектов, принципов построения или там совсем всё по другому
central
Это не проблема. Мне интересно насколько сильно отличается платформа. Есть ли аналоги объектов, принципов построения или там совсем всё по другому
не стоит надеятся что они одинаковые и можно будет взять и стать класным разработчиком и на андройд и на ios одновременно
central
не от хорошей жизни кросплатформенные фраемворки пишут
Anonymous
Ребята, кто может помочь с запуском приложения? Не выводится на экран. Буду благодарен (в личку)
Anonymous
Что за ошибка, кто поможет?
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
очень плохо когда переходы между фрагментами написаны в фрагментах, а не в активити?
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
вообще это минус?
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
Поддерживать сложнее такой код
а ещё есть какие то глобальные минусы?
Сергей
А глюки типа "целевого фрагмента не существует, вот вам npe" возможны?
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
Поддерживать сложнее такой код
а если все транзакции фрагментов будут описаны в одном фрагменте, а не активити, это нормально? или лучше в активити
Сергей
В активити при сингл активити норм. Во фрагменте (если это не заглавный стартовый) выглядит странно-задача фрагмента показать его данные, нарушение приципа единственной ответственоости есои он еще и навигацией по всем занят
Viacheslav (old)
Google рекомендует single activity. И activity всегда будет и потом можно будет переходи по разному сделать особо не меня кода
Arsen
в 2019 странно держать логику навигации как в активити, так и во фрагменте, для этого есть навигаторы\роутеры(не СДК сущности) и вот это вот все.
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
или это не то?)
Mike
Это один из возможных вариантов.
Mike
Но вообще, не вижу ничего плохого в том, чтобы собирать граф навигации в активити, которая отвечает за всю фичу.
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
в общем кто как) у всех разные взгляды на это, ладно, понял) спасибо за ответы
Grisha
Добрый день, ребят помогите, я начинающий прогер, от слова прям совсем начинающий. У меня есть 2 активити и я хочу например в первом активити в потоке инкрементировать переменную, а во второй отображать ее изменение, что мне делать... Что посоветуете? Может ли intent передавать как-то динамически...
Mike
Добрый день, ребят помогите, я начинающий прогер, от слова прям совсем начинающий. У меня есть 2 активити и я хочу например в первом активити в потоке инкрементировать переменную, а во второй отображать ее изменение, что мне делать... Что посоветуете? Может ли intent передавать как-то динамически...
К сожалению, с ходу нельзя дать простой ответ, потому что задача поставлена неверно. Потому что нет никакой гарантии, что пока показана одна активити, другая тоже существует и выполняет работу. Правильное решение — перенести работу в bound service и прицепиться к нему из обеих активити.
Grisha
Спасибо огромное, почитаю. А если первая активити продолжает роботу пока видна вторая, есть еще варианты?
Сергей
Добрый день, ребят помогите, я начинающий прогер, от слова прям совсем начинающий. У меня есть 2 активити и я хочу например в первом активити в потоке инкрементировать переменную, а во второй отображать ее изменение, что мне делать... Что посоветуете? Может ли intent передавать как-то динамически...
1. Интерфейсы 2. Переменная с контекстом первой активити, и вызов через контекст сеттера или прямое изменение паблик переменной, но это дикий говнокод (первую активность могкт прибить и мы поимеем вылет). Или переменная в первой активности статик, и обращаться к ней через имя класса 3. MutableLiveData, передать на нее ссылку из певрвой и менять во второй 4. Отдельный от активностей класс где эта переменная хранится 5. Только это бред, потому что у нас только одна активность активна, а передавать данные из одной в другую надежнее через интент, интентфоррезалт
S
Можно ли как-то в AS уменьшить яркость/контрастность окна в целом. Не шрифта, а именно основных и дочерних окон. Чтоб глаза меньше уставали
Сергей
Ручкой контраста монитора?
Сергей
Поколдовать с цвнтовыми схемами там все настраивается. Сделать фон или шрифт более серым
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
добавил навигацию в приложение, но например что бы перейти из фрагмента в другой нужно так же определять id кнопки и по onClick описывать переход из фрагмента в другой? а в чем тогда смысл этой навигации? я не понимаю
Anonymous
𝙈𝙖𝙠𝙨𝙤𝙣𝙞𝙘 🇷🇺
😄😄😄
Co(n)stantine👨‍🔬
красиво
Mike
А что за визуализация, кстати? Хочу такую для произвольных графов объектов
Anonymous
А что за визуализация, кстати? Хочу такую для произвольных графов объектов
Это безязыковое программирование, Blueprint называется в движке Unreal Engine ( Способ для привлечения людей в Unreal, кто не умеет программировать )
Anonymous
Мобилки поддерживает?
поддерживать то поддерживает, только вот производительность хромает в мобилках