background preloader

Все

Facebook Twitter

RxAndroid Tutorial. If you're new here, you may want to subscribe to my RSS feed or follow me on Twitter.

RxAndroid Tutorial

Thanks for visiting! They say you should develop a proactive mindset in life, not a reactive one. That does not apply to Android programming, however! :] Reactive programming is not just another API. Don’t be scared — I’ll bet the basic concept of reactive programming is known to you even if you are not aware of it yet. :] RxJava. Убираем магию. Я долго боялся использовать RxJava в production.

RxJava. Убираем магию

Её назначение и принцип работы оставались для меня загадкой. Untitled. Укрощаем асинхронные процессы в Android с RxJava. Опыт Яндекса / Блог компании Яндекс. Всем привет, меня зовут Алексей Агапитов и сегодня я хочу рассказать, как с помощью такой библиотеки как RxJava можно легко обрабатывать множество асинхронных процессов в вашем Android приложении.

Укрощаем асинхронные процессы в Android с RxJava. Опыт Яндекса / Блог компании Яндекс

Мы разберём, как создавать свои холодные и горячие последовательности, обратим внимание на некоторые нюансы при использовании RxJava, а также рассмотрим насколько мощными инструментами являются предоставляемые данной библиотекой операторы. Рассказывать обо всём я буду на примере приложения Яндекс.Недвижимость и его главного экрана с картой. Для начала посмотрим на экран и разберёмся, что на нём происходит и что нам предстоит реализовать. Гифка, 13 мб Прежде всего возникает взаимодействие с картой: человек может двигать карту и на ней будут появляться точки с объявлениями, подходящими под его фильтры. Сами фильтры меняются на другом экране, но их необходимо использовать при запросе интересующих нас точек на карте.

Принципы реактивного программирования на примере простого RSS-агрегатора с использованием ReactiveX для Python. Несколько примеров практического использования RxJava. RxJava — это реализация ReactiveX для Java — библиотеки для асинхронной обработки потоков данных.

Несколько примеров практического использования RxJava

Паттерн observable на стероидах, как они сами пишут. В интернете, в том числе на Хабре, есть много «введений в RxJava». Я хочу привести несколько примеров реальных задач. Они не очень сложные, но возможно кто-то увидит какие-то сходства со своими и задумается. Собственно, задачи: 1. 2. 3. 1. Предположим, есть некоторый протокол обмена сообщениями. Разбираемся с многопоточностью в RxJava / Блог компании Rambler&Co. Когда описывают преимущества RxJava, всегда упоминают об удобстве организации работы многопоточного приложения средствами RxJava.

Разбираемся с многопоточностью в RxJava / Блог компании Rambler&Co

То, как использовать операторы subscribeOn и observeOn, можно прочитать практически в каждой статье, посвященной основам RxJava. Например, здесь хорошо описаны случаи, когда использовать методы subscribeOn и когда observeOn. Однако, на практике часто приходится сталкиваться с проблемами, для которых нужно более глубокое понимание того, что именно делают методы subscribeOn и observeOn. В этой статье я хотел бы рассмотреть ряд вопросов, которые иногда возникают при использовании этих операторов. Как приручить реактивное программирование. Основы реактивного программирования под Android на практическом примере. 1.

Основы реактивного программирования под Android на практическом примере

Введение в реактивное программирование Разрабатывая сложное приложение под Android со множеством сетевых соединений, взаимодействием с пользователем и анимацией — означает писать код, который полон вложенных обратных вызовов. И по мере развития проекта такой код становится не только громоздким и трудно понимаемым, но также сложным в развитии, поддержке и подвержен множеством трудноуловимым ошибкам. ReactiveX или функциональное реактивное программирование предлагает альтернативный подход, который позволяет значительно сократить код приложения и создавать изящные понимаемые приложения для управления асинхронными задачами и событиями. В реактивном программировании потребитель реагирует на данные, как они придут и распространяет изменения события в зарегистрированных наблюдателях.

