Himars
есть потребность в этом
Ну оке Способ 1 Слушать в фоне UsageStat и когда целевое приложение попадает в топ recent usage окрывать свою активити (я бы предпотчел Overlay) - недостаток для UsageStat требуется включить ручками разрешение Способ 2 Быть ланчером в системе Способ 3 Использовать какой-нить эксплойт для этого (сомневаюсь что получится)
Vitaly
Есть у кого ещё опыт работы с Robolectric в JUnit тестах? Действительно ли он там необходим?
Himars
Спасибо Как будет работать второй способ? пишу свой launcher и встают подобные вопросы, а матераилов по созданию launcher-ов совсем нет
Я себе так представляю При нажатии на ярлык - вы как хост приложение получаете событие и сами его обрабатываете. По событию сначала запускаете securityScreen который требует авторизации и только после авторизации запускаете приложение. Вот пример ланчера https://github.com/OpenLauncherTeam/openlauncher больше ланчеров здесь https://github.com/search?q=android+launcher
Vitaly
Объясню в чём у меня сомнения: JUnit тесты нужны для того, чтобы быстро запускать тесты и обнаруживать возможные ошибки) В случае с Mockito (ну или обычный JUnit даже без него) у меня тест запускается за 1-2 секунды, в случае с Robolectric запуск происходит в течение 3-4 минут
Bahrom
Есть у кого ещё опыт работы с Robolectric в JUnit тестах? Действительно ли он там необходим?
Если хочешь тестировать activity/fragment и тому подобное то отличная вещь, чем тестировать на эмуляторе
Artyom Pugachev
Есть у кого ещё опыт работы с Robolectric в JUnit тестах? Действительно ли он там необходим?
Он позволяет тестировать андроид-специфичные вещи без эмулятора, на jvm
Bahrom
Если выбрать между Espresso/UIAutomator и Robolectric то я предпочту последнюю, оба использовал
Alexander
А лучше, конечно, и то и другое. Эспрессо для UI-тестов, роболектрик для тестирования кишочков вьюшек всяких
Alexander
Для UI можно и с робо обходиться
Можно, но всё-таки там урезанный android.jar, поэтому, если проект прям серьёзный, то юи-тесты дополнительно тоже нужны, с запуском живой активити
Bahrom
Согласен
Sviat
Ребята, хлеп. У меня есть два репозитория на гитхабе. как мне один указать в виде зависимости у второго?
Илья
Ребята, подскажите пожалуйста, как правильно инициализировать периодическую джобу WorkManager-a при первом запуске приложения после инсталла юзером, чтобы эта джаба в последствии запускалась интервалом? Делаю в OnCreate главного Activity, но кажется это как-то неправильно
Sviat
Какого рода зависимость? Либу сделать что ли?
угу. я хочу весь ремоут вынести в отдельный гит репо. и подключить в градле
Mike
Ребята, хлеп. У меня есть два репозитория на гитхабе. как мне один указать в виде зависимости у второго?
можно сабмодулями, но в джава-мире принято подключать зависимости джарниками с maven-репозиториев
Mike
я тут нашел решение через jitpack. это оно?
вроде того, если оно работает, конечно
Sviat
вроде того, если оно работает, конечно
окей, будем пробовать. спасибо
Mike
можно в onCreate App-ы делать
чтобы при каждом запуске джоба перевыставлялась и никогда не вызвалась =)
Himars
чтобы при каждом запуске джоба перевыставлялась и никогда не вызвалась =)
так можно же проверять - если джоба уже есть, то не постим но это будет влиять на время запуска апы сейчас думаю как у себя от этого отказатся
Vitaly
Как можно протестить эту строчку кода в Presenter с помощью Mockito? getViewState().onErrorMessage();
Vitaly
Получается, что у меня нет мока Presentera, так как создаю напрямую новый экземпляр, а getViewState() берётся из интерфейса, который релализует Presenter
Alexander
как экземпляр viewState появляется в презентере?
Mike
посредством чёрной магии
Vitaly
Ну как-то же Moxy тестируют
Himars
однажды я тоже добавил фреймворки в приложение с тех пор не могу нормально спать
Alexander
Ну короче, когда пишешь юнит тесты, вообще не существует понятия мокси, презентер, архитектура там какая-то. Есть понятия классов, объектов и методов. Вот тебе нужно проверить объект внутри класса, значит надо сделать мок этого объекта и засунуть туда. Сеттером, через конструктор или ещё как-то, как получится. Потом вызывать целевой метод и верифай мок сделать
Himars
даггеры всякие р-иксы вот Room меня очень порадовал
Roman
Писать миграции на чистом sql и хранить джейсоны каждой версии бд как-то странно
Roman
Пока что лучше чем Ecto orm не видел. Жаль что это веб
Himars
Чем порадовал?
Простой и в работе и в тестировании Немного @Embedded и @Relation боль, особенно при отношении 1 к 1
Vitaly
Писать миграции на чистом sql и хранить джейсоны каждой версии бд как-то странно
Согласен миграции на ней делать ужасно, но в остально крутая
Himars
Чем-то гибернейт напоминает
возможно не имел дела...
Vitaly
Чем-то гибернейт напоминает
А почему тогда не Realm?
Илья
чтобы при каждом запуске джоба перевыставлялась и никогда не вызвалась =)
вот как раз столкнулся с похожей проблемой, к тому же, почему-то интервал выполнения, согласно логам, более чем установленный (10 секунд). а как тогда правильно сделать, через броадкаст ресивер? проверять айдишку джобы в статичном свойстве активити/приложухи ? может WorkManager слишком сырой еще, стоит попробовать com.evernote:android-job ?
Roman
Согласен миграции на ней делать ужасно, но в остально крутая
А ещё заявлена интеграция с рхджава. На деле только с read методами
Roman
Может кто подскажет..как реализовать открытие и закрытие активити (onbackpressed) с анимацией разворачивания (увеличения) из определенной вью и при закрытии сворачивание (уменьшение) в определенную вью? с makeSceneTransitionAnimation не варик вроде..
Himars
А ещё заявлена интеграция с рхджава. На деле только с read методами
что есть то есть А в insert нельзя сделать Single<int> возвращающим результатом ? а то я не пробовал так
Artem
Писать миграции на чистом sql и хранить джейсоны каждой версии бд как-то странно
притом не все миграции поддерживаются. Нельзя тупо поле переименовать
Илья
понял, спасибо Quantum и prosto, похоже это больная тема у андройд, чтобы сделать совместимую джобу > API 16. ну как-то же уведомления и проверка в телеграмме сделана, значит есть путь
Roman
Может сделают потом
Aleksandr
Много где используется подобного рода шаблон. Есть ли у него название?
Kanstantsin
item для recyclerView ?
Aleksandr
Aleksandr
Хочу создать View с таким layout-ом и потом переиспользовать, но не могу придумать название.
Roman
Наверное)
roman G
Ребят, допустим у меня есть 4 пользователя в приложении Как правильно мне хранить данные о них (имя, пароль, тип доступа) и как правильно работать с конкретным пользователем в приложении Допустим сейчас я работаю с user1, откуда мне брать данные о нём?
roman G
В приложении не будет больше 10 пользователей
Kanstantsin
Two-line item
ну да, примерно так и называли такие штуки )
Mike
завести по файлику под каждого да положить туда нужные данные
Mike
почему не бд ?
БД — вполне себе файлик (как и префы)
Kanstantsin
бд можно зашифровать ключом из AndroidKeyStore
Kanstantsin
пароль конечно лучше не хранить, но иногда если очень надо такое, то в зашифрованной бд хранить пароль + в неявном виде, делали такое
Alexander
Залил проект на github используя share project on Github. Как теперь обновить там код? Делал commit change,но это видимо не то т.к обновленные ресурсы ушли не понятно куда..
Alexander
Нет, а где?)
Kanstantsin
ну тут в пору почитать про гит статьи тогда лучше
Kanstantsin
какие команды есть, как они работают