Привет, Алексей . Спасибо за видео по андроид. Давно смотрю вас и как - то уютно становится от просмотра ваших видео - уроков. Особенно песня в начале видео 0:15 просто великолепна. Помню, я писал вам около года назад, чтобы найти эту музыку, вам написал её друг и вы скидывали ссылку на icloud , если мне не изменяет память))
Я вот что думаю такой полезный канал, столько ценной информации для разработчиков и так мало подписчиков. И я знаю почему так, это не потому что информация какая-то не та или ещё что-то. Это потому что многие даже не догадываются о существовании это канала даже не имеют понятия что есть канал на котором они найдут почти все что ищут. Я сам на самом деле с трудом нашел тебя, притом что запросы по android kotlin и тд достаточно давно отправляю и ютуб очень долго не давал вообще какого-либо намека что такой канал есть. Вот в чем прикол, очень очень много людей не могут найти этот канал в принципе( Я думаю что тут без какого-либо вмешательства из вне не обойтись, тут имеется ввиду что нужно распространять информацию о канале, даже в комментариях общаетесь, где то пишите что есть такой канал, чтобы люди могли знать что есть такой клад информации) И думаю что небольшая рекламная интеграция тоже не помешает, возможно на хабре статейку стоит запилить или что-то вроде этого (возможно она уже есть а я и не знаю((
Хотя я почти всё знал, есть чувство что етот видос был очень полезен, так держать! Правда очень качественно всё расказанно. Под каждым видосом 1 лайк мой :)
Класс. Видео кнч, можно было сократить мин на 10 - 15, если убрать процесс решения сложных ситуаций, и оставить результат с пояснением, но тема действительно большая. Спасибо за труд! Вроде все понятно, но сразу все в голове не уложится, нужна практика. Если еще принимаешь пожелания, то я пока не увидел заголовка среди твоих видео о Dagger и о Retrofit, судя по вакансиям - это довольно популярные фреймворки, и если лично мне понятно (примерно) как работает retrofit, то dagger - это вообще что-то за гранью понимания начинающим андроидщиком (вроде меня). По-этому если еще не снимал о них, то было бы интересно увидеть уроки на эти темы. А если снимал, то я обязательно до них доберусь, как разберусь с rxjava и корутинами. =)
Спасибо за развёрнутый отзыв :) практика - ключ к успеху ) насчёт Dagger есть видео и на канале и есть ещё патреон там есть дополнительные видео в том числе и по даггеру, но уже по современному
Годнота! Алексей, не хватает фирменных камешковых rx диаграм. С помощью них ты бы гораздо лучше смог подать материал 👍🏻 Но и сейчас всё очень хорошо. Грокаю реактивщину с помощью книги "Реактивное программирование с применением RxJava", параллельно с ней твои видео очень хорошо заходят. Спасибо!
@@MobileDeveloper возможно я что то не понял, сложилось впечатление, что имеется ввиду, что тип может быть только тот, что и поступил на вход ( но не важно, это мелочи, спасибо за контент, очень помогает узнать новое, и повспоминать старое)
Некоторые операторы есть в самом нативном котлине (да и джаве 8 вроде бы тоже), если кто-то еще не знает. Тот же мап очень помогает экомить код при работе с коллекциями, как и фильтр
48:41 не очень понятно как fromArray сделать. Попробовал, scan не работает тогда, подчеркивает красным. Много чего перепробовал но так и не понял как решить данную проблему((
@@MobileDeveloper , немного не по теме вопрос. Я не могу получить данные с помощью retrrofit, rxjava. Когда пишу другой запрос и все остальное остается одинаковым ответ приходит. И еще, когда я использую библиотеку Volley все работает. HTTP FAILED: java.net.SocketTimeoutException: timeout
Если не сложно, объясните пожалуйста почему данные от текст вью не попадали в онсабскрайб, все из за того что созданный источник уже на main thread и его не возможно перевести на другой поток или почему то еще? я не особо понял. За уроки спасибо, отличные краткие выжимки из огромных тем прям то что нужно чтобы заполнить пробелы в знаниях
Создавать observable оператором just, а потом писать SubscribeOn... ObserveOn... не имеет никакого смысла, так как всё выполнится в потоке в котором выполнится subscribe. 3 часть не смотрел, но надеюсь Вы там затронете тему того не все операторы создания observable поддерживают распараллеливание потоков.
Настройте удаление строки по shift+delete, это спасает кучу времени. По шагам: Идем в менеджер шорткатов (Setting -> Keymap), ищем там delete line, задаем горячую клавишу shift+delete - готово. Почти, она будет занята, просто переопределите.
Хороший вопрос, ну могу сказать здесь следующее. 1) Очень много проектов до. сих пор работают на. Java 2) Очень много проектов были написаны с использованием RX и это все надо поддерживать. 3) Вопрос вкуса.
Насколько знаю Rx зародился в недрах Netflix и майкрософт для работы с большим потоком данных. Следовательно если использовать Rx то уже во всем приложении или не юзать вообще. К тому же библиотека доступна на многих языках, чего не сказать про корутины. Корутины могут взаимодействовать с Rx
Круто подаешь материал. Вопрос возник как лучше делать в ситуации, когда нужно запросить данные и для каждого элемента данных запросить еще определенные данные? Ниже привожу, как получилось у меня, но как будто что то не то. 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; }); }
Очень круто объясняешь тяжелые вещи) Хотелось бы посмотреть уроки по чистой архитектуре от тебя.
Спасибо ) да архитектура тоже будет ))
плюс. очень хочется это послушать. там куча нюансов.
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 !
Хороший звук, хорошая подача материала, примеры.
Спасибо большое вам!)
Класс. Видео кнч, можно было сократить мин на 10 - 15, если убрать процесс решения сложных ситуаций, и оставить результат с пояснением, но тема действительно большая. Спасибо за труд! Вроде все понятно, но сразу все в голове не уложится, нужна практика.
Если еще принимаешь пожелания, то я пока не увидел заголовка среди твоих видео о Dagger и о Retrofit, судя по вакансиям - это довольно популярные фреймворки, и если лично мне понятно (примерно) как работает retrofit, то dagger - это вообще что-то за гранью понимания начинающим андроидщиком (вроде меня). По-этому если еще не снимал о них, то было бы интересно увидеть уроки на эти темы. А если снимал, то я обязательно до них доберусь, как разберусь с rxjava и корутинами. =)
Спасибо за развёрнутый отзыв :) практика - ключ к успеху ) насчёт Dagger есть видео и на канале и есть ещё патреон там есть дополнительные видео в том числе и по даггеру, но уже по современному
@@MobileDeveloper отлично! Поищу, посмотрю...мне бы хотя бы суть понять, а там дело практики...
Бро, так просто объяснил сложные вещи, большое спасибо
Спасибо)
Спасибо большое за отличные уроки!!! Просто лучший
Пожалуйста )
Алексей, респект тебе. Былибы деньги - дал бы)
Спасибо ) вы можете поддержать канал и другим способом. Просто разместите понравившееся видео у себя в соц сетях это будет огромная помощь
Шикарный урок!
Спасибо )
Годнота!
Алексей, не хватает фирменных камешковых rx диаграм. С помощью них ты бы гораздо лучше смог подать материал 👍🏻 Но и сейчас всё очень хорошо.
Грокаю реактивщину с помощью книги "Реактивное программирование с применением RxJava", параллельно с ней твои видео очень хорошо заходят. Спасибо!
Спасибо большое!)
Огромное спасибо за урок, очень полезно!
Пожалуйста :)
Всё круто, но с map ошибка в видео 19:35, мы можем возвращать другой тип, например с маппить ДТОшки в Домейн и тд)
Имелось ввиду, что мы не можем маппить сингл в обсервабл
@@MobileDeveloper возможно я что то не понял, сложилось впечатление, что имеется ввиду, что тип может быть только тот, что и поступил на вход ( но не важно, это мелочи, спасибо за контент, очень помогает узнать новое, и повспоминать старое)
@@n.konshin да нет, именно его слова вы правильно поняли, он говорит что если на входе стринг, на выходе инт не может получится, тоже удивился
все очень круто. спасибо. подача немножко похожа как на канале koding in flow, если кому интересно посмотрите очень хорошо изьясняет.
Спасибо!
Хороший канал, мне нравится
Нажал колокольчик
Спасибо большое!)
Автоматический лайк
Спасибо! :)
Некоторые операторы есть в самом нативном котлине (да и джаве 8 вроде бы тоже), если кто-то еще не знает.
Тот же мап очень помогает экомить код при работе с коллекциями, как и фильтр
О, шикардос)
Спасибо!
Крутое видео! Есть еще такая сущность Subject и ее реализация BehaviorSubject. Она в некоторых случаях показалась мне удобной, интересно твое мнение
Долго (очень долго) думал, что про это написать ) Здесь я думаю проще видео сделать чтоб рассказать про эти сущности
Думаю во время объяснения, вместо фона логичнее демонстрировать что то , те же диаграммы из документации вполне подойдут. В остальном все хорошо.
Я понимаю это желание, но это существенно увеличит время монтажа. А я хотел бы больше времени посвятить видео
48:41 не очень понятно как fromArray сделать. Попробовал, scan не работает тогда, подчеркивает красным. Много чего перепробовал но так и не понял как решить данную проблему((
С array я помню тоже возился, а вы не пробовали в лист собрать observable?
Спасибо за видео) побольше подписчиков тебе)
Спасибо большое, да было бы неплохо ))
@@MobileDeveloper , немного не по теме вопрос. Я не могу получить данные с помощью retrrofit, rxjava. Когда пишу другой запрос и все остальное остается одинаковым ответ приходит. И еще, когда я использую библиотеку Volley все работает. HTTP FAILED: java.net.SocketTimeoutException: timeout
Используй логгирование в okhttp клиенте посмотри что уходит и что приходит я думаю сразу поймёшь в чем дело
после добавления двух заголовков проблема исчезла
Здравствуйте, Алексей. Расскажите пожалуйста про Handler, Looper и MessageQueqe
Была такая мысль, но все не успеваю.
1:09:00 зажав alt можно выделять строки по вертикали)
Спасибо, воспользуюсь )
Лайк неглядя)))) ща заценим...
Спасибо! ) Ваша активность это то что двигает канал вперед )
если не вызывать dispose() в onDestroy(), что произойдет тогда с Disposable после уничтожения Activity?
Интересный вопрос ) по идее ничего не произойдёт ) но зависит от того что у вас в ветках находится
Что за музыка играет на фоне?
Спасибо за видео!
Часть 3 будет по объединению потоков данных (zip, concat ...)?
Да про это и ещё там про разные штуки
Если не сложно, объясните пожалуйста почему данные от текст вью не попадали в онсабскрайб, все из за того что созданный источник уже на main thread и его не возможно перевести на другой поток или почему то еще? я не особо понял. За уроки спасибо, отличные краткие выжимки из огромных тем прям то что нужно чтобы заполнить пробелы в знаниях
Спасибо ) а можете таймметку сказать?
@@MobileDeveloper ua-cam.com/video/Z0vB_TlvJJ4/v-deo.html
Вопрос про дистинкт, если бы прайс был бы дата классом, все равно бы все вывел?
Аа лол, поторопился )))
спасибо за урок. У меня один вопрос․ Если я использую Single имеет смысл вызвать dispose в onDestroy ?
Да имеет смысл потому что в момент запроса внезапно может быть вызван onDestroy
Больше уроков по Rx!
а в чем плюсы котлина в отличие от жавы?
Там масса фишек, когда-нибудь сделаю видео на эту тему
Норм
Спасибо! )
hashCode не интересует distinct, только equals там играет роль
Я уже плохо помню, что я там сказал )
39:39 никакой магии, я все также делаю)) а то многие корчат из себя гениев, будто они все с первого раза понимают и кодят без ошибок
Да я стараюсь показывать и моменты где не получается )
Создавать observable оператором just, а потом писать SubscribeOn... ObserveOn... не имеет никакого смысла, так как всё выполнится в потоке в котором выполнится subscribe. 3 часть не смотрел, но надеюсь Вы там затронете тему того не все операторы создания observable поддерживают распараллеливание потоков.
К сожалению, дальше я эту тему не затрагивал, а надо было бы, наверное. Насчёт just да все верно, не помню уже почему я там так написал.
Мне кажется, проще делать так, чем юзать метод add():
composeBag += Observable.just(...)...
Да вы правы )
@@MobileDeveloper ух ты, круто!
Мало того что очень классный материал, ещё и обратная связь есть)
Спасибо, MD!!!
👌👍
Настройте удаление строки по shift+delete, это спасает кучу времени. По шагам:
Идем в менеджер шорткатов (Setting -> Keymap), ищем там delete line, задаем горячую клавишу shift+delete - готово. Почти, она будет занята, просто переопределите.
Спасибо большое! Настрою
зачем в котлине RX, если есть корутины?
Хороший вопрос, ну могу сказать здесь следующее. 1) Очень много проектов до. сих пор работают на. Java 2) Очень много проектов были написаны с использованием RX и это все надо поддерживать. 3) Вопрос вкуса.
@@MobileDeveloper А то что корутины ещё сырые (т.е. не могут тоже что и rxjava) это правда или нет?
Ну они в релизе насколько я помню. Корутины более легковесны а программисты зачастую даже 5% возможностей RX не юзают
Насколько знаю Rx зародился в недрах Netflix и майкрософт для работы с большим потоком данных. Следовательно если использовать Rx то уже во всем приложении или не юзать вообще. К тому же библиотека доступна на многих языках, чего не сказать про корутины. Корутины могут взаимодействовать с Rx
Это в любом случае инструмент. И то инструмент и то инструмент. Как удобно так и надо использовать. Очень часто функционала корутин вполне достаточно.
skipLast() может использовать для поиска игнорируя окончания слов. Если написать Конь, покажет Кони, Коня, Коней и тд
Спасибо ) Круто!
Круто подаешь материал. Вопрос возник как лучше делать в ситуации, когда нужно запросить данные и для каждого элемента данных запросить еще определенные данные?
Ниже привожу, как получилось у меня, но как будто что то не то.
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
str.toLowerCase().contains( "a") -> можно короче:
str.contains( "a", true) // (ignoreCase = true)
Да сейчас так делаю уже
Всё через ж в жаве
Transformation, filter - 80мин???? Часть 2???????
Или видео названо не правильно, или это такая вода.... Мой диплом отдыхает
Хоспади да вам не угодишь. Одному слишком короткое видео другому слишком длинное. Да не нравится не смотрите. Я вас сюда силой что ли тащу?
Алексей, подскажи, пожалуйста, почему у меня нет метода textChanges для EditText?
Если я правильно помню, то я его демонстрировал в нашем Леруа Мерлен проекте и там это extension function. То есть ее написать надо )
@@MobileDeveloper понял) В любом случае, спасибо за видео ;)
Пожалуйста )
Спасибо!