Научная статья на тему 'ПРИМЕНЕНИЕ ИНСТРУМЕНТА "RETROFIT" ПРИ РАЗРАБОТКЕ ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ ПОД ОПЕРАЦИОННУЮ СИСТЕМУ ANDROID'

ПРИМЕНЕНИЕ ИНСТРУМЕНТА "RETROFIT" ПРИ РАЗРАБОТКЕ ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ ПОД ОПЕРАЦИОННУЮ СИСТЕМУ ANDROID Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
45
4
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАЗРАБОТКА / ПРИЛОЖЕНИЕ / ПРОГРАММНЫЙ ИНТЕРФЕЙС ПРИЛОЖЕНИЯ / РЕПОЗИТОРИЙ / RETROFIT / DEVELOPMENT / APPLICATION / APPLICATION PROGRAMMING INTERFACE / REPOSITORY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Казаков И. А., Якимчук А. В.

Данная статья посвящена проблемам при разработке программного обеспечения. В частности, будет поднята проблема по затрате большого количества сил и времени разработчиком при разработке программного продукта. И исследованию возможности применения инструмента «Retrofit 2» для отправки и получения ответа от сервера по API, который должен позволить сэкономить время и силы. Исследование будет вестись в рамках разработки мобильного приложения под операционную систему Android. Все примеры использования библиотеки «Retrofit 2» в рамках исследования будут приведены в статье.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLICATION OF THE "RETROFIT" TOOL IN THE DEVELOPMENT OF THE SOFTWARE UNDER THE ANDROID OPERATING SYSTEM

This article deals with problems in software development. In particular, the problem will be raised on the expenditure of a large amount of time and effort by the developer in developing a software product. And the study of the possibility of using the tool “Retrofit 2” to send and receive a response from the server via the API, which should allow to save time and effort. The study will be conducted as part of the development of a mobile application for the Android operating system. All examples of the use of the library "Retrofit 2" in the framework of the study will be given in the article.

Текст научной работы на тему «ПРИМЕНЕНИЕ ИНСТРУМЕНТА "RETROFIT" ПРИ РАЗРАБОТКЕ ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ ПОД ОПЕРАЦИОННУЮ СИСТЕМУ ANDROID»

УДК 004.4'22

Казаков И.А. студент 3 курс

факультет «Информационных технологий и информатики»

Якимчук А.В. студент магистратуры 1 курс факультет «Информационных технологий и информатики» Поволжский государственный университет телекоммуникаций и информатики

Россия, г. Самара

ПРИМЕНЕНИЕ ИНСТРУМЕНТА «RETROFIT» ПРИ РАЗРАБОТКЕ ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ ПОД ОПЕРАЦИОННУЮ

СИСТЕМУ ANDROID

Аннотация: Данная статья посвящена проблемам при разработке программного обеспечения. В частности, будет поднята проблема по затрате большого количества сил и времени разработчиком при разработке программного продукта. И исследованию возможности применения инструмента «Retrofit 2» для отправки и получения ответа от сервера по API, который должен позволить сэкономить время и силы. Исследование будет вестись в рамках разработки мобильного приложения под операционную систему Android. Все примеры использования библиотеки «Retrofit 2» в рамках исследования будут приведены в статье. Ключевые слова: разработка, приложение, программный интерфейс приложения, репозиторий, retrofit.

Kazakov I.A. student 3 course

faculty of "Information Technology and Informatics"

Yakimchuk A. V. master student

1 course, faculty of "Information Technology and Informatics" Volga State University of Telecommunications and Informatics

Russia, Samara

APPLICATION OF THE "RETROFIT" TOOL IN THE DEVELOPMENT OF THE SOFTWARE UNDER THE ANDROID OPERATING SYSTEM.

Annotation: This article deals with problems in software development. In particular, the problem will be raised on the expenditure of a large amount of time and effort by the developer in developing a software product. And the study of the possibility of using the tool "Retrofit 2 " to send and receive a response from the server via the API, which should allow to save time and effort. The study will be conducted as part of the development of a mobile application for the Android operating system. All examples of the use of the library "Retrofit 2" in the framework of the study will be given in the article.

Keywords: development, application, application programming interface, repository, retrofit.

Главным предметом исследования в данной статье является библиотека «Retrofit 2». Согласно официальному сайту разработчика данного инструмента, «Retrofit 2» — это типобезопасный HTTP-клиент. Он является отличным инструментом для работы с API (application programming interface) в клиент-серверных приложениях.

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

Само приложение, в рамках которого будет проводиться исследование будет написано на языке программирования Kotlin и будет работать с сервисом Яндекс Переводчик.

Цель исследования - зафиксировать и сравнить время, затраченное на написание кода без каких-либо инструментов и с применением «Retrofit 2» и выяснить даёт ли «Retrofit 2» выигрыш по времени.

1. Исследования начнём с добавления зависимостей в файл build.gradle:

dependencies {

compile "com.squareup. retrofit2:retrofit:2.3.0 " compile "com.squareup.retrofit2:adapter-rxjava2:2.3.0" compile "com.squareup.retrofit2:converter-gson:2.3.0"

}

2. Следующим шагом необходимо добавить класс данных.

Первым таким станет класс, который является промежуточным хранилищем между данными, введёнными пользователем, и сервером.

data class TranslatedData( val id: String, val langTrans: String, val textForTrans: String, val translatedText: String

)

Вторым станет класс, в виде которого будет принят ответ от сервера.

data class Result ( val code: Int, val lang: String, val text: String

)

3. Следующим шагом нужно написать API интерфейс, который будет использоваться для формирования запросов и получения ответов. interface

YandexTranslatorApiService {

@GET("search/ TranslatedData ") companion object Factory { fun create(): YandexTranslatorApiService { val retrofit = Retrofit.Builder()

. addCallAdapterFactory(RxJava2CallAdapterFactory. create()) . addConverterFactory(GsonConverterFactory. create()) . base Url("https://translate.yandex. ru/") .build()

return retrofit.create(GithubApiService::class.java) } } }

4. Далее для большей абстракции процессов нужно создать репозиторий, который обрабатывает вызов YandexTranslatorApiService и формирует запрос.

class SearchRepository(val apiService: GithubApiService) { fun searchUsers(location: String, language: String): Observable<Result> { return apiService.search(query= "textForTrans:$langTrans +textForTrans:$ textForTrans ") }}

5. Напоследок необходимо ввести и передать данные в репозиторий для формирования запроса.

val repository = SearchRepositoryProvider.provideSearchRepository() repository.searchYandexTranslator ("ru-en ", "Hi!") .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers. io()) .subscribe ({ result ->

Log.d("Result", ${result.items.size}) }, { error ->

error.printStackTrace()}) Подведение итогов исследования:

1. Время, затраченное на написания серверной части без каких -либо инструментов, составило 90 минут;

2. Время, затраченное на написания серверной части с применением «Retrofit 2», составило 30 минут.

В заключении стоит отметить, что «Retrofit 2» даёт 3-ёх кратный выигрыш по времени. Это означает, что его применение при разработки программного продукта под операционную систему Android полностью оправданно.

Использованные источники:

1. http:// square. github. io/retrofit/

2. https://developer.android.com/guide/

i Надоели баннеры? Вы всегда можете отключить рекламу.