RxJava - Transformation, Filter. Полный обзор. Часть 2 [RU, Android] / Мобильный разработчик
Вставка
- Опубліковано 6 вер 2024
- Всем привет. Наконец-таки я подошел к обзору одной из самых сложных библиотек для Андроид. Видео будет в нескольких частях, поэтому если вы что-то не увидели здесь - оно будет в следующих выпусках.
Мобильный разработчик в других соц. сетях
=======================
Вконтакте - mdeveloper
Instagram - / nplau
=======================
Наши друзья и информационные партнеры:
t.me/androidev - Телеграмм канал, посвященный разработке для Андроид!
Стать Патроном канала и получить доступ к уникальному материалу
/ mobiledeveloper
Поддержать канал рублем:
PayPal - alexgladkov@icloud.com
Mastercard - 5536 9137 9985 0652
Полезные ссылки
=======================
RxJava. 1 Часть. - • RxJava - Observable, F...
Dagger 2 - • Dagger 2 - @Provides, ...
Moxy - • Moxy - View, Presenter...
Ставь лайк, подписывайся и пиши, чтобы ты хотел увидеть в следующих видео.
00:18:16 - практика Transforming 1 (map, flatMap, switchMap, contactMap)
00:32:34 - теория Transforming 2 (buffer, groupBy, scan)
00:34:45 - практика Transforming 2 (buffer, groupBy, scan)
00:49:45 - теория Filtering (debounce, distinct, elementAt, filter, ignoreElements, sample, skip, skipLast, take, takeLast)
01:00:21 - практика Filtering (debounce, distinct, elementAt, filter, ignoreElements, sample, skip, skipLast, take, takeLast)
самаые адекватные уроки на ютубе продолжай бро)
Jetpack разбери пожалуйста
Спасибо большое, окей записал!
Очень круто объясняешь тяжелые вещи) Хотелось бы посмотреть уроки по чистой архитектуре от тебя.
Спасибо ) да архитектура тоже будет ))
плюс. очень хочется это послушать. там куча нюансов.
Огромное спасибо за выпуски! Не останавливайтесь!)
Спасибо ) не планирую останавливаться ))
Привет, Алексей . Спасибо за видео по андроид. Давно смотрю вас и как - то уютно становится от просмотра ваших видео - уроков. Особенно песня в начале видео 0:15 просто великолепна. Помню, я писал вам около года назад, чтобы найти эту музыку, вам написал её друг и вы скидывали ссылку на icloud , если мне не изменяет память))
Спасибо)
Я вот что думаю такой полезный канал, столько ценной информации для разработчиков и так мало подписчиков. И я знаю почему так, это не потому что информация какая-то не та или ещё что-то. Это потому что многие даже не догадываются о существовании это канала даже не имеют понятия что есть канал на котором они найдут почти все что ищут. Я сам на самом деле с трудом нашел тебя, притом что запросы по android kotlin и тд достаточно давно отправляю и ютуб очень долго не давал вообще какого-либо намека что такой канал есть. Вот в чем прикол, очень очень много людей не могут найти этот канал в принципе( Я думаю что тут без какого-либо вмешательства из вне не обойтись, тут имеется ввиду что нужно распространять информацию о канале, даже в комментариях общаетесь, где то пишите что есть такой канал, чтобы люди могли знать что есть такой клад информации) И думаю что небольшая рекламная интеграция тоже не помешает, возможно на хабре статейку стоит запилить или что-то вроде этого (возможно она уже есть а я и не знаю((
Да, наверное. Я особо не парюсь на счёт распространения. Но если вы поделитесь каналом я буду очень благодарен )
@@MobileDeveloper пиарю везде где только можно)
Спасибо большое ))
Хотя я почти всё знал, есть чувство что етот видос был очень полезен, так держать! Правда очень качественно всё расказанно. Под каждым видосом 1 лайк мой :)
Спасибо!
Спасибо!
Отличная подача теории + практические примеры. Спасибо, рад что открыл для себя Ваш канал.
Спасибо вам большое!)
Спасибо, добрый человек!
Пожалуйста )
thank you so much !
1:09:00 зажав alt можно выделять строки по вертикали)
Спасибо, воспользуюсь )
Хороший звук, хорошая подача материала, примеры.
Спасибо большое вам!)
все очень круто. спасибо. подача немножко похожа как на канале koding in flow, если кому интересно посмотрите очень хорошо изьясняет.
Спасибо!
Думаю во время объяснения, вместо фона логичнее демонстрировать что то , те же диаграммы из документации вполне подойдут. В остальном все хорошо.
Я понимаю это желание, но это существенно увеличит время монтажа. А я хотел бы больше времени посвятить видео
Алексей, респект тебе. Былибы деньги - дал бы)
Спасибо ) вы можете поддержать канал и другим способом. Просто разместите понравившееся видео у себя в соц сетях это будет огромная помощь
Некоторые операторы есть в самом нативном котлине (да и джаве 8 вроде бы тоже), если кто-то еще не знает.
Тот же мап очень помогает экомить код при работе с коллекциями, как и фильтр
Всё круто, но с map ошибка в видео 19:35, мы можем возвращать другой тип, например с маппить ДТОшки в Домейн и тд)
Имелось ввиду, что мы не можем маппить сингл в обсервабл
@@MobileDeveloper возможно я что то не понял, сложилось впечатление, что имеется ввиду, что тип может быть только тот, что и поступил на вход ( но не важно, это мелочи, спасибо за контент, очень помогает узнать новое, и повспоминать старое)
@@n.konshin да нет, именно его слова вы правильно поняли, он говорит что если на входе стринг, на выходе инт не может получится, тоже удивился
Спасибо большое за отличные уроки!!! Просто лучший
Пожалуйста )
Бро, так просто объяснил сложные вещи, большое спасибо
Спасибо)
Класс. Видео кнч, можно было сократить мин на 10 - 15, если убрать процесс решения сложных ситуаций, и оставить результат с пояснением, но тема действительно большая. Спасибо за труд! Вроде все понятно, но сразу все в голове не уложится, нужна практика.
Если еще принимаешь пожелания, то я пока не увидел заголовка среди твоих видео о Dagger и о Retrofit, судя по вакансиям - это довольно популярные фреймворки, и если лично мне понятно (примерно) как работает retrofit, то dagger - это вообще что-то за гранью понимания начинающим андроидщиком (вроде меня). По-этому если еще не снимал о них, то было бы интересно увидеть уроки на эти темы. А если снимал, то я обязательно до них доберусь, как разберусь с rxjava и корутинами. =)
Спасибо за развёрнутый отзыв :) практика - ключ к успеху ) насчёт Dagger есть видео и на канале и есть ещё патреон там есть дополнительные видео в том числе и по даггеру, но уже по современному
@@MobileDeveloper отлично! Поищу, посмотрю...мне бы хотя бы суть понять, а там дело практики...
Огромное спасибо за урок, очень полезно!
Пожалуйста :)
Годнота!
Алексей, не хватает фирменных камешковых rx диаграм. С помощью них ты бы гораздо лучше смог подать материал 👍🏻 Но и сейчас всё очень хорошо.
Грокаю реактивщину с помощью книги "Реактивное программирование с применением RxJava", параллельно с ней твои видео очень хорошо заходят. Спасибо!
Спасибо большое!)
Крутое видео! Есть еще такая сущность Subject и ее реализация BehaviorSubject. Она в некоторых случаях показалась мне удобной, интересно твое мнение
Долго (очень долго) думал, что про это написать ) Здесь я думаю проще видео сделать чтоб рассказать про эти сущности
Здравствуйте, Алексей. Расскажите пожалуйста про Handler, Looper и MessageQueqe
Была такая мысль, но все не успеваю.
39:39 никакой магии, я все также делаю)) а то многие корчат из себя гениев, будто они все с первого раза понимают и кодят без ошибок
Да я стараюсь показывать и моменты где не получается )
Шикарный урок!
Спасибо )
Мне кажется, проще делать так, чем юзать метод add():
composeBag += Observable.just(...)...
Да вы правы )
@@MobileDeveloper ух ты, круто!
Мало того что очень классный материал, ещё и обратная связь есть)
Спасибо, MD!!!
👌👍
Автоматический лайк
Спасибо! :)
О, шикардос)
Спасибо!
Создавать observable оператором just, а потом писать SubscribeOn... ObserveOn... не имеет никакого смысла, так как всё выполнится в потоке в котором выполнится subscribe. 3 часть не смотрел, но надеюсь Вы там затронете тему того не все операторы создания observable поддерживают распараллеливание потоков.
К сожалению, дальше я эту тему не затрагивал, а надо было бы, наверное. Насчёт just да все верно, не помню уже почему я там так написал.
Спасибо за видео!
Часть 3 будет по объединению потоков данных (zip, concat ...)?
Да про это и ещё там про разные штуки
Настройте удаление строки по shift+delete, это спасает кучу времени. По шагам:
Идем в менеджер шорткатов (Setting -> Keymap), ищем там delete line, задаем горячую клавишу shift+delete - готово. Почти, она будет занята, просто переопределите.
Спасибо большое! Настрою
Хороший канал, мне нравится
Нажал колокольчик
Спасибо большое!)
Лайк неглядя)))) ща заценим...
Спасибо! ) Ваша активность это то что двигает канал вперед )
Спасибо за видео) побольше подписчиков тебе)
Спасибо большое, да было бы неплохо ))
@@MobileDeveloper , немного не по теме вопрос. Я не могу получить данные с помощью retrrofit, rxjava. Когда пишу другой запрос и все остальное остается одинаковым ответ приходит. И еще, когда я использую библиотеку Volley все работает. HTTP FAILED: java.net.SocketTimeoutException: timeout
Используй логгирование в okhttp клиенте посмотри что уходит и что приходит я думаю сразу поймёшь в чем дело
после добавления двух заголовков проблема исчезла
Больше уроков по Rx!
а в чем плюсы котлина в отличие от жавы?
Там масса фишек, когда-нибудь сделаю видео на эту тему
Норм
Спасибо! )
спасибо за урок. У меня один вопрос․ Если я использую Single имеет смысл вызвать dispose в onDestroy ?
Да имеет смысл потому что в момент запроса внезапно может быть вызван onDestroy
hashCode не интересует distinct, только equals там играет роль
Я уже плохо помню, что я там сказал )
Вопрос про дистинкт, если бы прайс был бы дата классом, все равно бы все вывел?
Аа лол, поторопился )))
Если не сложно, объясните пожалуйста почему данные от текст вью не попадали в онсабскрайб, все из за того что созданный источник уже на main thread и его не возможно перевести на другой поток или почему то еще? я не особо понял. За уроки спасибо, отличные краткие выжимки из огромных тем прям то что нужно чтобы заполнить пробелы в знаниях
Спасибо ) а можете таймметку сказать?
@@MobileDeveloper ua-cam.com/video/Z0vB_TlvJJ4/v-deo.html
skipLast() может использовать для поиска игнорируя окончания слов. Если написать Конь, покажет Кони, Коня, Коней и тд
Спасибо ) Круто!
str.toLowerCase().contains( "a") -> можно короче:
str.contains( "a", true) // (ignoreCase = true)
Да сейчас так делаю уже
если не вызывать dispose() в onDestroy(), что произойдет тогда с Disposable после уничтожения Activity?
Интересный вопрос ) по идее ничего не произойдёт ) но зависит от того что у вас в ветках находится
Что за музыка играет на фоне?
Алексей, подскажи, пожалуйста, почему у меня нет метода textChanges для EditText?
Если я правильно помню, то я его демонстрировал в нашем Леруа Мерлен проекте и там это extension function. То есть ее написать надо )
@@MobileDeveloper понял) В любом случае, спасибо за видео ;)
Пожалуйста )
48:41 не очень понятно как fromArray сделать. Попробовал, scan не работает тогда, подчеркивает красным. Много чего перепробовал но так и не понял как решить данную проблему((
С array я помню тоже возился, а вы не пробовали в лист собрать observable?
Круто подаешь материал. Вопрос возник как лучше делать в ситуации, когда нужно запросить данные и для каждого элемента данных запросить еще определенные данные?
Ниже привожу, как получилось у меня, но как будто что то не то.
public Single getAll()
{
return mProgramRepository.getAll().map(programs -> {
mProgramTemplateInteractor.getAll().subscribe(programTemplates ->
{
for (Program program : programs)
{
ProgramTemplate programTemplate = ProgramTemplate.find(program.getTemplateId(), programTemplates);
program.setProgramTemplate(programTemplate);
}
});
return programs;
});
}
Спасибо! Используйте оператор zipWith
зачем в котлине RX, если есть корутины?
Хороший вопрос, ну могу сказать здесь следующее. 1) Очень много проектов до. сих пор работают на. Java 2) Очень много проектов были написаны с использованием RX и это все надо поддерживать. 3) Вопрос вкуса.
@@MobileDeveloper А то что корутины ещё сырые (т.е. не могут тоже что и rxjava) это правда или нет?
Ну они в релизе насколько я помню. Корутины более легковесны а программисты зачастую даже 5% возможностей RX не юзают
Насколько знаю Rx зародился в недрах Netflix и майкрософт для работы с большим потоком данных. Следовательно если использовать Rx то уже во всем приложении или не юзать вообще. К тому же библиотека доступна на многих языках, чего не сказать про корутины. Корутины могут взаимодействовать с Rx
Это в любом случае инструмент. И то инструмент и то инструмент. Как удобно так и надо использовать. Очень часто функционала корутин вполне достаточно.
Всё через ж в жаве
Transformation, filter - 80мин???? Часть 2???????
Или видео названо не правильно, или это такая вода.... Мой диплом отдыхает
Хоспади да вам не угодишь. Одному слишком короткое видео другому слишком длинное. Да не нравится не смотрите. Я вас сюда силой что ли тащу?
Спасибо!
Пожалуйста )