Благодаря такому формату уроков я теперь постоянно перематываю назад, чтобы врубиться о чём Вы говорите. И в итоге 30 мин растягиваются на 3 часа. Наглядности почти никакой. в основном говорите только... Этот формат больше для презентаций(на которой уже знающие люди сидят, т.к. только знающий может успеть за вашей речью), но не для уроков.
Объясните мне "темному" зачем нужен даггер и зачем там нужна кодогенерация. Если мне все равно нужно протаскивать ссылку на компонент по сущностям. Что мне мешает создать модуль(класс)/компонент(интерфейс) на слое (пускай аппликейшн). Мне точно так же прийдеться протаскивать его вглубь. И зачем мне тогда @Inject если я могу и так сказать mMyModule.getMeSomeEntityPlease(). Я думал там какая то действительно магия и объявив компоненту на аппликейшине я могу заинжектить тупо везде (и даггер мне проложит дорожки сам, и сделает это Memory Safe).. но чуда не произошло.. магии не существует. Зато произошло следующее - что при малейшем изменении gradle мне часто приходиться делать Clean -> Make -> Run. И среда не совсем все понимает - особенно когда я его говорю "findUsage" на поле с анноташкой @Inject, а она мне "че ты хочешь". А еще мне приходиться надеяться что разрабы даггера не косячили и все будет работать. Притом я могу сделать тот же модуль как класс и компонент на интерфейсе - что позволит мне подменивать модуль с точно таким же успехом. В чем сила бро??? .. Может я старомоден. Но честно я в отчаянии со всеми новедениями.
Допустим ты инициализируешь контекст application в классе App. А в ходе разработки хочешь заменить контекст application на контекст активити. В случае даггер ты можешь просто поменять зависимость. В ином случае, тебе надо везде перепиливать методы по коду. В этом ином случае, методы и классы зависящие от App контекста имеют жесткую связанность с ним. А это противоречит принципу SOLID об инверсии зависимостей.
Невозможно собрать ваш проект с гитхаба в новой Андроид Студио. Постоянно ругается: Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead. ButterKnife заменил депенденси, апт плагины убрал. Все равно выводится это сообщение. Подскажите, как исправить. Спасибо
Здравствуйте!Не могли бы вы рассказать как можно реализовать запоминание регистрации.Чтобы после выхода из приложения пользователь входил в основное активити, а не снова в меню авторизации. Буду очень признателен!
Например запускаешь начальное активити (splashScreen) в котором проверяешь наличие токена который можешь хранить в SharedPreferences. Если же токена там нету загружаешь активити регистрации.
Благодаря такому формату уроков я теперь постоянно перематываю назад, чтобы врубиться о чём Вы говорите. И в итоге 30 мин растягиваются на 3 часа.
Наглядности почти никакой. в основном говорите только... Этот формат больше для презентаций(на которой уже знающие люди сидят, т.к. только знающий может успеть за вашей речью), но не для уроков.
Можно отдельное видео по дагеру?
Есть вообще какое-то сообщество, где обсуждаются практические задания ?
Объясните мне "темному" зачем нужен даггер и зачем там нужна кодогенерация. Если мне все равно нужно протаскивать ссылку на компонент по сущностям. Что мне мешает создать модуль(класс)/компонент(интерфейс) на слое (пускай аппликейшн). Мне точно так же прийдеться протаскивать его вглубь. И зачем мне тогда @Inject если я могу и так сказать mMyModule.getMeSomeEntityPlease(). Я думал там какая то действительно магия и объявив компоненту на аппликейшине я могу заинжектить тупо везде (и даггер мне проложит дорожки сам, и сделает это Memory Safe).. но чуда не произошло.. магии не существует. Зато произошло следующее - что при малейшем изменении gradle мне часто приходиться делать Clean -> Make -> Run. И среда не совсем все понимает - особенно когда я его говорю "findUsage" на поле с анноташкой @Inject, а она мне "че ты хочешь". А еще мне приходиться надеяться что разрабы даггера не косячили и все будет работать. Притом я могу сделать тот же модуль как класс и компонент на интерфейсе - что позволит мне подменивать модуль с точно таким же успехом. В чем сила бро??? .. Может я старомоден. Но честно я в отчаянии со всеми новедениями.
Допустим ты инициализируешь контекст application в классе App. А в ходе разработки хочешь заменить контекст application на контекст активити. В случае даггер ты можешь просто поменять зависимость. В ином случае, тебе надо везде перепиливать методы по коду. В этом ином случае, методы и классы зависящие от App контекста имеют жесткую связанность с ним. А это противоречит принципу SOLID об инверсии зависимостей.
По Dager 2 будут уроки? Мало что понятно!
Кто сталкивался с проблемой, что при запуске теста он не переходит на WalkthroughActivity ?
спасибо!
Невозможно собрать ваш проект с гитхаба в новой Андроид Студио. Постоянно ругается:
Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead.
ButterKnife заменил депенденси, апт плагины убрал. Все равно выводится это сообщение. Подскажите, как исправить.
Спасибо
решается необновлением грэдла в АС
Здравствуйте!Не могли бы вы рассказать как можно реализовать запоминание регистрации.Чтобы после выхода из приложения пользователь входил в основное активити, а не снова в меню авторизации.
Буду очень признателен!
Например запускаешь начальное активити (splashScreen) в котором проверяешь наличие токена который можешь хранить в SharedPreferences. Если же токена там нету загружаешь активити регистрации.
прикольно
А вы можете подсказать что делать с ошибкой в Андроид 5.1 с usb подключением?
Делаю ДЗ по коммитам. Добавил в 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) дергается с заполненными параметрами, но почему то вызов самого гет запроса не происходит. Интерцептор тоже не срабатывает.
Подскажите, пжл, в чем может быть причина?
Спасибо