![][1]
Как известно, RxJava идеально подходит для решения двух задач: обработки потоков событий и работы с асинхронными методами. В одном из [предыдущих постов][2] я показал, как можно построить цепочку операторов, обрабатывающую поток событий от сенсора. А сегодня я хочу продемонстрировать, как RxJava применяется для работы с существенно асинхронным API. В качестве такого API я выбрал Camera2 API.
Ниже будет показан пример использования Camera2 API, который пока довольно слабо задокументирован и изучен сообществом. Для его укрощения будет использована RxJava2. Вторая версия этой популярной библиотеки вышла сравнительно недавно, и примеров на ней тоже немного.
Для кого этот пост? Я рассчитываю, что читатель – умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании ([хорошее введение – здесь][3]) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто хочет использовать Camera2 API в своих проектах. Предупреждаю, будет много кода!
Исходники проекта [можно найти на GitHub][4].
[Читать дальше →][5]
[1]:
https://habrastorage.org/web/342/d66/230/342d6623018f4d7b8d0392137429a5ba.jpg
[2]:
https://habrahabr.ru/company/badoo/blog/304488/
[3]:
https://habrahabr.ru/company/badoo/blog/328434/
[4]:
https://github.com/ArkadyGamza/Camera2API_rxJava2
[5]:
https://habrahabr.ru/post/330080/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut