Андрей
потому что наговнокодишь и без даггера херни которая повалит приложение
Андрей
и все равно будет ручное протыкивание/тесты на CI
Mykyta
конечно будет
Mykyta
а еще тоже самое можно сказать про динамическую типизацию
Mike
а еще тоже самое можно сказать про динамическую типизацию
ну да, рантаймовый DI — это динамикодрисня
Mykyta
https://www.youtube.com/watch?v=ZnIv79j_iuY
разве не пиарит? даггер-андроид же и так на этом
Mykyta
просто в названии "апи, которое не рекламирует гугл"
Никита
короче, профайлер лучше, чем кофейная гуща
Типа кинуть дамп аллокации памяти? Я прост за год разработки, ни разу а профайлер не заходил
Mike
Типа кинуть дамп аллокации памяти? Я прост за год разработки, ни разу а профайлер не заходил
Да при чём тут память? В логах написано же: приложение делает слишком много работы.
--------
https://www.youtube.com/watch?v=ZnIv79j_iuY
спасибо за крутой доклад
lilmir
ребят, что вы юзаете для показа лайв потока видео с rtsp юрла?
Никита
Да при чём тут память? В логах написано же: приложение делает слишком много работы.
Так каким инструментом я могу чекнуть, что грузит main поток?
Mike
nanoscope топчик)
Влад
Так все же как мне сравнить timestamp и дату в формате iso 8601? Не нашел рабочего способа кроме как парсить строку
S
мне нужно провеирть прошло ли 24 часа с полученной даты. такой способ: val createdAt: Callendar = car.createdAt createdAt.add(Calendar.DAY_OF_MONTH, 1) val now = Calendar.getInstance(TimeZone.getTimeZone("GMT")) if (createdAt.before(now)) {...} верный?
S
не очень, createdAt тоже приравняй к GMT
он и так возвращает GMT. Мне больше хочется узнать про метод add у Callendar. Он ведь перематает мне дату на одни сутки вперёд верно?
Вячеслав
День добрый, вопрос про navigation component. У меня есть экран с BottomNavigationMenu, на этом экране я делаю bnm.setupWitNavController и устанавливается bottom_navigation для моего меню. В графе bottom_navigation есть два фрагмента - CalendarFragment и ProfileFragment. И с фрагмента ProfileFragment я хочу сделать переход на другой фрагмент, который лежит в main_navigation. Как можно осуществить такую штуку? Не исключаю, что это неправильный подход, но у меня кейс такой, что только на главном экране видно BottomNavigation, на других - нет.
lilmir
через интерфейс вызываешь у активити bnm.visibility = view.invisible
lilmir
если я правильно понял тебя
Artur
Коллеги, никто не работал с Huawei Mobile Services? Пуши, покупки? У них семпл 20 века с комментами на китайском)
Вячеслав
через интерфейс вызываешь у активити bnm.visibility = view.invisible
что-то мне это не нравится, вызывать метод везде, чтобы скрывать меню
lilmir
Всм, ты скрыл bnm у он не появится пока ты не вызовешь обратно в нужный момент
Вячеслав
потом, юзер жмакает "назад", и надо проверять показывать здесь или нет bnm
Никита
CPU-профайлером
получается Хореографер долго грузит UI поток, т.е. получается у меня верстка перегружена? или это может быть в чем-то еще проблема?
Ruslan
потом, юзер жмакает "назад", и надо проверять показывать здесь или нет bnm
можно навКонтроллеру добавить onDestinationChangedListener в котором проверять текущее положение и решать показывать или нет bnv
Mike
получается Хореографер долго грузит UI поток, т.е. получается у меня верстка перегружена? или это может быть в чем-то еще проблема?
«хореографер долго грузит UI-поток» — это какой-то набор слов. Здесь видно, что measure в ресайклере тяжёлый
Ruslan
неужели нельзя без проверок этих обойтись?
а чем эти проверки плохи? 3-4 строки же
Никита
«хореографер долго грузит UI-поток» — это какой-то набор слов. Здесь видно, что measure в ресайклере тяжёлый
хм...странно, у меня там только один уровень вложенности и сделан на ConstraintLayout, внутри около 30 вьюшек по типу TextView, ImageView (для иконок)
Никита
а, ну вот констреинт и тормозит, ничего странного
ипааааать. Так вроде проблемы с производительностью уже фиксанули?
Mike
Leonid
Всем привет, подскажите пожалуйста. сделал двойную навигацию navgationdrawer и viewPager. Навигация по одним и тем же фрагментам, не могу соединить. Нужно сделать так чтобы при выборе пункта меню переходило на соответствующий таб и выводился нужный фрагмент и тоже самое с viewPager. щас при пролистывании табов меняются фрагменты и получается что фрагмент измененный в viewPager накладывается на фрагмент выбранный в navgationdrawer
Никита
это бесконечная тема, они есть у всех и везде)
но люди ведь после этого не идут все верстать на framelayout ?
Mike
но люди ведь после этого не идут все верстать на framelayout ?
нет, поэтому принято говорить, что андроид тормозит
Kirill
всем привет, подскажите есть бд на ROOM для месседжера, из некого класса MessageItem. вот так я получаю диалог @Query("SELECT * FROM chatRooms") List<MessageItem> getAll(); можно как-то сюда добавить поле id диалога? или правильнее делать бд для диалога вот так: @Entity(tableName = "chatRooms") public class ListMessageItem{ @PrimaryKey() public Integer id; @TypeConverters(MessageItemConvertor.class) private List<MessageItem> messages; }
Сергій
ипааааать. Так вроде проблемы с производительностью уже фиксанули?
Там нечего фиксить, он так и будет работать. Там достаточно сложные алгоритмы рассчёта позиции вью. Здесь недавно кидали статью о том что к него под капотом
Сергій
У констреинта есть атрибут optimization level или как-то так, он может спростить некоторые этапы measure, но у него есть своя цена тоже
Kirill
если в кажом Сообщение хранить id диалога, это глупо... а если делать поле id и поле list<Сообщение> то list<Сообщение> надо парсить, а это вроде тоже не хорошо.. чет не знаю как быть и путного не могу найти в инете
Mike
полно, как и у всех, как и везде. Могу ещё повторить)
Kirill
хранить ид диалога в сообщении — здраво и логично
получается что в сообщении появится поле ид диалога и придется добавлять собственный ид @PrimaryKey(autoGenerate = true), чтобы ид чообщений не пересеклись?
Kirill
у любой нормальной сущности есть первичные ключи, чо тут такого
ну если бы как-то можено было бы припилить id к list<Сообщения> то тогда было бы достоточно индентифицировать сообщение в бд по id сообщения, а не создавать новый id
Mike
ничего не понял, но очень интересно
Denis
сами по себе сообщения не живут
Kirill
но погоди, я получается сообщения со всех диалогов, буду хранить в одном бд.. это же по моему не хорошо
neikist
Кстати, SQLite индексы по внешним ключам строит? Не помню что то, по идее должен
Kirill
спасибо за помощь)
Kirill
а ты под каждый диалог хочешь создавать новую бд?)
таблицу* немного не так выразился)
Никита
нет, поэтому принято говорить, что андроид тормозит
а если попробовать внутри кострэинта разделить все еще на маленькие контейнеры? т.е. если у меня сейчас просто 30 элементов, то сделать 3 контейнера и в них запихать по 10 элементов, будет ли увеличена скорость отрисовки у констрэинта?
Сергій
http://wiresareobsolete.com/2016/07/constraintlayout-part-2/
Сергій
Вот сколько там "дерьма" внутри
Сергій
Кому интересно, гуглите алгоритм Cassowary
Сергій
Этот алгоритм тоже вроде бы использован в Autolayout на iOS. И там тоже с ним есть некоторые "шороховатости"
Mike
Переписали? 😁
поправили экспоненциальную сложность на константную 🌚
Viacheslav
добрый день. подскажите где можно посмотреть реализацию таблицы(см.скрин) с возможностью заполнения из json
Viacheslav
Что именно посмотреть?
как реализовать подобный грид
padmitriy
а подскажите, почему notification изначально создается, но потом не меняется, когда я делаю NotificationManager.notify с тем же ID и нотифаем, но другим текстом