Skip to content
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

feat(hw): migrate project to rxjava #162

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

bmv-2143
Copy link

ReactiveCats

  1. Переведите сетевой запрос с retrofit.Call на RX цепочку. Для этого подключите Retrofit адаптер, поменяйте возвращаемые типы функций

  2. Поменяйте логику в CatsViewModel.kt с колбеков на RX. Логику обработки успеха/ошибки из коллбека необходимо перенести в терминальные коллбеки RX цепочки. Не забудьте очистить подписки когда ViewModel уничтожается

  3. Реализуйте функцию otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFact, так, чтобы она возвращала Fact со случайной строкой из массива строк R.array.local_cat_facts обернутую в подходящий стрим(Flowable/Single/Observable и т.п)

  4. Реализуйте функцию otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFactPeriodically так, чтобы она эмитила Fact со случайной строкой из массива строк R.array.local_cat_facts каждые 2000 миллисекунд. Если вновь заэмиченный Fact совпадает с предыдущим - пропускаем элемент.

  5. Реализуйте функцию otus.homework.reactivecats.CatsViewModel#getFacts следующим образом: каждые 2 секунды идем в сеть за новым фактом, если сетевой запрос завершился неуспешно, то в качестве фоллбека идем за фактом в уже реализованный otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFact.

Переведите сетевой запрос с retrofit.Call на RX цепочку. Для
этого подключите Retrofit адаптер, поменяйте возвращаемые типы функций
Поменяйте логику в CatsViewModel.kt с колбеков на RX. Логику обработки
успеха/ошибки из коллбека необходимо перенести в терминальные коллбеки
RX цепочки. Не забудьте очистить подписки когда ViewModel уничтожается
Реализуйте функцию
otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFact,
так, чтобы она возвращала Fact со случайной строкой из массива строк
R.array.local_cat_facts обернутую в подходящий
стрим(Flowable/Single/Observable и т.п)
Реализуйте функцию otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFactPeriodically так, чтобы она
эмитила Fact со случайной строкой из массива строк
R.array.local_cat_facts каждые 2000 миллисекунд. Если вновь заэмиченный
Fact совпадает с предыдущим - пропускаем элемент.
Реализуйте функцию otus.homework.reactivecats.CatsViewModel#getFacts
следующим образом: каждые 2 секунды идем в сеть за новым фактом, если
сетевой запрос завершился неуспешно, то в качестве фоллбека идем за
фактом в уже реализованный
otus.homework.reactivecats.LocalCatFactsGenerator#generateCatFact.
Copy link
Collaborator

@antonkazakov antonkazakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants