Сам я мав деякі сумніви щодо реактивного програмування і вирішив докладно розібратися в даному полі, а заодно і донести свої знання до громади, може комусь і знадобиться.
RxJava - це бібліотека реактивного програмування, що дозволяє вам представити будь-що у вигляді асинхронного потоку даних, який може бути створений в будь-якому потоці, може бути функціонально трансформований та бути використаний чим завгодно.
Реактивне програмування - парадигма програмування, орієнтована на потоки даних і поширення змін. Це означає, що повинна існувати можливість легко висловлювати статичні і динамічні потоки даних, а також те, що виконувана модель повинна автоматично поширювати зміни крізь потік даних.
Відмовостійкість, орієнтованість на події і масштабованість - чотири принципи нині популярного реактивного програмування. Саме дотримуючись їх створюється backend великих систем з одночасною підтримкою десятків тисяч з'єднань.
Простота, гнучкість і розширюваність коду - принципи, які можна закріпити за реактивним UI.
Перед тим, як ми детально розглянемо, що таке RxJava, ми розглянемо, які можливості має бібліотека RxJava.
Це скріншот з додатку Google’s IOSched. Коли користувач вводить текст в
Тепер припустимо, що ви повинні зробити щось на зразок цього для програми яку ви пишете, але припустимо, що є деякі додаткові вимоги, а саме, що запит повинен виконувати, тільки якщо:
Знаєте чим прекрасна бібліотека RxJava? Як тілки ви спробуєте RxJava
Джерела:
1. Android. Пару слов об MVP + rxJava
2. An Introduction to RxJava for Android (Pt. 1)
3. ReactiveX/RxJava
4. Реактивное программирование под Android
5. Реактивное программирование
6. The Reactive Manifesto
RxJava - це бібліотека реактивного програмування, що дозволяє вам представити будь-що у вигляді асинхронного потоку даних, який може бути створений в будь-якому потоці, може бути функціонально трансформований та бути використаний чим завгодно.
Реактивне програмування - парадигма програмування, орієнтована на потоки даних і поширення змін. Це означає, що повинна існувати можливість легко висловлювати статичні і динамічні потоки даних, а також те, що виконувана модель повинна автоматично поширювати зміни крізь потік даних.
Відмовостійкість, орієнтованість на події і масштабованість - чотири принципи нині популярного реактивного програмування. Саме дотримуючись їх створюється backend великих систем з одночасною підтримкою десятків тисяч з'єднань.
Простота, гнучкість і розширюваність коду - принципи, які можна закріпити за реактивним UI.
Перед тим, як ми детально розглянемо, що таке RxJava, ми розглянемо, які можливості має бібліотека RxJava.
Це скріншот з додатку Google’s IOSched. Коли користувач вводить текст в
SearchWidget
, що в Actionbar
відбувається запит до бази даних і результат виводиться списком під Actionbar
.Тепер припустимо, що ви повинні зробити щось на зразок цього для програми яку ви пишете, але припустимо, що є деякі додаткові вимоги, а саме, що запит повинен виконувати, тільки якщо:
- Введено хоча б три символи в
SearchWidget
- Відбулась затримка принаймні в 100 мс перед вводом наступного символу в
SearchWidget
SearchWidget
та використати if-else для перевірки кількості символів. Далі слід встановити Handler
, який буде запускати процес після затримки в 100 мс. Знаєте чим прекрасна бібліотека RxJava? Як тілки ви спробуєте RxJava
Observable,
який створений, щоб повідомити про зміну тексту в SearchWidget, ви можете зробити еквівалент цього лише в три рядки коду. Використовуючи RxJava, ви додасте в свій проект гнучкості та зрозумілості в коді. Джерела:
1. Android. Пару слов об MVP + rxJava
2. An Introduction to RxJava for Android (Pt. 1)
3. ReactiveX/RxJava
4. Реактивное программирование под Android
5. Реактивное программирование
6. The Reactive Manifesto
Комментариев нет:
Отправить комментарий