Nikita
Ну нахрен короче(
у тебя 2 слеша
Александр
/spam
Nikita
и работает ли эта команда вообще тут?
Александр
Работала раньше.
Vadim
Как правильно организовать принудительное обновление приложения?
Vadim
Сейчас покачто отправляем пуши, но это не очень работает. Хотим в будущих версиях исправить это
Vadim
какой то дополнительный эндпоинт на сервере и при запуске аппы проверять?
Александр
У нас так и сделано, на сплеше отправляем на сервер текущую версию апки, сервер как - то там стучится в GooglePlay и возвращает нам ответ, нужно ли нам обновлять апку или нет.
Vadim
Нашел такую фичу у гугла - in app updates api https://android-developers.googleblog.com/2018/11/unfolding-right-now-at-androiddevsummit.html
Dmytro
какой то дополнительный эндпоинт на сервере и при запуске аппы проверять?
Да, сверять версии и уведомлять, если принудительно, то не пускать дальше в приложение, если нет, то просто как уведомление
Vadim
Да, сверять версии и уведомлять, если принудительно, то не пускать дальше в приложение, если нет, то просто как уведомление
Это уже не вчерашний день, есть гугловский апи на это https://developer.android.com/guide/app-bundle/in-app-updates#kotlin
Elias
привет! подскажите, пожалуйста, почему при прошивке TWRP на андроид в Windows требуется указывать адрес на вкладке Write Memory (программа Flashtool), а в Linux консоли - нет? Если не по адресу обратился, просьба указать релевантный чат-канал.
Ruslan
подскажите лучшие практики по обработке ошибок. 1. Кто отвечает за проектирование обработки ошибок? Архитекторы, дизайнеры или разработчики? 2. С чего начинать проектирование? Приходит архитектор или разработчик к дизайнеру и рассказывает какие могут быть ошибки, а тот придумывает как мы на них реагируем? Или все на дизайне есть только благоприятный сценарий, а разработчик сам придумывает что ему делать с ошибками? Просто уже не раз попадал в ситуацию, когда приходится на ходу придумывать что делать. А потом синхронизировать с тем, что придумали iOS-разработчики 3. Хорошая практика делать обработку ошибок и оборачивание их в свои эксепшены для пробрасывания дальше по цепочке? Например сделать ErrorInterceptor для okhttp.
Rustam
Всем привет.
Rustam
while ($row = mysqli_fetch_assoc($result)) { $row['sp_avatar'] = "http://" . $_SERVER['SERVER_ADDR'] . "/" . $row['sp_avatar']; $array[] = $row; }
Rustam
Так я получаю картинку из сервера
Andreu
При чем тут php?
Rustam
Локально работает, из удаленного сервера не работает
Rustam
При чем тут php?
Получаю в андроид приложении
Andreu
Локально работает, из удаленного сервера не работает
Ну так чат все таки по андроиду) а тут вопрос по php
Andreu
Прогони оба случая в rest-клиенте
Rustam
Ну так чат все таки по андроиду) а тут вопрос по php
Я тебе еще раз повторю, получаю в андроид приложении, и вопрос походу к тем кто сталкивался с задачей
Andreu
Мда, с такой постановкой задачи удачи найти помощь
Yergali
Всем привет, в приложении есть appsflyer onelink, но при переходе и установке на некоторых девайсах не трекается что установка была через onelink, можете подсказать в чем проблема?
Nikita
народ, можно ли в анимации созданной с помощью constraint motion layout менять атрибуты TextView(textColor, maxLines, textSize)? пытался использовать PropertySet но он не поддерживает эти атрибуты(
Vadim
Кто-то работал с In app updates ? Как там выставляется версия, с которой нужно обновлять принудительно?
Starikov
https://ecosystem.atlassian.net/browse/ACJIRA-1269
Starikov
как отключить требование зависимости osgi.wiring.package; (osgi.wiring.package=android.util), которое возникает изза okhttp зависимости
Alexey
подскажите лучшие практики по обработке ошибок. 1. Кто отвечает за проектирование обработки ошибок? Архитекторы, дизайнеры или разработчики? 2. С чего начинать проектирование? Приходит архитектор или разработчик к дизайнеру и рассказывает какие могут быть ошибки, а тот придумывает как мы на них реагируем? Или все на дизайне есть только благоприятный сценарий, а разработчик сам придумывает что ему делать с ошибками? Просто уже не раз попадал в ситуацию, когда приходится на ходу придумывать что делать. А потом синхронизировать с тем, что придумали iOS-разработчики 3. Хорошая практика делать обработку ошибок и оборачивание их в свои эксепшены для пробрасывания дальше по цепочке? Например сделать ErrorInterceptor для okhttp.
Привет. Есть подход обрабатывать исключения делегатами. Можно создавать разные делегаты для разных случаем. Внутри обычный if..else или when. Реакцию на исключение можно передавать в лямбду например. errorHandler.handle(error, {message -> view.showError(message})
Alexey
а делегатов держать в презентере/вьюмодели?
Да, инжектить туда экземпляры
Ruslan
Да, инжектить туда экземпляры
понял, буду думать над этим, спасибо!
Сергей
Я передаю список с этим классом в другое активити
Передаете список с _экземпляром класса_ же?
Adel
ArrayList<MyClass>
Gregory
/spam
хз как она работает, но я забанил
Сергей
...если через интент в бандле в экстрах - то получатель получит копию . Если надо что бы список был общедоступен - можно сделать его статиком в отд.синглтоне
Сергей
Или не статиком
Mike
хз как она работает, но я забанил
отвечай !спам на сообщение, тогда улетает в бан во многих группах сразу + сохраняется в логи
Aleksey
ого, это ещё и проектируют, а я просто делал интерфейс с двумя колбэками, onSuccess и onError
Горит, что onSuccess и onError Если бы был onFailure, то хотя бы длина была бы одинаковой
Mike
Горит, что onSuccess и onError Если бы был onFailure, то хотя бы длина была бы одинаковой
это прям так же важно, как и есть ли в ЯП точки с запятой в конце строки
Gregory
это прям так же важно, как и есть ли в ЯП точки с запятой в конце строки
вот это как раз важно, без ; строки выглядят незаконченными
Mike
о, ну всё, можно начинать срач (нет)
Ruslan
ого, это ещё и проектируют, а я просто делал интерфейс с двумя колбэками, onSuccess и onError
приложения проектируют. но зачастую только благополучный сценарий. в мире, где всегда хороший интернет и хорошо докумеентированный бэкенд. вот думал, есть какие-то практики по проектированию неблагополучных сценариев
Сергей
подскажите лучшие практики по обработке ошибок. 1. Кто отвечает за проектирование обработки ошибок? Архитекторы, дизайнеры или разработчики? 2. С чего начинать проектирование? Приходит архитектор или разработчик к дизайнеру и рассказывает какие могут быть ошибки, а тот придумывает как мы на них реагируем? Или все на дизайне есть только благоприятный сценарий, а разработчик сам придумывает что ему делать с ошибками? Просто уже не раз попадал в ситуацию, когда приходится на ходу придумывать что делать. А потом синхронизировать с тем, что придумали iOS-разработчики 3. Хорошая практика делать обработку ошибок и оборачивание их в свои эксепшены для пробрасывания дальше по цепочке? Например сделать ErrorInterceptor для okhttp.
Говорят что в яндексе за необр.исключение увольняют нах. (2) на этой стадии списка ошибок может не быть. Но когда при написании реализации он появится окончательно - неплохо бы вернуться и обсудить. (3) если метод пробрасывает свои ошибки выше - то для нескольких разных но схожих методов можно сделать общий обработчик. К примеру у нас есть общий метод шифровать/дешифровать из него несколько для шифрования с разными параметрами - эксепшн "шифрование не подерживается" обрабатываем в одном месте
Сергей
А "пароль неверный" - только в дешифровке
Mike
не может быть
люди, кажется, реально думают, что нет
Сергій
люди, кажется, реально думают, что нет
а что реально есть такие команды в которых увольняют за ошибку?
Сергій
никогда о таком не слышал
ты же в яндексе работаешь?
Дмитрий
За систематическое грубое нарушение возможно.
Gregory
приложения проектируют. но зачастую только благополучный сценарий. в мире, где всегда хороший интернет и хорошо докумеентированный бэкенд. вот думал, есть какие-то практики по проектированию неблагополучных сценариев
Ну тут уж хз, у меня в ВК это было достаточно просто сделано. С тех пор, конечно, это всё наверняка переписали на говнокод котлин, ну да ладно. Есть, по сути, 2 вида запросов в апи: которые загружают данные для отображения на экране и которые совершают какие-то действия, опционально с блокирующим прогрессом. Первые показывают ошибку вместо содержимого экрана с кнопкой "повторить попытку", или, если это была подгрузка, плашку внизу списка. Вторые показывают toast. Для первых у меня был готовый фрагмент, где надо реализовать несколько методов и адаптер. Дальше всё само — подгрузка при прокрутке, обработка ошибок, pull to refresh, вот это всё. У вторых это было встроено в саму систему взаимодействия с апи. Честно, не могу даже начать представлять, что тут надо "проектировать". Для некоторых ошибок у меня были локализуемые описания, для всех сетевых отдельное ("при загрузке данных произошла ошибка"), для остальных — просто "ошибка". Были ещё локализованные сервером ошибки, в этом случае надо просто показать строку, которая пришла с сервера.
Alexey 🇪🇸
ого, это ещё и проектируют, а я просто делал интерфейс с двумя колбэками, onSuccess и onError
а если надо дернуть несколько методов чтобы получить все нужные данные. Будешь в onSuccess каждого дергать следующий и так получится лапша из колбэков?
Ruslan
Ну тут уж хз, у меня в ВК это было достаточно просто сделано. С тех пор, конечно, это всё наверняка переписали на говнокод котлин, ну да ладно. Есть, по сути, 2 вида запросов в апи: которые загружают данные для отображения на экране и которые совершают какие-то действия, опционально с блокирующим прогрессом. Первые показывают ошибку вместо содержимого экрана с кнопкой "повторить попытку", или, если это была подгрузка, плашку внизу списка. Вторые показывают toast. Для первых у меня был готовый фрагмент, где надо реализовать несколько методов и адаптер. Дальше всё само — подгрузка при прокрутке, обработка ошибок, pull to refresh, вот это всё. У вторых это было встроено в саму систему взаимодействия с апи. Честно, не могу даже начать представлять, что тут надо "проектировать". Для некоторых ошибок у меня были локализуемые описания, для всех сетевых отдельное ("при загрузке данных произошла ошибка"), для остальных — просто "ошибка". Были ещё локализованные сервером ошибки, в этом случае надо просто показать строку, которая пришла с сервера.
да вот это вот все и проектировать. оно же в каждом приложении выглядит по-разному. спасибо за полезные мысли. теперь есть откуда начинать)
Mike
а представь что нет такой штуки)
а представь что нет джавы и писать надо на ассемблере
Gregory
а представь что нет такой штуки)
Можно вложить колбэки друг в друга, можно запустить поток и выполнять запросы синхронно и последовательно
Alexey 🇪🇸
Mike
не, слишком грустно не могу я так
а можно просто перестать оправдывать хуёвый сервер-сайд
Alexey 🇪🇸
Можно вложить колбэки друг в друга, можно запустить поток и выполнять запросы синхронно и последовательно
вложить колбэки друг в друга вот это и есть самое гавнище, которое превращается в лапшакод. Вот синхронно вариант в принципе...
Mike
што
j.u.c.Future
Gregory
не, ну серьёзно, в телеграме, например, стараются делать апи так, как клиенты его будут использовать
Gregory
то есть почти нет такого, чтобы надо было последовательно сделать несколько запросов, зависящих друг от друга
Alexey 🇪🇸
j.u.c.Future
блэд, обфускатор!
Gregory
j.u.c.Future
я видел этот класс, но так и не понял, как им предполагается нормально пользоваться