Adel
Если просто фото, можешь с систему кинуть интент нужный и сделаешь фотку.
Сейчас так реализовано, нужно внутри собственного приложения
Кирилл
Не) ща расскажу, как бывает обычно: 1. Какой-то сеньор васян берёт проект, работает над ним, устраивает сложную архитектуру, радуется, как ему всё понятно и как ему кажется это будет легко поддерживать в дальнейшем и как он сюда добавит какие-то свои НОВАТОРСКИЕ штуки 2. Васяна убирают по причине ~надоел~, на его место берут 1-2 миддлов подешевле и менее заносчивых 3. Эти миддлы смотрят в код, понимают процентов 10 от тех абстракций, что наделал Васян и делают какой-то говнокод поверх архитектуры Васяна, в итоге проект превращается в кашу Это я на примере кучи проектов из личного опыта, которые волей-неволей приходилось где-то менеджерить, где-то самому разбираться в умном говне Васяна (а он писал мне в личку буквально «ну да, там сложно, хех»), где-то и то, и другое. С другой стороны, было несколько проектов с говнокодом, но суперлегко поддерживаемых и переделываемых, даже если прошлый разраб пропадал раз и навсегда и на связь больше не выходил
Подписываюсь, я сейчас выступаю в роли этого миддла подешевле на текущем проекте. Потом смотрю на свои проекты где нет этих паттерном на супер абстракции и пониманию насколько легче их будет кому то другому поддерживать
Кирилл
так дебаг версия точно также должна устанавливаться на другой девайс (если там не стоит релизная уже)
Нет, не должна. Можешь проверить сам. Попробуй скинуть на любой другой телефон дебаг апкшку которую сгенерила андройд студия, она не поставится
Кирилл
а как тогда приложения разрабатывать на устройствах? Проверял и не раз
»а как тогда приложения разрабатывать на устройствах? Не понял тебя
Ivan
»а как тогда приложения разрабатывать на устройствах? Не понял тебя
Ну ты когда запускаешь приложение на девайсе, студия же инсталлит эту апкшку на девайс
Апач
Не) ща расскажу, как бывает обычно: 1. Какой-то сеньор васян берёт проект, работает над ним, устраивает сложную архитектуру, радуется, как ему всё понятно и как ему кажется это будет легко поддерживать в дальнейшем и как он сюда добавит какие-то свои НОВАТОРСКИЕ штуки 2. Васяна убирают по причине ~надоел~, на его место берут 1-2 миддлов подешевле и менее заносчивых 3. Эти миддлы смотрят в код, понимают процентов 10 от тех абстракций, что наделал Васян и делают какой-то говнокод поверх архитектуры Васяна, в итоге проект превращается в кашу Это я на примере кучи проектов из личного опыта, которые волей-неволей приходилось где-то менеджерить, где-то самому разбираться в умном говне Васяна (а он писал мне в личку буквально «ну да, там сложно, хех»), где-то и то, и другое. С другой стороны, было несколько проектов с говнокодом, но суперлегко поддерживаемых и переделываемых, даже если прошлый разраб пропадал раз и навсегда и на связь больше не выходил
Я же написал, почему так делают. Потому что например, если гвоздями прибиватся к какому либо фреймворку, любой его breaking change поломает вам все на свете, что чревато превращением проекта в безнадежное лигаси. Если будешь писать просто кнопка.перекрасить без лишних заморочек, а кнопку надо перекрашивать по результату нескольких асинхронных операций, будет много проблем если надо чёт поменять, надо юзать хитроумную асинхронную архитектуру. Будешь собирать компоненты руками - опять, любая переделка и тебе надо весь вайринг руками переписывать, нужен диай фрейм. Не дробить по слоям - хреново тестируется. Короче вся архитектура не для прекола а для решения задач. Нет задач, нет архитектуры. Я к тому, что при решении этих задач проще пользоватся примитивами которые имеют явные свойства/контракты.
Кирилл
Build - generate apk Я вот такие билды заливаю в app tester и все спокойно тестируют
Хм, хз. Я помню давно когда не знал про релиз апк скидывал эти дебаг апкшки сгенеренные студией другим юзерам и оно нифига не ставилось. Может сейчас они это изменили
Izya
Я же написал, почему так делают. Потому что например, если гвоздями прибиватся к какому либо фреймворку, любой его breaking change поломает вам все на свете, что чревато превращением проекта в безнадежное лигаси. Если будешь писать просто кнопка.перекрасить без лишних заморочек, а кнопку надо перекрашивать по результату нескольких асинхронных операций, будет много проблем если надо чёт поменять, надо юзать хитроумную асинхронную архитектуру. Будешь собирать компоненты руками - опять, любая переделка и тебе надо весь вайринг руками переписывать, нужен диай фрейм. Не дробить по слоям - хреново тестируется. Короче вся архитектура не для прекола а для решения задач. Нет задач, нет архитектуры. Я к тому, что при решении этих задач проще пользоватся примитивами которые имеют явные свойства/контракты.
>хреново тестируется Кстати, насколько часто сейчас пользуются тестами? Я обычно просто сборочку тестировщику отдаю и на выходе список багов получаю)
Апач
Я бекенд, я накрываю тестами настолько насколько дают времени
Апач
Оно весьма успешно
Izya
.
Не) ща расскажу, как бывает обычно: 1. Какой-то сеньор васян берёт проект, работает над ним, устраивает сложную архитектуру, радуется, как ему всё понятно и как ему кажется это будет легко поддерживать в дальнейшем и как он сюда добавит какие-то свои НОВАТОРСКИЕ штуки 2. Васяна убирают по причине ~надоел~, на его место берут 1-2 миддлов подешевле и менее заносчивых 3. Эти миддлы смотрят в код, понимают процентов 10 от тех абстракций, что наделал Васян и делают какой-то говнокод поверх архитектуры Васяна, в итоге проект превращается в кашу Это я на примере кучи проектов из личного опыта, которые волей-неволей приходилось где-то менеджерить, где-то самому разбираться в умном говне Васяна (а он писал мне в личку буквально «ну да, там сложно, хех»), где-то и то, и другое. С другой стороны, было несколько проектов с говнокодом, но суперлегко поддерживаемых и переделываемых, даже если прошлый разраб пропадал раз и навсегда и на связь больше не выходил
именно поэтому я не люблю мвп, мввм, мви и прочее говно. у нас взяли очень крепкого миддла и я его учил мвп. он сказал что это говно и свалил, на его место взяли долбогреба который знал мокси, но он пишет фигню и жаждит обвешать проекты говнолибами. теперь крепко подумываю сваливать, так как взяли идиота пока я был в отпуске и ни ХР, ни ПМ слушать меня не хотят, собеседовал ПМ.
Izya
Ну да
А, ну на сервере я не представляю себе разработку без написания тестов. Просто, на мой взгляд, с тестировщиком на мобилке без этого можно обойтись (и я за 4 года всё ещё успешно обхожусь)
Nurseyit
Izya
Недостаточно сложная мобилка, значит
О, а приведи, пожалуйста, пример достаточно сложного приложения, которому позарез нужны тесты?
Кирилл
Спасибо, заработало!!!
Это все таки костыль, я думаю у flow есть специальная функция которая делает тоже самое, лучше погугли
.
нет.
Кирилл
Практически любое, нет?
Ну.. нет. Во многих приложениях делают юнит тесты ради юнит тестов.
Апач
Апач
Клиент виртуальной машины
.
если нормальный код то манки-тестинга достаточно, инструментальный заебешься писать, а в тдд нет смысла так как код, блин, нормальный. сложности начинаются когда надо "сделать как в иос" и "вот сюда прикрути красивую анимацию". даже банкам нахер не нужно это, так как там феил-сейф с серверной стороны, тока секурити-сайд продумать и возможно к нему тесты написать.
Апач
Будет много вони со стороны клиента если там мяукнутся деньги
Апач
Условно если чел хочет перевести 100 бибов а ты переводишь 1000
Апач
Бекенд это скушает
Апач
Клиент - нет
.
Будет много вони со стороны клиента если там мяукнутся деньги
если апи серверное позволяет такое, то серверистам, пардон, залупу на воротник надо натянуть
.
ну и конечно тесты нихрена не дадут, можно и в тесте так обосраться что мяукнутся деньги, и шансы на это не сильно меньше чем обосраться точно так же в коде
Апач
если апи серверное позволяет такое, то серверистам, пардон, залупу на воротник надо натянуть
А ты никак не отличишь валидную команду отправленную юзером и измененную
Апач
Это фронт должен гарантировать что он правильно захватил хотелку клиента и правильно её передал
.
идея ясна, но мне трудно себе представить человека который прошел собеседование на банковскую разработку и так обделался под себя
.
это что-то за гранью разумного
Solt
Извиняюсь за оффтоп, у кого то есть видеокарта rx 580? Сколько ее температура в играх? Просто запустил требовательную игру, температура стала 80, это нормально?
Solt
Зайти в ютуб и посмотреть ее тесты, не?
Я смотрел, вернее читал, но хотел бы ещё услышать других
Апач
это что-то за гранью разумного
баг может быть очень хитрозамороченным и где то за скоупом кода самого приложения, и да, в банках программеры не намного скиловее не-банков, там просто больше процессов и времени на качество выделяется, но и выкатывания фич у банков не без крови.
.
Если нормальный код - то можно без запусков сразу в гп выкатывать, какая разница
нет. программисты допускают ошибки, но тдд от них совершенно не спасает. подавляющее большинство ошибок - интерфейсные и связаны с расширенными хотелками заказчика. для этого нужны очень мощные инструментальные тесты, написание которых по длительности сравнимо с реализацией самой фичи.
.
типа "промотай три раза вниз, перейди в другой фрагмент, отмени анимацию, два раза назад - краш"
Апач
Но часть этой лабуды можно решить отпилив логику от уи
.
Интересно, откуда статистика про "большинство ошибок..."?
4 года опыта сеньором в разных конторах - пойдет?
Izya
Интересно, откуда статистика про "большинство ошибок..."?
Ну потому что получить данные с сервера или собрать модельку и отправить на сервер может любой аутист, у которого слюна капает на клавиатуру
Апач
И потом отдельно прочекав оба слоя
.
Больше
согласен
Valentin
4 года опыта сеньором в разных конторах - пойдет?
А вот у меня другой опыт - работаю над клиентским приложением для блокчейн системы, там просто так не про "манкитестишь"
Valentin
И логика тоже не из разряда "сходить на сервер - показать список"
Апач
И логика тоже не из разряда "сходить на сервер - показать список"
Во во, нибось ещё КМС нужно и разматывать блокчейновую лабуду из запутанного сжатого формата
Апач
Хитрозамороченные подписи и так далее
Valentin
Хитрозамороченные подписи и так далее
У нас за это отвечает либа, которую бекендеры сваяли, но угадайте что - она тоже вся покрыта тестами
.
вы орёте чтоль? подпись на то и подпись что если 1/1 тестов на коленке сработал - то ты все правильно сделал
.
математику и все говно можно на изи блекбокс-тестом протестить и к андроиду это имеет не очень много отношения, я говорил конкретно про интерфейсную часть, из которой состоит 99% андроид-разработки
.
если у вас там адов матан - то клин, отдельные либы или что-то подобное и совсем другой подход вообще
Kathy
Потому что ты делаешь дебаг версию приложения которая подписывается дебаг релиз ключом андройд студией. Если тебе надо скинуть другому человеку апк делай signed apk, у гугла есть гайд
сделала подписанное приложение - запускается, но теперь говорит что приложение не авторизовано чтобы использовать Firebase Authentification. Типа введите корректное имя пакета и SHA-1. А как я его введу если уже и пакет и SHA-1 зарегистрированы и в дебаг версии работают?
Kathy
только новый пакет создавать?
.
андроид-разработка - это не реализация математики, это вечная война с энтропией в УИ и c гуглом и его андроид СДК
.
Эм, вы говорите, что юнит тесты не нужны, так как сложной логики не бывает, вам приводят пример сложной логики - вы отвергаете
это не сложная логика уи, это вообще отдельная либа как ты сам сказал. какие тесты и почему эти тесты должны дроид-девы делать?
Izya
Эм, вы говорите, что юнит тесты не нужны, так как сложной логики не бывает, вам приводят пример сложной логики - вы отвергаете
Просто вся эта сложная логика не относится напрямую к андроиду, а значит, легко покрывается простыми тестами вида «пришёл ответ с сервера? Ок, тест пройден». И в отрыве от дальнейших действий с этими данными такой тест особо не имеет значения, так как очень сложно хреново написать запрос к серверу. А проверять надо отображение лоадера во время загрузки, правильный показ данных на экране и прочие android-related штуки
Valentin
это не сложная логика уи, это вообще отдельная либа как ты сам сказал. какие тесты и почему эти тесты должны дроид-девы делать?
Ещё раз - логика там не только в виде матеши в либе для общения с блокчйном, но и в самом взаимодействии с ним через эту библиотеку, и она там не на уровне "сходил на сервер - получил ответ"
Kathy
Скинь логи ошибки
Я запускаю релиз версию без пк. FirebaseException вот такое пишет
Kathy
Кирилл
Я запускаю релиз версию без пк. FirebaseException вот такое пишет
Ошибка легко гуглится https://stackoverflow.com/questions/46751766/this-app-is-not-authorized-to-use-firebase-authentication-please-verify-that-the
.
Ещё раз - логика там не только в виде матеши в либе для общения с блокчйном, но и в самом взаимодействии с ним через эту библиотеку, и она там не на уровне "сходил на сервер - получил ответ"
значит архитектура говно у вашего аппа. есть простые правила. вот у тебя есть рожа системы. это приложение. если это финансовое приложение, то логика в роже должна быть простая. если должна быть сложная логика на роже, это плохо. но например надо. тогда эта рожа имеет внутри себя обфусцированную либу которой она кормит данные, получает байты и байты шлет на сервер в самом худшем случае. ничего сложнее быть не должно.