Mike
это непростой путь, но без него здесь вообще нечего делать
Vitaly
кажется, тебе нужно ознакомиться с основами программирования
Если критикуешь - предлагай, раз уж показываешь себя крутым)) Покажи на деле и я поверю, что ты что-то знаешь
Ilya
Ахаха
Vitaly
Бесят такие люди иногда
Mike
Бесят такие люди иногда
бесит, когда спрашивают, что лучше, кэш или БД
Mike
сравни ещё класс и переменную. Что лучше?
Ilya
Что лучше, смартфон или айфон?
Vitaly
Я спрашиваю про конкретную ситуацию, а не в целом
Ilya
Ilya
Хранение в локальной переменной так то тоже кэш
Gleb
что лучше, использовать какой-нибудь паттерн проектирования или mvp
Nikita
А я люблю enum'ы. извините...
Anonymous
Использовать интерпритируемый язык или питон.
Anonymous
Лол кек это смешно))0
Никита 🙃
Nikita
А чем они плохи?)
они кушают много
Alexander
прогард оптимайзит простые енамчики иногда)
Alexander
https://www.guardsquare.com/en/products/proguard/manual/usage/optimizations Simplifies enum types to integer constants, whenever possible.
Alexander
мне нравится whenever possible приписка
Никита 🙃
О, спасибо
Mike
блядский цирк
Nikita
:D мне тож понравилось
Mike
мне нравится whenever possible приписка
да потому что это не тупая пачка констант, у них могут быть собственные методы и реализации интерфейсов, отдельные констунты могут быть анонимными классами и т. п.
Nikita
да потому что это не тупая пачка констант, у них могут быть собственные методы и реализации интерфейсов, отдельные констунты могут быть анонимными классами и т. п.
я сперва радостный пошел переписал на StringDef, а когда попытался узнать как мне метод перегрузить на каждый элемент дефа так и присел на жёппку
Nikita
Сравнение строк медленнее, чем сравнение enum-констант
ну там же не про скорость, там про память
Ilya
Ну ок, будут они немного больше памяти есть. Это проблема прям такая? Кто то реально ловил oom от enum?
Ilya
2к18 на дворе, ну ((
Nikita
Да это так... ради науки...
Mike
4kb :D
Проверял? Полагаю, что в сборке после прогарда с энамами лучше
Nikita
Проверял? Полагаю, что в сборке после прогарда с энамами лучше
нет, поверил гуглу, 2 енама по 2000b. Прогард не настроен, это так, тестовый минипроект для вивисекции
Artur
Привет, такой вопрос можно ли юзать LiveData в RecyclerView холдерах? Ситуация такая что лайв дата отдаёт мне модель, а в ней список айди, которые надо получить отдельным запросом. Какие есть варианты?
Artur
подписать ресайклер на обновление датасета?
именно из вне? Т.е. некая лайвдата которая грузит этот список постов, у каждого поста есть список айди по которым надо получить другие данные и всё это в одной лайв дате?
Artur
не, тут наверное чуть другая ситуация
Artur
список постов мы получим легко, но как быть с тем что у каждого поста есть список айди, по которым надо сделать доп. запросы
Artur
это типо как rxJava, по цепочку мы получаем posts, потом возмём каждый из них, смотрим в поле где наш список айди и делаем доп запросы, потом в конце делаем toList()
Nikita
хз, выглядит подозрительно, я бы сначала все данные подготавливал а потом лил в адаптер... не факт что так правильно
Artur
ну вот это, RxJava это решает просто достаточно, как быть c LiveData
Artur
были мысли просто может делать запросы прямо из вьюхолдера, но это надо создавать вьюмодель и подписываться на лайфсайкл
Carnage
Вариант: Если загружаемые данные надо отобразить сразу - делаем слой для загрузчика, если нет то можем загрузчик тоже подписать на LiveData и грузить нужное параллельно. LiveData дружит с RxJava
Artur
извеняюсь, а что за загрузчик?
Carnage
В контексте MVVM можно предложить создать Repository. Допустим обращаемся к нему, а он вернет LiveData из того же Retrofit. Например
Carnage
В вашем случае данные должны прилетать в класс, который будет отдавать эти данные через методы get/set ресайклеру, а при доступе к конкретной ячейке массива делать запрос для получения доп данных
Carnage
Далее мы можем вернуть LiveData из этих догруженных данных когда адаптер их попросит
Carnage
Можно в лс
Artur
ну получается ViewHolder будет делать observeOn(...) на LiveData которая лежит во вьюмодель
Artur
правильно я понял?
Artur
в observeOn нам вернёт эти доп данные
Carnage
Да
Carnage
Но не берите ViewModel из холдера
Artur
а из чего?
Carnage
Лучше передать из класса который за viewmodel отвечает. Например в момент когда делаете bind
Artur
мне придётся хэндлить лайфсайкл
Carnage
Просто лучше доступ во viewmodel не размазывать по разным классам
Carnage
Либо можете описать интерфейс для ViewModel и реализовать его там
Carnage
Надо смотреть конкретный код. Обсуждение предлагаю в лс. Зря сорить в группе не стоит
Artur
ок, давайте
Gerc
Какие же костыли. Что будет при быстрой прокрутке? 💯 тысяч запросов? А с позицией скролла?
Nikita
Какие же костыли. Что будет при быстрой прокрутке? 💯 тысяч запросов? А с позицией скролла?
поэтому я и думал что правильно делать датасет во время прокрути иммутабельным
Ivansuper
Есть кто-то, кто работал с GLES довольно плотно?
Ivansuper
Если да, напишите. Потом в ЛС вопрос задам
Maksim
А приложение должно как-то быть готово к установке на внешнюю карту памяти? Или тут всё зависит только от устройства?
Eugene
А приложение должно как-то быть готово к установке на внешнюю карту памяти? Или тут всё зависит только от устройства?
возможно, что нужно проверить сохранение данных на карту памяти(внутреннюю или внешнюю), если, конечно, приложение записывает данные на карту памяти?
Maksim
Ну данные хранятся в sqlite стандартным образом
Eugene
Ну данные хранятся в sqlite стандартным образом
я имею в виду, что может, быть приложение записывает файлы\каталоги на карту памяти, тогда, возможно, что надо проверять, есть ли карта памяти в телефоне
Maksim
нет, ничего такого
Maksim
мне отзыв прилетел что не ставится на карту памяти вот пытаюсь понять, может ли это зависеть от меня