-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Рефакторинг на архитектуру MVP #6
Conversation
- Удален сервис - Вся загрузка контактов в репозитории - Добавлена библиотека Moxy - Обновлен README
Нужно пользоваться аннотацией
Не нужно. Lifecycle презнтера Moxy - дольше чем lifecycle фрагмента. Поэтому утечек памяти не должно произойти. Но вот обратная ситуация - если у тебя будет жесткая ссылка на фрагмент внутри презентера - это уже гарантированная утечка памяти
На самом деле, ты можешь уже начать использовать RxJava - это будет лучше тех вариантов перечисленных тобою. Но если ты хочешь идти последовательно, то |
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/repository/ContactRepositoryFromSystem.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/ui/activities/MainActivity.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/ui/fragments/ContactDetailsFragment.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/ui/fragments/ContactListFragment.java
Outdated
Show resolved
Hide resolved
- Добавил NonNull вместо проверки - Перенс проверку получения слабой ссылки - В репозиторий передается контекст приложения
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactDetailsPresenter.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/presenters/ContactListPresenter.java
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/ui/fragments/ContactDetailsFragment.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/ui/fragments/ContactDetailsFragment.java
Outdated
Show resolved
Hide resolved
app/src/main/java/com/a65apps/yuhnin/lesson1/ui/fragments/ContactListFragment.java
Outdated
Show resolved
Hide resolved
- Работа с потоками вынесена в презентер - Репозиторий помечен как NonNull
Рефакторинг проекта по паттерну MVP
Произвел рефакторинг и изменение архитектуры на MVP с использованием библиотеки Moxy.
Удалил существующий сервис загрузки контактов
Всю работу по загрузке контактов перенс в репозиторий
Проблемы
Очень долго провозился с проблемой дублирования библиотек Moxy от
com.arellomobile
иtech.schoolhelper
. Перепробовал кучу всего. Нашел только такое решение.Столкнулся с проблемой, что
getViewState()
в презенторе возвращает null. Вполне возможно, я что-то забыл добавить, а может быть как раз виновато то, что я сделал для решения конфликта библиотек.Поискал в инете, у людей тоже была такая проблема
Вопросы
Скорее всего глупый вопрос: нужно ли в onDestroy уничтожать ссылку на презентер?
Как предпочтительнее решать ситуацию с тем, что из репозитория из асинхронной функции callback вызывается не в главном потоке:
Использовать AsyncTask (но я вроде в лекциях слышал, что он уже устаревает) и вызывать callback в
onPostExecute
;Использовать такую конструкцию
Использовать Handler