Vladimir
Надо было ставить линукс
Konstantin
Если в нём контейнер, то нету ефекта увеличения тулбара
https://stackoverflow.com/questions/35358174/viewpager-is-being-pushed-out-of-the-screen-coordinatorlayout-design-library маржин ресайклера снизу = высота раздвинутого тулбара. тогда, по идее, ресайклер будет пересчитывать высоту
Anna
немного оффтопчик: интерсно, среди нас есть те, кто предпочитает ручной парсинг, а не gson или другую либу (нашли что-то получше gsona?). если есть, то почему?
Konstantin
забивать гвозди кирпичами, кто то пробовал? если кто то нашел что либо лучше молотка, поделитесь опытом
Konstantin
)))
Дмитрий
А чем он мотивирует свой поступок ?
Konstantin
на вкус и цвет все фломастеры разные, но я всеравно возьму красный
Anna
А чем он мотивирует свой поступок ?
только хард кор, только хард код :)
Volodymyr
мой коллега за ручной парсинг...
Что значит ручной парсинг? юзая gson тебе итак часто нужно вручную писать JsonDeserializer где ты теми же ручками парсишь
Vladimir
Нарооод!!! Кто-нить может объяснить мне, почему при одинаковых параметрах дисплея, если верить ГуглПлею, на разных устройствах получаются разные экраны?
Anna
неа. это внутри модельки. а снаружи так userProfile = new UserProfile(je.getAsJsonObject("user"), je.getAsJsonObject("visibility"));
Vladimir
Физические размеры дисплея разные? )
А хрен его знает, ГуглПлей не сообщает о них
Konstantin
неа. это внутри модельки. а снаружи так userProfile = new UserProfile(je.getAsJsonObject("user"), je.getAsJsonObject("visibility"));
кмк задача программирования - переложить работу на железку, на процессор и память
Anna
А чем gson не подошёл?
религия не позволяет :)
Konstantin
если твой коллега делает руками парсинг то имхо он неверно понимает программирование
Дмитрий
А хрен его знает, ГуглПлей не сообщает о них
+ у S7 по моему скругленый экран, там тоже какая то особеность была
Anna
JsonElement
Dug
optString и прочите opt для кого?)
Anna
gson. пол проекта на гсоне. просто дальше в модельку закидывается вручную
Jamal
как сделать свою клавиатуру ?
Dug
gson. пол проекта на гсоне. просто дальше в модельку закидывается вручную
Подключать гсон, но не юзать его по назначению 🤔
Jamal
если кто нибудь сталкивался помогите
Jamal
плиз
Anna
Подключать гсон, но не юзать его по назначению 🤔
сейчас переделываю на гсон. просто ищу уверенность и аргументы при предстоящей беседе...
Дмитрий
если кто нибудь сталкивался помогите
https://www.google.ru/search?client=opera&q=create+custom+android+keyboard&sourceid=opera&ie=UTF-8&oe=UTF-8
Vladimir
посмотри по моделе
Блин! Данные от автотестировщика на ГуглПлее не совпадают с теми, что по модели находятся в инете. Вот какие правильные? А из системы размер диагонали как-то можно добыть программно?
Vladimir
🤷‍♂️
😕😕😕😕😕😕😕
Сергій
Huawei Mate 9 6 дюймовая лопата
Сергій
S7 Edge меньше, 5.5 дюйма
Vladimir
Huawei Mate 9 6 дюймовая лопата
Есть вот такой ресурс, но тоже очень сомнительно: https://material.io/tools/devices/
Сергій
разрешение экрана вроде можно изменять на самсунгах(флагманах)
Alexander
немного оффтопчик: интерсно, среди нас есть те, кто предпочитает ручной парсинг, а не gson или другую либу (нашли что-то получше gsona?). если есть, то почему?
Мы в некоторых проектах парсим "вручную", почему: 1) не надо подключать отдельные либы. 2) В некоторых случаях gson срабатывает медленнее. В некоторых - jackson медленнее. Ручное срабатывает быстрее почти всегда, но так, как вы привели на скриншоте, я бы не писал, миллион трайкечей это тоже плохо. 3) может быть довольно специфичное API, с которым проще написать свою обвязку. В целом, в большинстве случаев использовать GSON проще, но не во всех, надо смотреть особенности проекта
Konstantin
который предпочитает гсон )))
Sergey
немного оффтопчик: интерсно, среди нас есть те, кто предпочитает ручной парсинг, а не gson или другую либу (нашли что-то получше gsona?). если есть, то почему?
Тоже задался этим вопросом Нам достался проект, в котором тоже всё вручную парсится. Получаем объект от сервера в JSON виде. В приложении объекты сохраняются в Realm. Есть метод, вытаскивающий из Realm объект по id. Далее сравниваются каждое поле объекта и соответствующее поле JSON. Если поле есть в JSON, то оно в объекте обновляется. Например, json.type = 1 следовательно object.type = 1 Но если json.type = null, то что делать с объектом. Обнулять или оставить неизменным? Если делать автоматом через Gson поле будет null, а нужно, чтоб оно просто не изменилось. Ручной парсинг предотвращает обнуление поля, потому что в json просто это поле не придет, и проверка json.has("type") не пройдет Хотя хз, наверное просто нужно научиться правильно использовать Gson, чтобы null поля в одном случае игнорировались, а в другом реально обнуляли значение в объекте Realm. Но переделывать весь проект очень долго
Дмитрий
Тоже задался этим вопросом Нам достался проект, в котором тоже всё вручную парсится. Получаем объект от сервера в JSON виде. В приложении объекты сохраняются в Realm. Есть метод, вытаскивающий из Realm объект по id. Далее сравниваются каждое поле объекта и соответствующее поле JSON. Если поле есть в JSON, то оно в объекте обновляется. Например, json.type = 1 следовательно object.type = 1 Но если json.type = null, то что делать с объектом. Обнулять или оставить неизменным? Если делать автоматом через Gson поле будет null, а нужно, чтоб оно просто не изменилось. Ручной парсинг предотвращает обнуление поля, потому что в json просто это поле не придет, и проверка json.has("type") не пройдет Хотя хз, наверное просто нужно научиться правильно использовать Gson, чтобы null поля в одном случае игнорировались, а в другом реально обнуляли значение в объекте Realm. Но переделывать весь проект очень долго
json.type ?.let{it -> object.type = it} не?
Sergey
ну типа, но это ручной парсинг все равно будет
Konstantin
вот бы в 2к18 бизнес логика зависела от json
Дмитрий
ну типа, но это ручной парсинг все равно будет
Я бы сказал что это вопрос мапинга оъектов а не парсинга
Konstantin
json -> object -> анализ -> решение
Konstantin
а у вас получается json -> решение. неудивительно )
Sergey
Я бы сказал что это вопрос мапинга оъектов а не парсинга
возможно, это я и имею в виду. Ну люди просто не стали заморачиваться с маппингом и делали всё вручную. Есть поле в json, на те обновление объекта, нет поля - нет обновления. Есть поле равное null, обнуляем поле в объекте
Double Cat.
Ребят, а может кто-то внятно сказать когда apply, let, run использовать?)
Konstantin
Ребят, а может кто-то внятно сказать когда apply, let, run использовать?)
apply когда нужно что то применить над объектом и вернуть сам объект. удобно для findviewbyid(R.id).apply{ this.setonclicklistener } run для void-коллбеков, когда нужно просто выполнить блок кода без возврата значения. let для оборачивания в it объекта, когда внутри его куда то передаешь, например this.mView?.let { presenter.onViewAttached(it) }
Kotor
Ребят, а может кто-то внятно сказать когда apply, let, run использовать?)
https://medium.com/@elye.project/mastering-kotlin-standard-functions-run-with-let-also-and-apply-9cd334b0ef84
Konstantin
еще удобно с apply в цепочку вызовов встраивать условия. if(expr) obj.a().b().c() else obj.a().d().c() obj.a().apply{ if (expr) b() else d() }.c()
Kirill
что за тема?
Kirill
Нарооод!!! Кто-нить может объяснить мне, почему при одинаковых параметрах дисплея, если верить ГуглПлею, на разных устройствах получаются разные экраны?
Сергій
похоже на Google Testlab
Dmitriy
У самсунга их нет
Dmitriy
Ну и на вид с версткой вроде что то не то, там индикаторы уехали
Kirill
Часто говорят что на одних устройствах различные фичи работают норм на других плохо Где чаще всего косяки вылазят? На чем потестировать приложуху стоит?
Kirill
пасиб
Dmitriy
Лучше тестировать на том, что популярнее в вашей категории. А то править баги различных китайцев можно бесконечно, но какой смысл если их несколько пользователей, а так да, самсунги
Kirill
Firebase test lab кто-то использует?
Dmitriy
Они везде
Kirill
как впечатления
Kirill
сейчас китайцы оч популярны(
Dmitriy
Ну я больше про ноунеймы писал
Anna
Тоже задался этим вопросом Нам достался проект, в котором тоже всё вручную парсится. Получаем объект от сервера в JSON виде. В приложении объекты сохраняются в Realm. Есть метод, вытаскивающий из Realm объект по id. Далее сравниваются каждое поле объекта и соответствующее поле JSON. Если поле есть в JSON, то оно в объекте обновляется. Например, json.type = 1 следовательно object.type = 1 Но если json.type = null, то что делать с объектом. Обнулять или оставить неизменным? Если делать автоматом через Gson поле будет null, а нужно, чтоб оно просто не изменилось. Ручной парсинг предотвращает обнуление поля, потому что в json просто это поле не придет, и проверка json.has("type") не пройдет Хотя хз, наверное просто нужно научиться правильно использовать Gson, чтобы null поля в одном случае игнорировались, а в другом реально обнуляли значение в объекте Realm. Но переделывать весь проект очень долго
интересно. спасибо
Artem
Стесняюсь спросить зачем?
А почему нет? Весьма универсальное решение
Fearless
если нужно скроллить хедер и список, то это практически единственное нормальное решение