Retrofit — библиотека для работы с REST API

In this Android RecyclerView tutorial, learn how to use Kotlin to display datasets of a large or unknown size!

About this course

Операционная система Android стала бесспорным лидером на мобильных устройствах. На момент создания данного курса под ее управлением было выпущено более двух миллиардов устройств для которых было написано более трех миллионов приложений. Поэтому, каждый разработчик мобильных приложений и игр вынужден поддерживать Android, если хочет добиться успеха.

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

В курсе будут рассмотрены основы синтаксиса  Kotlin, синтаксические конструкции для создания программ в процедурном и объектно-ориентированном стиле. Будут раскрыты основные отличия мобильной разработки от разработки под такие платформы как ПК и ноутбуки. Для мобильных приложений будут подробно рассмотрены наиболее существенные ограничения, с которыми необходимо считаться для эффективной работы приложения на реальных устройствах. Кроме того, будет дан краткий обзор архитектуры ОС Android, показано как настроить среду для разработки. Также будет подробно рассмотрен состав исходных кодов мобильных приложений на Kotlin, способы их запуска и отладки. В завершении будут рассмотрены основные принципы построения мобильных пользовательских интерфейсов, а также подробно рассказано как самостоятельно проектировать и программировать UI.

По окончанию курса вы сможете создавать мобильные приложения для ОС Android с простым пользовательским интерфейсом. Также вы получите базовые знания языка Kotlin и сможете разрабатывать утилиты командной строки.

Читайте также:  Что такое уровень SAR в телефоне: таблица уровня излучений смартфонов

Курс не претендует на звание учебника по Kotlin — дается необходимый минимум материала для того, чтобы начать писать мобильные приложения на этом языке. Для более подробного изучения Kotlin мы рекомендуем курс Максима Бесогонова

Курс подразумевает определенный объем самостоятельной работы с документацией. Для решения некоторых заданий вам потребуется самостоятельно изучить методы работы с объектами Kotlin / Android.

Комментарии

28 июня 2016 17:55 Azamat Murzagalin

Why did u use GitResult instead of GitHubUser in response callback? What is this GitResult class?

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

30 июня 2016 09:54 Администратор

Sorry, of course it is my typo. I corrected the article. Thank you for comment.

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

8 августа 2016 15:28 Gadzhi S

Тут не все параметры указаны при вызове public void onResponse(Response response) { И тут опечатка isSuccessful надо вместо isSuccess

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

7 июля 2017 00:33 Сергей

Статья полное дерьмо. Нет полного кода классов. Это необходимо для понимания новичкам. Более подробно с полным кодом и разбором загрузки XML читайте тут:

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

20 июля 2017 21:07 Администратор

Да, статья конечно простая. Ещё раз повторюсь, что это перевод. Но так критично отзываться о чужом труде, по крайней мере, не этично. На хабре бы уже давно прилетело НЛО, затёрло бы Ваш коммент и забанило бы Вашу учётную запись. Хотя откуда Вам знать, скорей всего с таким подходом, Вас просто не пускают на Хабр) Статья на Vogella, конечно более полная, но на тот момент, когда я занимался переводом этой статьи, я бы просто напросто не осилил статью с Vogella.

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

20 июля 2017 10:51 Саха

Читайте также:  Как дешифровать сообщения WhatsApp из резервной копии на Android и iOS

слизали с хабра…и то не все вот полная статья

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

20 июля 2017 20:58 Администратор

Если бы вы были повнимательней, то увидели, что перевод здесь появился ещё в феврале 2016 года, в то время как на хабре он появился значительно позже) К сожалению, в то время я не оставлял ссылки на переводы и не так тщательно выбирал контент. Но сейчас, я стараюсь переводить действительно интересные материалы, чтобы такие как вы молодцы хоть чему то учились)

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

26 февраля 2018 21:00 Алексей

Спасибо за статью, Антон! В наше время очень много неблагодарных людей, которые конкретно так зажрались 🙂 Не обращайте внимания.

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии

«Уроки Kotlin» от itProger

Пройти курс

Длительность: 12 уроков с бессрочным доступом.