Замечания о реактивном программировании. Технологический ландшафт / Хабрахабр. Почему следует использовать RxJava в Android – краткое введение в RxJava. Здравствуйте все.

Почему следует использовать RxJava в Android – краткое введение в RxJava

Мы продолжаем знакомить вас с нашим издательским поиском, и хотели прозондировать общественное мнение на тему RxJava. В ближайшее время собираемся опубликовать более общий материал по реактивному программированию, которое нас также интересует не первый год, а сегодня предлагаем почитать о применении RxJava в Android, так как именно на этой платформе особенно важна динамичность и быстрота реагирования. Добро пожаловать под кат В большинстве приложений Android мы реагируем на действия пользователя (щелчки, смахивание, т.д.), а тем временем в фоновом режиме идет какая-то другая работа (сетевая). Оркестровка всех этих процессов – сложная задача, любой код рискует быстро превратиться в бесформенную кашу. Например, не так просто послать по сети запрос к базе данных, а после его выполнения сразу начать одновременно выбирать и пользовательские сообщения, и настройки, а после завершения всей этой работы вывести приветственное сообщение.

Основы реактивного программирования под Android на практическом примере. Используем RxJava и Retrofit на Android, учитывая поворот экрана. Решил я однажды таки попробовать дико популярный нынче Rx.

Используем RxJava и Retrofit на Android, учитывая поворот экрана

А заодно и Retrofit. И посмотреть, как с их помощью реализовать стандартную задачу: получить с сервера набор данных, отобразить их и при этом ничего не терять при поворотах экрана и не делать лишних запросов. Первый вариант у меня получился сразу почти — просто взял и вызвал cache() на Observable, получаемый из синглтона, но он меня не устраивал — для принудительного обновления приходилось, по какой-то причине, пересоздавать экземпляры классов Retrofit и его же реализации моего интерфейса для API. Пересоздание же самого Observable эффекта не давало — всегда возвращались старые данные вместо запуска нового сетевого запроса и получения новых данных. После долгих мучений с новой для себя технологией выяснил, что во всём был виновен cache() (точнее, наверное, моё неправильное оного понимание). Итак, приступим. Немного о Stream API(Java 8) / Хабрахабр. Небольшая статья с примерами использования Stream API в Java8, которая, надеюсь, поможет начинающим пользователям освоить и использовать функционал.

Немного о Stream API(Java 8) / Хабрахабр

Часто Stream API в Java8 используется для работы с коллекциями, позволяя писать код в функциональном стиле. Удобство и простота методов способствуют интересу к данному функционалу у разработчиков с момента его выхода. Итак, что такое Stream API в Java8? «Package java.util.stream» — «Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections». Попробую дать свой вариант перевода, фактически это — поддержка функционального стиля операций над потоками, такими как обработка и «свёртка» обработанных данных.

Operators. Observable. Bolein/Intro-To-RxJava: Углубленный русскоязычный туториал по RxJava. The Art of Rx / Блог компании JUG.ru Group. Проблема, друзья.

The Art of Rx / Блог компании JUG.ru Group

Реактивщина везде, её слишком много и уже никому от неё не спрятаться. Мы с вами все умеем написать ASyncTask, Service или ContentProvider (я в это верю!). Все можем повернуть битмапу или сгонять на сервер за данными. Это все довольно очевидно. Но ещё МЫ ДУМАЕМ, что можем готовить реактивищну правильно. Введение в RxJava: Создание последовательности. Теперь, когда мы понимаем основные принципы Rx, настало время научиться создавать и управлять последовательностями.

