⬤ vitaly
⬤ vitaly
Всем привет, знающие леди и джентльмены. Подскажите по некоторым общим вопросам. Есть задача наш сервис (аутентификация пользователя / подтверждение его действия) поставлять для сторонних разработчиков (нацелено на организации типа банков).
Первый основной флоу - регистрация пользователя в системе. Регистрация включает в себя генерацию пары ключей, шифрование данных, несколько хттпс реквестов, парсинг пушей с фаербейса, сохранение данных пользовательской учётки (типа юзернейм и юзерсид для секьюрческих целей) в бд.
Вопросы у меня такие:
1. Насколько критично выпиливать зависимости от ырыкса и уретрофита по шкале от 1 до 100, учитывая, что первое сильно замедлит перенос существующего функционала в отдельный модуль, который по задумке должен быть общим для нас и для разрабов у клиента, а времени и знаний альтернатив не очень много?
⬤ vitaly
2. Нормально ли тянуть туда рум и вообще зашивать ответственность за сохранение данных для регистрации в библиотеку, или есть какие-то принципиальные вещи, по которым этого лучше не делать?
⬤ vitaly
3. Как лучше настроить проброс пушей внутрь либы? Есть ли какие-то проработанные практики, или тупо в онресиве и методе получения токена просить проставлять какие-то перехватчики?
⬤ vitaly
4. Какие ещё могут быть подводные камни?
Mike
Всем привет, знающие леди и джентльмены. Подскажите по некоторым общим вопросам. Есть задача наш сервис (аутентификация пользователя / подтверждение его действия) поставлять для сторонних разработчиков (нацелено на организации типа банков).
Первый основной флоу - регистрация пользователя в системе. Регистрация включает в себя генерацию пары ключей, шифрование данных, несколько хттпс реквестов, парсинг пушей с фаербейса, сохранение данных пользовательской учётки (типа юзернейм и юзерсид для секьюрческих целей) в бд.
Вопросы у меня такие:
1. Насколько критично выпиливать зависимости от ырыкса и уретрофита по шкале от 1 до 100, учитывая, что первое сильно замедлит перенос существующего функционала в отдельный модуль, который по задумке должен быть общим для нас и для разрабов у клиента, а времени и знаний альтернатив не очень много?
Что мешает перенести в модуль вместе с ырыксом и ретрофитом? А потом, когда фичи сделаны, играться с выпиливанием.
Mike
Arsen
@Harmonizr по поводу абзаца про нул и рх: суть в том, что эта "фп парадигма" (еще называют Railway oriented programming) подразумевает, что в success ветке всегда будут корректные значения, иначе флоу уходит в fail. т.е. нулл маппится в дефолт значение или emptyList или бросается какая-нибудь ошибка типа MyNotFoundError. Ветвление на success\fail происходит на ранней стадии (у источника данных), а делать проверки на нул в колбеке success - это уже поздно, двойная проверка получается.
Mike
Mike
Arsen
⬤ vitaly
Mike
...а настоящие value-типы будут нескоро, тем более в андроиде
Arsen
Arsen
котлин выручает
Mike
Arsen
даже в гугле стали переобуваться и теперь линт просит использовать requireЧто-то() методы, вместо прямых обращений к налабл полям
Arsen
да , сильно экономит на путешествиях по стеку, так ошибка сразу вылетит, а не когда-то потом в виде бомбы замедленного действия
Mike
Mike
Mike
Например, Glide регулярно ломает бинарную совместимость, поэтому в библиотеках его использовать нельзя.
⬤ vitaly
Стас 🍕🍕🍕
опаздываю но разве в ырыксе observeOn не рассчитан как раз на многократное применение?
Стас 🍕🍕🍕
а subscribeOn только на первый раз.
Mike
Ivan
Arsen
@Harmonizr к недостаткам мокси я бы еще упомянул хранение состояния в виде "истории дифов", в противовес снепшотам( как в MVI/Redux архитектурах, еще по такому же принципу устроен Git)
Стас 🍕🍕🍕
всё так и есть
типа, тыкаешь обзервон и все что ниже в цепочке - там и выполняется
Ivan
Стас 🍕🍕🍕
Я помню что как раз так и делала в какой-то ппц сложной цепочке
Mike
Arsen
ну даже если опустить все эти заморочки с памятью, то на сцену выходит куча стратегий, которые еще нужно уметь готовить, иначе можно получить совсем не то, что ожидалось. В целом, человеку проще оперировать снепшотами, нежели последовательностью операций. Взять то же тестирование.
Mike
ну даже если опустить все эти заморочки с памятью, то на сцену выходит куча стратегий, которые еще нужно уметь готовить, иначе можно получить совсем не то, что ожидалось. В целом, человеку проще оперировать снепшотами, нежели последовательностью операций. Взять то же тестирование.
Ну, у @terrakok, например, есть аргумент, что Moxy под капотом превращает (простой для понимания) MVP в (сложный) MVVM, то есть готовить мокси по идее проще, чем то, что мокси делает за тебя.
Mike
Ну и да, если сделать снэпшоты, получится TEA/MVI :)
Arsen
можно почитать историю конкуренций систем контроля версий, и почему гит в итоге всех натянул)
Arsen
экраны конечно зачастую простые, и оба подхода работают хорошо, а проблемы появляются уже в ейдж кейсах
Mike
Denis
Denis
когда по дефолту все сохраняется
Denis
любой диф
Denis
но справедливости ради
Denis
там есть и нормальные стратегии
Anonymous
подскажите пожалуйста, в чем отличие между подписками и покупками в inapp в плане реализации? покупки делать умею, а как подписки сделать?
Andrey
Ребят, такой вопрос, не подскажете в какую сторону копать?
Нужно горизонтальный прогрес бар трансформировать в круглый?
Vitaly
Для оплаты покупок в InApp Billing нужен License Key
Подскажите, где его лучше хранить?
Vitaly
Насколько это секретная информация? Можно ли хранить прямо в коде?
Vitaly
Vitaly
Vitaly
Vitaly
Anonymous
Anonymous
Andrei
Подскажите как правильно пожалуйста , стоит ли во ViewModel передавать ссылку на CruidRepo что бы через него инициализировать его и записывать в базу данные изменённой модели ?
Alexander
Привет ,
после загрузки изображения нужно сместить фокус , изображение растягивает layout , получается что фото на layout добавляется после смещение фокуса ,нужно наоборот
Picasso.with(context).load(it).resize(182,192).into(imageview_request_addPhotoAgreement)
invisibleView.requestFocus(FOCUS_DOWN)
подскажите)
Mike
Turalllb
Не знаете, а как в FlexboxLayout, когда элементы расположены сеткой, понять, что справа в первой строке больше нет вьюх?
Turalllb
Кирилл
Кто-нибудь пробовал делать вращение вокруг своей оси для вектора через objectAnimator в xml?
Сергій
Всем привет =)
В андроид разработке не разбираюсь.
Занимаюсь микроконтроллерами, одноплатниками.
У меня есть идея/задача: к android (4.4+) устройству подключется внешний экран (через usb, wifi, bluetooth).
И что бы на этом экране запускался launcher или выбранное приложение. Т.е. выполняется приложение на андроид устройстве, а отображается на внешнем экране.
Основной экран андроид устройства при этом работает отдельно, не задействуется или заблокирован.
Возможно ли реализовать такое? Какие технологии или библиотеки могут мне помочь в реализации?
Читал вот это: https://source.android.com/devices/graphics/layers-displays
Видел вот такие примеры:
https://www.youtube.com/watch?v=kNaExTJ49TM
https://boundarydevices.com/android-lollipop-dual-display-imx6/
По экранам вроде бы +/- понятно, но как запускать приложения "на виртуальный экран" - не до конца понимаю. Что можно почитать?
Заранее благодарю за любые подсказки.
Turalllb
Turalllb
если в пикасо найти какой нибудь колбек по окончаю загрузки, то можно там ставить фокус
Alexander
Turalllb
⬤ vitaly
⬤ vitaly