Сертификат: нет.

Формат обучения: видеоуроки, материал для самостоятельного изучения, тестовые задания.

Программа обучения: рассчитана на слушателей, желающих освоить язык Kotlin с нуля. Курс поможет понять основы языка, и научиться использовать его для создания Android-приложений.

Какие знания и навыки получите:

«Уроки Kotlin» от itProger
  • Переменные и типы данных.
  • Создание классов и объектов.
  • Создание и применение функций.
  • Работа с массивами данных.
  • Работа с классами, объектами, интерфейсами.
  • Разработка простой программы

Плюсы:

  • Материал доступен без регистрации.
  • Прохождение в удобное время.
  • Каждый урок сопровождается примерами.

Минусы:

  • Выполнять задания и получать консультации можно только после оплаты подписки.

Описание API

Описание запросов к серверу происходит в интерфейсе. Над каждым методом должна стоять аннотация, с помощью которой Retrofit «узнает», какого типа с помощью аннотаций можно указывать параметры запроса.

Вот так, например, выглядит описание GET-запроса:

import ; import ; public interface API { @GET(«/v1/users») Response getUsers(); }

Как видите, нам не нужно указывать адрес сайта, который отправляется запрос, нужно лишь указать расположение самого PHP файла на сервере (позже объясню почему). В классе Response содержится информация о статусе запроса и ответ от сервера.

А вот так выглядит POST-запрос:

Читайте также:  Hard Reset Samsung: полный сброс настроек

import ; import ; public interface API { @POST(«/v1/registration») Response registerUser(); }

Можно изменять путь к файлу динамически:

@GET(«/{version}/users») Response getUsers(@Path(«version») String version);

Retrofit заменит слово «{version}» на, то которое вы передали методу. Сам аргумент должен быть аннотирован словом Path и в скобках нужно указать ключевое слово.

Параметры запроса

Тут тоже нет ничего сложного:

@GET(«/v1/users») Response getUsers(@Query(«gender») String gender);

Для того, чтобы задать запросу параметры используется аннотация @Query. Слово указанное в скобках рядом с аннотацией будет ключом, а аннотированый аргумент значением.

Синхронные и асинхронные запросы

У вас есть два способа отправки запроса: синхронный и асинхронный. Для синхронной отправки запроса нужно вынести его в отдельный поток. Пример синхронной отправки запроса:

@GET(«/users/{id}») Response getUserInfo(@Path(«id») int id);

В ассинхронном запросе метод ничего не возвращает (void), но обязательно должен принимать на вход объект интерфейса Callback<T>. В качестве параметра интерфейса нужно передать тип возвращаемого объекта. Вот пример ассинхронного запроса:

@GET(«/users/{id}») void getUserInfo(@Path(«id») int id, Callback<Response> cb);

Превращаем интерфейс в API

После того, как мы описали все запросы к серверу в интерфейсе нужно передать этот интерфейс специальному классу, который обработает этот интерфейс и сгенерирует код запросов.

RestAdapter restAdapter = new () .setEndpoint(«»)//В метод setEndpoint передаем адрес нашего сайта .build(); API service = ();

Выше я писал, что при описании запроса адрес сайта указывать не нужно, достаточно указать его в методе setEndpoint и Retrofit сам подставит его в начале адреса запроса

❌ Недостатки

Низ­кая ско­рость. Чаще все­го раз­ра­бот­чи­ки жалу­ют­ся на непред­ска­зу­е­мую ско­рость ком­пи­ля­ции. По быст­ро­дей­ствию Kotlin усту­па­ет Java, посколь­ку в его осно­ве лежит вир­ту­аль­ная маши­на JVM — фун­да­мен­таль­ная про­грам­ма, выпу­щен­ная спе­ци­аль­но под язык Java, а не под Kotlin.

Дру­гие нюан­сы смот­ри­те в твит­те­ре Дани­и­ла Попо­ва — андроид-инженера Ави­то, кото­рый изу­ча­ет Kotlin на прак­ти­ке и рас­ска­зы­ва­ет о све­жих тех­ни­че­ских багах.