Стиль управления последовательностями был позаимствован у оригинального C# LINQ, который в свою очередь был вдохновлен функциональным программироанием. Мы поделим все операции по темам, которые отсортированы в порядке возрастания сложности операций. Разбираемся с многопоточностью в RxJava / Хабрахабр. Writing a custom reactive base type. Android Dev Подкаст: Реактивщина от А до Я в Android (RXJava) Выпуск пятый. RXJava Серьезный разговор о реактивном программировании. Advanced RxJava: Operator-fusion (Part 1) Feedly. Read more, know more. Parallel execution of blocking tasks with RxJava and Completable. ” How parallel execution of blocking “side-effect only” (aka void) tasks became easier with Completable abstraction introduced in RxJava 1.1.1. “ As you may have noticed reading my blog I primarily specialize in Software Craftsmanship and automatic code testing.

However, in addition I am an enthusiast of Continuous Delivery and broadly defined concurrency. Advanced RxJava: FlatMap (part 1) Introduction In this blog post, I begin to explain the outer and inner properties of the most used, misunderstood and at the same time, one of the most complex operator there is: flatMap. FlatMap is most useful because it let's you replace simple values with something that can change the output in terms of time, location and value count.

FlatMap is misunderstood because it is introduced late, not enough time is spent demonstrating it and often surrounded with functional programming technoblabble. M.habrahabr. Всем добрый день! Приблизительно месяц назад я писал статью об организации пагинации списков (RecyclerView) с помощью RxJava. Что есть пагинация по-простому? Это автоматическая подгрузка данных к списку при его прокрутке. Решение, которое я представил в той статье было вполне рабочее, устойчивое к ошибкам в ответах на запросы по подгрузке данных и устойчивое к переориентации экрана (корректное сохранение состояния). Но благодаря комментариям хабровчан, их замечаниям и предложениям, я понял, что решение имеет ряд недостатков, которые вполне по силам устранить. Первым делом избавимся от PublishSubject, а за место него создадим Observable, который будет «эмитить» при наступлении заданного условия, то есть когда пользователь доскроллит до определенной позиции. Введение в RxJava: Жизненный цикл подписки / Хабрахабр.

Одна из главных идей, лежащих в основе Rx, заключается в том, что неизвестно когда именно последовательность выдаст новое значение или завершится. Однако, у нас есть возможность управлять временем в которое мы начнем или закончим получать эти значения. К тому же, если наши подписчики используют внешние ресурсы, то мы вероятно захотим освободить их по окончанию некой последовательности.

Home · ReactiveX/RxAndroid Wiki. Froussios/Intro-To-RxJava. Введение в RxJava, часть первая – Вступление: Почему Rx? 23 октября в 16:48 Этот цикл статей предназначен для знакомства начинающего реактивного программиста с мощью библиотеки RxJava ˜— реализации принципов реактивного программирования для JVM. Это перевод обширного туториала по RxJava Крисса Фруссиоса, основанного на IntroToRx для Rx.NET. Для следования этой обучающей программе от вас не потребуются знания реактивного или функционального программирования, однако, предполагается наличие базовых знаний Java. Материал этих статей расчитан на прочтение от начала до конца. Его обьем больше, чем среднего туториала, но меньше чем реальной книги. Intro to Rx - Aggregation. Data is not always valuable is its raw form. Sometimes we need to consolidate, collate, combine or condense the mountains of data we receive into more consumable bite sized chunks. Consider fast moving data from domains like instrumentation, finance, signal processing and operational intelligence.

RxJava Observable tranformation: concatMap() vs flatMap() After a while I decided that was time to get back for some writing. Reark/reark. Home · ReactiveX/RxAndroid Wiki. RxJava Threading Examples - Evolvable Me. I recently used RxJava while creating an add-on for Stash, the Git repository management tool from Atlassian. Android. Пару слов об MVP + rxJava. Advanced RxJava. Реактивное программирование в Android - ppApp. Rxjava. Введение в RxJava, часть первая – Вступление: Ключевые типы / Хабрахабр. RxJava доставляет, Артём Зиннатуллин (Яндекс) — События Яндекса. Доклад Rx java. Реактивное программирование под Android / Блог компании 2ГИС.

Java 8 в Android со Stream API и лямбдами. Грокаем* RxJava, часть первая: основы. RxJava. Борьба с вызовами суровой действительности.