Retrofit. Часть 1. Основы [RU] / Мобильный разработчик

  Рет қаралды 36,648

Mobile Developer

Mobile Developer

Күн бұрын

Пікірлер: 115
@ЮлияПоступинская
@ЮлияПоступинская 4 жыл бұрын
Спасибо за видео! Самые крутые уроки в сети! Пожалуйста, не останавливайтесь)
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо! Не останавливаюсь )
@BuyukIlhom
@BuyukIlhom 3 жыл бұрын
Как всегда на высшем уровне! Спасибо за видео, хотелось бы посмотреть ретрофит+рум+корутины+flow
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо, это уже практика какая-то )
@user-sankarsana
@user-sankarsana 4 жыл бұрын
Отлично! Было бы круто увидеть всё это на корутинах и флоу.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо )) Будет и такое
@tequilaonelove
@tequilaonelove 4 жыл бұрын
Спасибо за ваше видео, было интересно, ждем вторую часть.=) Хотелось бы добавить немного для зрителей, что при создании `data сlass Quest List Item()` как в примере в видео допустим, но при работе с каким нибудь публичным API или же со своим сервером, не стоит забывать о том, что весь запрос может "улететь в труху" , если какого-либо ключа в json (в ответе на GET/POST запрос) по какой то неведомой причине не будет или же будет не тот тип значения у ключа, что мы ожидаем, для примера, вместо внутри questSubtitle типа String нам прилетит внезапно тип null или еще лучше 0 типа Int. Гореть таким API разработчикам в аду =))). Очень часто сталкивался с различными проблемами при работе. Хорошо помогает ручной, беглый мониторинг запросов через тот же "Postman" и последующее приведение типа нужной переменной, например: (val questSubtitle : String) к `nullable` типу (val questSubtitle : String?) и прочие извращения и махинации). Так что если кто-то будет строить свой сервис или "апишку", обязательно не забывайте про стандарты! В дальнейшем очень помогут вам сэкономить кучу времени и избавят от дебага и копания внутри json' ки, особенно когда ответ от API будет в пару десятков или сотен ключей.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Хорошее замечание прям. Есть такая проблема действительно. Очень часто даже такое бывает. И действительно это все решается правильной архитектурой с разделением на слои. И как раз самый нижний слой принимает апи с нуллабельными полями. Причем мы делаем в Леруа все поля нуллабельные на всякий случай, а дальше их маппим внутри слоя с бизнес-логикой
@ДмитрийНаумов-ю7н
@ДмитрийНаумов-ю7н 4 жыл бұрын
Для Android Studio есть плагин, который создает data-классы из JSON-ответа. Называется JSON To Kotlin Class.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Хм )) прикольно, спасибо )
@kafychannel
@kafychannel 4 жыл бұрын
Вы продолжаете меня радовать)))
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Это радует, спасибо )
@Бананб-г4щ
@Бананб-г4щ 4 жыл бұрын
Спасибо большое за видео,с нетерпением ждём вторую часть))
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Да, будет) как бы еще успевать все это )))
@ЕгорИванов-г7э
@ЕгорИванов-г7э 3 жыл бұрын
Спасибо за видео! Много мелких нюансов разобрано, все четко и по делу.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо )
@agentr227
@agentr227 3 жыл бұрын
Идеальное объяснение темы. Респект!
@ИльшатБиккузин
@ИльшатБиккузин 3 жыл бұрын
Как новичку было очень иртересно и полезно!
@natalieg1736
@natalieg1736 3 жыл бұрын
офигенно, очень понятно, быстро и цельно. идеально, чтобы быстро вспомнить retrofit:)
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо! )
@andrewgladkov9191
@andrewgladkov9191 4 жыл бұрын
О, как раз недавно разбирал Ретрофит. Посмотрим что усвоил, спасибо
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Напишите потом, как вам )
@ДаниилЗубаков-ю4в
@ДаниилЗубаков-ю4в 3 жыл бұрын
Алексей, когда вторая часть? 5 месяцев ждем)) Видео очень полезное, благодарю!
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Пишу сценарий )
@karjicohd1m0nd
@karjicohd1m0nd 3 жыл бұрын
Спасибо за видео, как всегда все классно, на первом запуске недосмотрел потому что не понимал какого фига запросы не уходят, по итогу создал интерцептор с хэдером, а потом вернулся к видосу. а ты мою проблему уже решил через 5 минут
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Пожалуйста)
@ЮрійБережний-с7ъ
@ЮрійБережний-с7ъ 4 жыл бұрын
Как я и просил) Спасибо большое!
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Пожалуйста :)
@asynchaizer
@asynchaizer 4 жыл бұрын
Эх, когда-то дико не хватало подобных видео. Думаю стоит записать видео с отправкой файла на серв, MultipartBody, пару слов о GET vs POST + PATCH vs PUT + DELETE, подрубка прокси, авторизация, если ещё HARD'а, можно научить кидать запросы в сеть "вручную", без Retrofit'а, сказать про Rest vs GraphQL, хотя, возможно, это уже лишнее. Контент топ)
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо, интересное предложение )
@ЭрланАлмаз
@ЭрланАлмаз 4 жыл бұрын
Супер! Спасибо! расскажите пожалуйста про авторизацию и токены
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Попробую )
@vitaliy2020
@vitaliy2020 3 жыл бұрын
на 15:30 мы наследуемся от Application - чтобы наш ретрофит клиент создался один раз , и мы его использовали из любой точки нашей программы? Это синглтон, но без проверки на нулл и статик полей, я правильно понял?
@andreychesnovitskiy5350
@andreychesnovitskiy5350 4 жыл бұрын
Спасибо. Хотелось бы узнать побольше про аутентификацию с помощью интерсептора.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо за идею
@Данил-о1в
@Данил-о1в 3 жыл бұрын
Оч подробный и крутой видос, автору уважение!) Спасибо
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо )
@tkasymuulu89
@tkasymuulu89 4 жыл бұрын
Зд-те! Покажите как работать с корутинами в связке с ретрофитом.
@tequilaonelove
@tequilaonelove 4 жыл бұрын
есть пример с github: github.com/MindorksOpenSource/Retrofit-Kotlin-Coroutines-Example , можете посмотреть, изучить. Всё довольно просто.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Покажу ) В следующем видео
@rdevl1
@rdevl1 4 жыл бұрын
@@MobileDeveloper Когда примерно выйдет?)
@Размысл
@Размысл 3 жыл бұрын
Интереснейший ролик! Вот только ссылки на гитхаб категорически не хватает в описании. Из за мелкого шрифта разбирать на экране крайне сложно, и даже если его увеличить, такие ссылки совсем не помешают всем роликам, как прошлым, так и будущим.
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Спасибо большое за обратную связь, постараюсь так и делать. Проблема тут в том, что часто хочется какие-то вещи показывать в существующем проекте, чтобы показать так сказать реальный боевой опыт. А их выложить не всегда могу
@dendor2291
@dendor2291 4 жыл бұрын
Здравствуйте. Было бы интересно увидеть в следующем уроке про авторизацию.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Интересная мысль )
@dmytromarchuk3023
@dmytromarchuk3023 4 жыл бұрын
Спс за видео. Было бы интересно увидеть следующее. Допустим есть метод для логина и после успеха присылается токен. Далее этот токен юзается в запросах. В определенный момент токен заэкспайрится и его нужно будет обновить. Интересно, как бы Вы это реализовали.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Да, будет в следующей части )
@kafychannel
@kafychannel 4 жыл бұрын
Спасибо за песни вашего друга из soundcloud))
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Пожалуйста :)
@almazkadyrov523
@almazkadyrov523 4 жыл бұрын
Если бы это видео года полтора назад бы вышло, ты бы спас одну жизнь.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Ну надеюсь спасу еще несколько жизней тех, кто только начал ))
@pavlosoia
@pavlosoia 4 жыл бұрын
использую еще с ретрофитом либу chucker. Реально удобно для дебага. Все запросы видно в шторке в телефоне (естественно это делаю только для дебаг билдов)
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Не пробовал, спасибо за наводку)
@avcd
@avcd 2 жыл бұрын
Лучший
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Спасибо)
@androidkotlin-6234
@androidkotlin-6234 2 жыл бұрын
Спасибо за видео, я стал чуточку умнее.
@maasiliy2002
@maasiliy2002 4 жыл бұрын
Спасибо за курс
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Пожалуйста)
@bolnoi8
@bolnoi8 3 жыл бұрын
SerializedName надо писать всегда, потому что как только дойдёт дело до прогуарда, начнётся боль
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Интересный нюанс, не думал об этом, но вообще да рефакторинг случайный туда же в копилку
@05Sambist
@05Sambist 4 жыл бұрын
Лучший!👍👍👍
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо ))
@9etsamoe431
@9etsamoe431 4 жыл бұрын
Умеете, могете!
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо
@ДмитрийРыжов-о4б
@ДмитрийРыжов-о4б 3 жыл бұрын
Спасибо за видео! Во время просмотра появился вопрос , если у нас есть несколько BASE URL, как в таком случае работать с одним инстансом Retrofit? и при этом не указывая полный URL в запросе?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
А зачем тут именно один instance? Это принципиально условие? В таком случае обычно несколько инстансов создается и все
@sonyevans5182
@sonyevans5182 4 жыл бұрын
Большое спасибо
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Пожалуйста )
@РожковАндрей-х8ш
@РожковАндрей-х8ш 4 жыл бұрын
Спасибо за видео! А Вы Hilt не используете в своей практике?
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо, пока нет, но видео будет по этому поводу ) Специально изучу)
@Embedded_Developer
@Embedded_Developer 4 жыл бұрын
В #ТОП!!!!
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Спасибо )
@МаксимТолстобров-э9х
@МаксимТолстобров-э9х 4 жыл бұрын
Алексей, а почему бы не использовать плагин RoboPOJOGenerator? Руками создавать модели ответа от сервера, это вроде как извращение) а если будет json с 100+ переменными? Я не претендую на премию капитана очевидность, или может это делается просто в учебных целях.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
А откуда генератор берет названия полей? В него типа JSON надо загрузить? Это не всегда есть гуд ) он не всегда точно создаёт нужные классы, как это принято в код стайле команды и так далее. Иногда быстрее написать чем крутить плагины ) в этом видео как раз такой вот случай. Если полей реально 100 то да беру один из онлайн генераторов и потом уже его допиливаю
@МаксимТолстобров-э9х
@МаксимТолстобров-э9х 4 жыл бұрын
@@MobileDeveloper да в него JSON грузится, который можно получить хоть постменом, хоть каким то другим сервисом для тестирования запросов. Просто, я сам работаю с интернет магазином и порой, когда пишешь запросы для личных данных пользователей, это не только имя и фамилия, а данные бонусной программы, личные акции, и прочее, получается огромный JSON и кучей массивов и объектов, проще генератором воспользоваться, и в целом генерация меня лично не разу не подводила, во всяком случае при использовании данного плагина.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
А у вас нет в команде договорённостей вроде все модели с сервера должны заканчиваться на Remote или что-то вроде того? И как плагин работает с sealed class и enum?
@СергейПанов-з3ц
@СергейПанов-з3ц 4 жыл бұрын
Спасибо. Покажите как писать кастомные десериализаторы. К примеру когда с сервера приходит "кривой" json, как его преобразовывать в классы, или когда часть json'а нужно десериализовать в enum классы или generic'и.
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Хм, про дженерики интересно, а вот когда приходит кривой json, то надо понять, что вы имеете ввиду под "кривой"? Не формат json? Не те поля? Что вы имеете ввиду?)
@georg.sabantchiev
@georg.sabantchiev 3 жыл бұрын
А можно обзор на все библиотеки аналогичные Ретрофиту и их сравнение? Ну а если все они хуже, то объяснение, почему хуже. Или другими словами, почему Ретрофит лучше своих аналогов (конкурентов).
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Про ktor есть видео на канале, можете посмотреть
@syndicate820
@syndicate820 2 жыл бұрын
Привет, вторая часть в работе?)
@MobileDeveloper
@MobileDeveloper 2 жыл бұрын
Она на канале уже
@MrLOLs1
@MrLOLs1 4 жыл бұрын
Спасибо
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Пожалуйста)
@ХалилГамидов-ы1к
@ХалилГамидов-ы1к 3 жыл бұрын
не совсем понято зачем фрагменты и фрагмент контайнер в активити мейн если ничего не выводится на экран
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Дважды перечитал, потом понял ) Хз, не помню уже)
@khametoff6386
@khametoff6386 3 жыл бұрын
Крутяк)
@podo_x2
@podo_x2 4 жыл бұрын
Об Interceptor'ах и Authenticator'ах расскажи
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Окей )
@mr.z3813
@mr.z3813 4 жыл бұрын
Здравствуйте, будут ли видео про Koin ?
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Пока нет в планах
@honey7460
@honey7460 3 ай бұрын
Где 3-я часть?
@jojomajo
@jojomajo 3 жыл бұрын
почему гита нет в описании?
@хечпеч
@хечпеч 3 жыл бұрын
Подскажите пожалуйста как сделать так, чтобы из MainActivity задавать параметр baseUrl
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
А для каких целей?
@МаксимБогомолов-с4з
@МаксимБогомолов-с4з 3 жыл бұрын
не подскажите как лучше передавать apikey, через запрос(@QUERY) или есть вариант получше?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Есть вариант получше через Interceptors ) будет во второй части видео )
@podo_x2
@podo_x2 4 жыл бұрын
Не могу понять разницу между com.squareup.okhttp3:okhttp-urlconnection и com.squareup.okhttp3:okhttp
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Я тоже...
@9etsamoe431
@9etsamoe431 4 жыл бұрын
Вы на видео ускоряете набор кода или реально так быстро печатаете?
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Реально так быстро печатаю
@saharozanosugar7029
@saharozanosugar7029 3 жыл бұрын
А где 2 часть? и можно вывести эти данные в RecyclerView, например
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Я был в процессе съёмок, но заболел. Это первое видео на доделку как поправлюсь
@andriyshatynskyy5214
@andriyshatynskyy5214 3 жыл бұрын
Видео Топ, но я так понял что 2 часть не вышла?
@MobileDeveloper
@MobileDeveloper 3 жыл бұрын
Я начал делать, но, к сожалению, заболел короной. Как только поправлюсь доделаю
@andriyshatynskyy5214
@andriyshatynskyy5214 3 жыл бұрын
@@MobileDeveloper супер, буду ждать. желаю скорейшего выздоровления)))
@maksympavlenko5305
@maksympavlenko5305 2 жыл бұрын
я могу создать клиент сервак для того чтоб связать ESP8266 и моб приложение ?
@maksympavlenko5305
@maksympavlenko5305 2 жыл бұрын
используя эту библотеку
@yarobest9594
@yarobest9594 4 жыл бұрын
1
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
И что это вам дает?)
@yarobest9594
@yarobest9594 4 жыл бұрын
@@MobileDeveloper просто люблю так делать) тема интересная, у меня как раз девушка начинает изучать разработку под андроид, полюбопытствуем, что там у вас)
@MobileDeveloper
@MobileDeveloper 4 жыл бұрын
Вот, покажите ей) Может поможет)
@ВиталийМельниченко-ч1е
@ВиталийМельниченко-ч1е 2 жыл бұрын
Спасибо!
@oleg12395
@oleg12395 2 жыл бұрын
Спасибо !
I thought one thing and the truth is something else 😂
00:34
عائلة ابو رعد Abo Raad family
Рет қаралды 16 МЛН
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 8 МЛН
SIZE DOESN’T MATTER @benjaminjiujitsu
00:46
Natan por Aí
Рет қаралды 8 МЛН
Возможности OkHttp о которых вы не знали
22:54
Android Broadcast. Все об Андроид разработке
Рет қаралды 18 М.
python проверить номер телефона phonenumbers
6:34
Андрей codIT
Рет қаралды 4,2 М.
How Retrofit works. Java Dynamic Proxy. Library architecture [RU]
29:24
Android Broadcast. Все об Андроид разработке
Рет қаралды 19 М.
API автотесты с нуля Retrofit | QA Automation
31:06
Koin в Android на практике c MVVM
28:08
Тимофей Коваленко
Рет қаралды 24 М.
I thought one thing and the truth is something else 😂
00:34
عائلة ابو رعد Abo Raad family
Рет қаралды 16 МЛН