Лекция 7 по архитектуре Android. Инструментальное и UI тестирование. Espresso. Dagger 2

Поделиться
HTML-код
  • Опубликовано: 25 сен 2024

Комментарии • 15

  • @FessNiklas1987
    @FessNiklas1987 5 лет назад +13

    Благодаря такому формату уроков я теперь постоянно перематываю назад, чтобы врубиться о чём Вы говорите. И в итоге 30 мин растягиваются на 3 часа.
    Наглядности почти никакой. в основном говорите только... Этот формат больше для презентаций(на которой уже знающие люди сидят, т.к. только знающий может успеть за вашей речью), но не для уроков.

  • @dmytromarchuk3023
    @dmytromarchuk3023 7 лет назад +14

    Можно отдельное видео по дагеру?

  • @apoyark
    @apoyark 6 лет назад +1

    Есть вообще какое-то сообщество, где обсуждаются практические задания ?

  • @andrluk8002
    @andrluk8002 6 лет назад +3

    Объясните мне "темному" зачем нужен даггер и зачем там нужна кодогенерация. Если мне все равно нужно протаскивать ссылку на компонент по сущностям. Что мне мешает создать модуль(класс)/компонент(интерфейс) на слое (пускай аппликейшн). Мне точно так же прийдеться протаскивать его вглубь. И зачем мне тогда @Inject если я могу и так сказать mMyModule.getMeSomeEntityPlease(). Я думал там какая то действительно магия и объявив компоненту на аппликейшине я могу заинжектить тупо везде (и даггер мне проложит дорожки сам, и сделает это Memory Safe).. но чуда не произошло.. магии не существует. Зато произошло следующее - что при малейшем изменении gradle мне часто приходиться делать Clean -> Make -> Run. И среда не совсем все понимает - особенно когда я его говорю "findUsage" на поле с анноташкой @Inject, а она мне "че ты хочешь". А еще мне приходиться надеяться что разрабы даггера не косячили и все будет работать. Притом я могу сделать тот же модуль как класс и компонент на интерфейсе - что позволит мне подменивать модуль с точно таким же успехом. В чем сила бро??? .. Может я старомоден. Но честно я в отчаянии со всеми новедениями.

    • @Юлия-ц6ж4я
      @Юлия-ц6ж4я 6 лет назад +1

      Допустим ты инициализируешь контекст application в классе App. А в ходе разработки хочешь заменить контекст application на контекст активити. В случае даггер ты можешь просто поменять зависимость. В ином случае, тебе надо везде перепиливать методы по коду. В этом ином случае, методы и классы зависящие от App контекста имеют жесткую связанность с ним. А это противоречит принципу SOLID об инверсии зависимостей.

  • @НиколайМедведев-т4е

    По Dager 2 будут уроки? Мало что понятно!

  • @apoyark
    @apoyark 6 лет назад +1

    Кто сталкивался с проблемой, что при запуске теста он не переходит на WalkthroughActivity ?

  • @acrrono
    @acrrono 6 лет назад

    спасибо!

  • @АлександрДворцов-ш1б

    Невозможно собрать ваш проект с гитхаба в новой Андроид Студио. Постоянно ругается:
    Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead.
    ButterKnife заменил депенденси, апт плагины убрал. Все равно выводится это сообщение. Подскажите, как исправить.
    Спасибо

  • @ОлегАлибеков-м2б
    @ОлегАлибеков-м2б 7 лет назад

    Здравствуйте!Не могли бы вы рассказать как можно реализовать запоминание регистрации.Чтобы после выхода из приложения пользователь входил в основное активити, а не снова в меню авторизации.
    Буду очень признателен!

    • @ЮраЧорнота
      @ЮраЧорнота 5 лет назад

      Например запускаешь начальное активити (splashScreen) в котором проверяешь наличие токена который можешь хранить в SharedPreferences. Если же токена там нету загружаешь активити регистрации.

  • @god_of_gods
    @god_of_gods 7 лет назад

    прикольно

  • @ksamsonov107
    @ksamsonov107 7 лет назад

    А вы можете подсказать что делать с ошибкой в Андроид 5.1 с usb подключением?

  • @АлександрДворцов-ш1б

    Делаю ДЗ по коммитам. Добавил в RequestsHandler ссылку на запрос с юзером и репозиторием, прикрепил файл с ответом для /commits
    В DefaultGithubRepository написал след код для commits :
    @NonNull
    @Override
    public Observable commits(@NonNull String user, @NonNull String repo) {
    System.out.println("DefaultGithubRepository ::: commits " + user + ", " + repo);
    return ApiFactory.getGithubService()
    .commits(user, repo)
    .flatMap(commitResponses -> {
    List commits = commitResponseToCommits(commitResponses);
    Realm.getDefaultInstance().executeTransaction(realm -> {
    realm.delete(Commit.class);
    realm.insert(commits);
    });
    return Observable.just(commits);
    })
    .onErrorResumeNext(throwable -> {
    Realm realm = Realm.getDefaultInstance();
    RealmResults commits = realm.where(Commit.class).findAll();
    return Observable.just(realm.copyFromRealm(commits));
    })
    .compose(RxUtils.async());
    }

    .commits(user, repo) дергается с заполненными параметрами, но почему то вызов самого гет запроса не происходит. Интерцептор тоже не срабатывает.

    Подскажите, пжл, в чем может быть причина?
    Спасибо