Обзор существующих программных средств

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к производственной практике

на тему «Мобильное приложение переводчик на основе API Яндекса»

Автор проекта (работы) __________________ А.В. Филиппов

подпись

Направление/специальность, профиль/специализация:

09.03.04 «Программная инженерия»

Группа ВПР31

Руководитель практики: __________________ доцент О.А. Золотых

Подпись

Проект (работа) защищен(а): _________ _________

дата оценка подпись

Ростов-на-Дону

2017

Обзор существующих программных средств - student2.ru

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГООБРАЗОВАНИЯ

«ДОНСКОЙ ГОСУДАРСВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ДГТУ)

Кафедра «Программное обеспечение вычислительной техники

и автоматизированных систем»

Заведующий кафедрой«ПОВТиАС»

_______________ А.Н.Карапетянц

« » 2017г.

ЗАДАНИЕ

на производственную практику

Студент Филиппов Александр Владимирович Код 09.03.04 Группа ВПР31

Тема «Мобильное приложение переводчик на основе API Яндекса»

Срок предоставления отчета к защите «___» _______ 20___г.

Руководитель работы: __________________ О.А. Золотых

подпись,дата

Задание принял к исполнению: ________________ А.В. Филиппов

подпись,дата

Ростов-на-Дону

АННОТАЦИЯ

Отчет включает: страниц – 44; рисунков – 6; блок-схем – 3; приложений – 3; таблиц – 6.

Ключевые слова: ПЕРЕВОДЧИК, JAVA, ANDROID SDK, ANDROID STUDIO.

В работе было проведено исследование предметной области, найдены и изучены существующие аналоги, разрабатываемого программного средства. Описаны базовые классы и построена UML-диаграмма на их основе. Сформулированы основные алгоритмы работы программы и блок-схемы.



СОДЕРЖАНИЕ

ВВЕДЕНИЕ..................................................................................................... 6

1 Обзор предметной области.......................................................................... 8

1.1 Обзор существующих программный средств...................................... 8

1.2 Постановка задачи............................................................................... 10

2 Алгоритмическое конструирование.......................................................... 11

2.1 Общий алгоритм работы программы................................................ 11

2.2 Алгоритм добавления новой записи.................................................. 11

2.3 Алгоритм поиска сохраненных паролей............................................ 12

3 Программное проектирование................................................................. 12

3.1 Обоснование выбора средств разработки.......................................... 12

3.2 Основные модули программного средства........................................ 13

3.2.1 Класс Manager............................................................................. 14

3.2.2 Класс DpApi................................................................................ 14

3.2.3 Класс FormMaster....................................................................... 15

3.2.4 Класс FileUtils............................................................................. 16

3.2.5 Класс Crypto............................................................................... 16

3.3 UML-диаграмма классов..................................................................... 17

4 Тестирование работы программного средства........................................ 18

ЗАКЛЮЧЕНИЕ............................................................................................. 23

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ..................................... 24

ПРИЛОЖЕНИЕ А Пример работы............................................................. 25

ПРИЛОЖЕНИЕ Б Блок-схемы алгоритмов................................................. 30

ПРИЛОЖЕНИЕ В Листинг программы ..................................................... 33

ВВЕДЕНИЕ

Перевод (вид языкового посредничества, при котором содержание иностранного текста оригинала передается на другой язык путем создания на этом языке коммуникативно равноценного текста.(№ 7)) имеет долгую историю, он восходит к временам когда праязык начал распадаться на отдельные языки и возникла необходимость в людях, способных быть посредниками при общении представителей разных языковых общин. Коммуникативная равноценность понимается как способность переведенного текста выступать в качестве полноправной замены исходного текста.(№ 7). Коммуникативная эквивалентность нового текста по отношению к исходному обеспечивается следующим:

· передача содержания оригинала в полном объёме;

· соответствие текста перевода тексту оригинала по нормам языка перевода;

· текст перевода должен соответствовать оригиналу с точки зрения лаконичности и развернутости высказываний для достижения схожего стилистического эффекта. Также перевод должен быть примерно сопоставим по объёму.

Актуальность данной проблемы обусловлена тем, что история развития и внедрения в повседневную жизнь персональных компьютеров (способных осуществлять автоматический перевод) насчитывает не более пятнадцати – двадцати лет. Сегодня программы переводчики умеют строить осмысленные фразы и простые предложения, за последние несколько лет качество перевода улучшилось.

Обзор предметной области

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

Формы организации взаимодействия ЭВМ и человека при машинном переводе:

· c постредактированием: исходный текст перерабатывается машиной, а человек-редактор исправляет результат;

· c предредактированием: человек приспосабливает текст к обработке машиной (устраняет возможные неоднозначные прочтения, упрощает и размечает текст), после чего начинается программная обработка;

· c интерредактированием: человек вмешивается в работу системы перевода, разрешая трудные случаи;

· cмешанные системы (например, одновременно с пред- и постредактированием);

Яндекс переводчик

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

В службе используется самообучаемый алгоритм статистического машинного перевода, разработанный специалистами компании. Система строит свои словари соответствий на основе анализа миллионов переведённых текстов. Текст для перевода компьютер вначале сравнивает с базой слов, затем с базой моделей языка, стараясь определить смысл выражения в контексте.

По состоянию на июнь 2017 года доступен перевод для 94 языков. Направление перевода определяется автоматически. Возможны перевод отдельных слов, целых текстов и отдельных интернет-страниц (по ссылке). При ручном вводе текста система сама предлагает подсказки во всплывающем окне. Есть возможность двухоконного просмотра перевода и оригинала для веб-страниц. Помимо собственно машинного перевода, доступен и полный англо-русский и русско-английский словарь[7]. Имеется приложение для устройств на базe IOS, Windows phone и Android. Можно прослушать произношение перевода и оригинального текста.

Переводы предложений и слов можно добавлять в «Избранное» — соответствующий раздел располагается под полем ввода.

Переводчик от Яндекса, подобно другим инструментам автоматического перевода, имеет свои ограничения. Этот инструмент имеет целью помочь читателю понять общий смысл содержания текста на иностранном языке, он не предоставляет точных переводов. По словам руководителя сервиса Алейсея Байтина, сравнивать машинный перевод текста с литературным нельзя. Постоянно ведётся работа над качеством перевода, разрабатываются переводы на другие языки.

Google переводчик

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

В отличие от других сервисов перевода, таких, как Babel Fish и AOL, которые используют технологию SYSTRAN, Google использует собственное программное обеспечение. Видимо, используется самообучаемый алгоритм машинного. В марте 2017 года Google полностью перевела движок перевода на нейросети для более качественного перевода.

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

Google Переводчик, как и другие инструменты автоматического перевода, имеет свои ограничения. Этот инструмент может помочь читателю понять общий смысл содержания текста на иностранном языке, он не предоставляет точных переводов. Постоянно ведётся работа над качеством перевода, разрабатываются переводы на другие языки.
Из-за того, что выдача вариантов контролируется статистическим алгоритмом, при переводе обычных общеупотребительных слов Google Переводчик может предлагать в числе возможных вариантов нецензурные слова. На результат выдачи также можно повлиять, массово предлагая некий, в том числе заведомо неверный вариант перевода.

Google Переводчик предлагает перевод с любого поддерживаемого языка на любой поддерживаемый, но в большинстве случаев реально выполняет перевод через английский. Иногда качество от этого сильно страдает. Например, при переводе с польского на русский обычно нарушаются падежи (даже когда они в русском и польском одинаковы). Есть также языки, которые проходят двойной процесс обработки перевода сначала через близко-родственный язык, потом через английский.

Постановка задачи

Необходимо разработать приложение переводчик на основе Яндекс API. Для выполнения данной задачи необходимо разработать методы и функции по непосредственному взаимодействию пользователя с приложением. Стоит задача разработки следующих методов: получение списка поддерживаемых языков, перевод текста по выбранным языкам, добавление перевода в избранное. Подробное описание требований приведено в техническом задании в приложении А.

Целью данной работы было освоение основ работы с REST API, разработки под Android. Для реализации этой цели были поставлены следующие задачи:

· запрос списка поддерживаемых языков;

· кэширование списка поддерживаемых языков;

· перевод текста;

· добавление перевода в избранное;

· удаление перевода из избранного;

· поиск по избранному.

Алгоритм поиска в избранном

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

Программное проектирование

Класс RealmHelper

Этот класс отвечает за работу с базой данных Realm, а именно за запись и чтение истории и избранного и кэширование списка поддерживаемых языков.

В таблице 1 представлены основные методы класса RealmHelper.

Таблица 1 – «Методы класса RealmHelper»

Название Входные параметры Описание метода Возвращаемое значение
clearHistory - Очистка истории Observable<Boolean>
readAllSupportLanguages - Получение списка всех поддерживаемых языков List<Language>
readAllSupportLanguages - Получение списка всех поддерживаемых языков List<Language>
writeLanguageResponseToRealm Language language Запись языка в БД Void
writeTranslationToRealm Translation translation Запись перевода в БД Observable<Boolean>
clearFavorites - Очистка избранного Observable<Boolean>
getHistory - Получение списка истории List<Translation>
getFavorites - Получение списка избранного List<Translation>

Класс RepositoryImpl

Этот класс реализуюет паттерн «репозиторий», ответственнен за хранение и получение данных;

Методы класса RepositoryImpl представлены в таблице 2.

Таблица 2 – «Методы класса RepositoryImpl»

Название Входные параметры Описание метода Возвращаемое значение
saveTranslation - Сохранить перевод Observable<Boolean>
deleteFavorites - Удалить избранное Observable<Boolean>
deleteHistory - Удалить историю Observable<Boolean>
getFavorites - Получить избранное List<Translation>
getSupportLanguages String ui Возвращает наблюдателя, параметризированного списком поддерживаемых языков Observable<List<Language>>
translateWithoutDict String text, String lang Возвращает наблюдателя, параметризированного неподробным переводом Observable<Translation>
translate String text, String ui Возвращает наблюдателя, параметризированного подробным переводом Observable<Translation>

Класс SupportLangsGetter

Данный класс отвечает за получение поддерживаемых языков.

Методы класса SupportLangsGetter представлены в таблице 3.

Таблица 3 – «Методы класса SupportLangsGetter»

Название Входные параметры Описание метода Возвращаемое значение
getLanguages - Получение списка поддерживаемы языков Observable<List<Language>>

Класс TranslationGetter

Данный класс отвечает за получение перевода.

Методы класса TranslationGetter представлены в таблице 4.

Таблица 4 – «Методы класса TranslationGetter»

Название Входные параметры Описание метода Возвращаемое значение
translate Translation translation Получение перевода Observable<Translation>
getHistory - Получить историю List<Translation>

Продолжение таблицы 4

getFavorites - Получить избранное List<Translation>
deleteHistory - Удалить историю void
deleteFavorites - Удалить избранное void
saveTranslation Translation translation Сохранить перевод void

Класс DictionaryApi

Интерфейс для работы с веб-сервером Яндекс Словаря.

Методы класса DictionaryApi представлены в таблице 5.

Таблица 5 – «Методы класса DictionaryApi»

Название Входные параметры Описание метода Возвращаемое значение
getDictionary String key, String lang, String text, String ui Запрос на получение подробной словарной статьи Observable<DictionaryResponse>

Класс TranslateApi

Интерфейс для работы с веб-сервером Яндекс Переводчика

Методы класса TranslateApi представлены в таблице 5.

Таблица 6 – «Методы класса TrasnlateApi»

Название Входные параметры Описание метода Возвращаемое значение
getSupportLanguages String key, String ui Запрос на получение списка поддерживаемых языков Observable<SupportLanguageResponse>
translate String key, String text, String lang Запрос на получение перевода Observable<TranslationResponse>

UML-диаграмма классов

Обзор существующих программных средств - student2.ru
На рисунке 1 и 2 изображена UML-диаграмма классов, которая отображает структуру программного средства, методы основных классов, рабочие сигнатуры и связи между объектами классов.

Рисунок 1 – UML-диаграмма классов

Обзор существующих программных средств - student2.ru
Рисунок 2 – UML-диаграмма классов

ЗАКЛЮЧЕНИЕ

Разработано приложение переводчик, позволяющее пользователю в удобной форме переводить текст с одного языка на другой. В ходе выполнения практической работы, были освоены навыки использования фреймворка Android SDK, языка Java, библиотеки RxJava. Архитектура приложения реализована с помощью паттернов проектирования Model View Presenter (MVP) и Clean Architecture, взаимодействие с веб-сервером осуществлялось с помощью библиотеки Retrofit, кэширование с помощью ORM Realm.

Для работы с данным программным средством от пользователя не требуются какие-то особые навыки владения компьютером.

ПРИЛОЖЕНИЕ А

Техническое задание на программное средство

СОГЛАСОВАНО Доцент каф. «ПОВТ и АС» __________ О.А.Золотых   «____»___________2017 г. УТВЕРЖДЕНО Зав. каф. «ПОВТ и АС» ________ А.Н.Карапетянц   «____»___________2017 г.

А.1 Введение

А.1.1 Наименование программы

Название разрабатываемого программного средства - «Переводчик».

А.1.2 Область применения

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

А.1.3 Объект внедрения

Программное средство предназначено для работы на устройствах под управлением ОС Android.

А.2 Основания для разработки

Разработка проводится на основании задания на практику, для студентов факультета «Информатики и Вычислительной Техники» (ИиВТ) Донского Государственного Технического Университета (ДГТУ) по направлению «Программное обеспечение вычислительной техники и автоматизированных систем (ПОВТ и АС)», обучающихся по специальности 09.03.04 «Программная инженерия».

А.3 Назначение разработки

А.3.1 Функциональное назначение

Функциональное назначение состоит в упрощении работы пользователя с переводом текста.

ПРИЛОЖЕНИЕ Б

ПРИЛОЖЕНИЕ В

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к производственной практике

на тему «Мобильное приложение переводчик на основе API Яндекса»

Автор проекта (работы) __________________ А.В. Филиппов

подпись

Направление/специальность, профиль/специализация:

09.03.04 «Программная инженерия»

Группа ВПР31

Руководитель практики: __________________ доцент О.А. Золотых

Подпись

Проект (работа) защищен(а): _________ _________

дата оценка подпись

Ростов-на-Дону

2017

Обзор существующих программных средств - student2.ru

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГООБРАЗОВАНИЯ

«ДОНСКОЙ ГОСУДАРСВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ДГТУ)

Кафедра «Программное обеспечение вычислительной техники

и автоматизированных систем»

Заведующий кафедрой«ПОВТиАС»

_______________ А.Н.Карапетянц

« » 2017г.

ЗАДАНИЕ

на производственную практику

Студент Филиппов Александр Владимирович Код 09.03.04 Группа ВПР31

Тема «Мобильное приложение переводчик на основе API Яндекса»

Срок предоставления отчета к защите «___» _______ 20___г.

Руководитель работы: __________________ О.А. Золотых

подпись,дата

Задание принял к исполнению: ________________ А.В. Филиппов

подпись,дата

Ростов-на-Дону

АННОТАЦИЯ

Отчет включает: страниц – 44; рисунков – 6; блок-схем – 3; приложений – 3; таблиц – 6.

Ключевые слова: ПЕРЕВОДЧИК, JAVA, ANDROID SDK, ANDROID STUDIO.

В работе было проведено исследование предметной области, найдены и изучены существующие аналоги, разрабатываемого программного средства. Описаны базовые классы и построена UML-диаграмма на их основе. Сформулированы основные алгоритмы работы программы и блок-схемы.



СОДЕРЖАНИЕ

ВВЕДЕНИЕ..................................................................................................... 6

1 Обзор предметной области.......................................................................... 8

1.1 Обзор существующих программный средств...................................... 8

1.2 Постановка задачи............................................................................... 10

2 Алгоритмическое конструирование.......................................................... 11

2.1 Общий алгоритм работы программы................................................ 11

2.2 Алгоритм добавления новой записи.................................................. 11

2.3 Алгоритм поиска сохраненных паролей............................................ 12

3 Программное проектирование................................................................. 12

3.1 Обоснование выбора средств разработки.......................................... 12

3.2 Основные модули программного средства........................................ 13

3.2.1 Класс Manager............................................................................. 14

3.2.2 Класс DpApi................................................................................ 14

3.2.3 Класс FormMaster....................................................................... 15

3.2.4 Класс FileUtils............................................................................. 16

3.2.5 Класс Crypto............................................................................... 16

3.3 UML-диаграмма классов..................................................................... 17

4 Тестирование работы программного средства........................................ 18

ЗАКЛЮЧЕНИЕ............................................................................................. 23

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ..................................... 24

ПРИЛОЖЕНИЕ А Пример работы............................................................. 25

ПРИЛОЖЕНИЕ Б Блок-схемы алгоритмов................................................. 30

ПРИЛОЖЕНИЕ В Листинг программы ..................................................... 33

ВВЕДЕНИЕ

Перевод (вид языкового посредничества, при котором содержание иностранного текста оригинала передается на другой язык путем создания на этом языке коммуникативно равноценного текста.(№ 7)) имеет долгую историю, он восходит к временам когда праязык начал распадаться на отдельные языки и возникла необходимость в людях, способных быть посредниками при общении представителей разных языковых общин. Коммуникативная равноценность понимается как способность переведенного текста выступать в качестве полноправной замены исходного текста.(№ 7). Коммуникативная эквивалентность нового текста по отношению к исходному обеспечивается следующим:

· передача содержания оригинала в полном объёме;

· соответствие текста перевода тексту оригинала по нормам языка перевода;

· текст перевода должен соответствовать оригиналу с точки зрения лаконичности и развернутости высказываний для достижения схожего стилистического эффекта. Также перевод должен быть примерно сопоставим по объёму.

Актуальность данной проблемы обусловлена тем, что история развития и внедрения в повседневную жизнь персональных компьютеров (способных осуществлять автоматический перевод) насчитывает не более пятнадцати – двадцати лет. Сегодня программы переводчики умеют строить осмысленные фразы и простые предложения, за последние несколько лет качество перевода улучшилось.

Обзор предметной области

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

Формы организации взаимодействия ЭВМ и человека при машинном переводе:

· c постредактированием: исходный текст перерабатывается машиной, а человек-редактор исправляет результат;

· c предредактированием: человек приспосабливает текст к обработке машиной (устраняет возможные неоднозначные прочтения, упрощает и размечает текст), после чего начинается программная обработка;

· c интерредактированием: человек вмешивается в работу системы перевода, разрешая трудные случаи;

· cмешанные системы (например, одновременно с пред- и постредактированием);

Обзор существующих программных средств

Яндекс переводчик

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

В службе используется самообучаемый алгоритм статистического машинного перевода, разработанный специалистами компании. Система строит свои словари соответствий на основе анализа миллионов переведённых текстов. Текст для перевода компьютер вначале сравнивает с базой слов, затем с базой моделей языка, стараясь определить смысл выражения в контексте.

По состоянию на июнь 2017 года доступен перевод для 94 языков. Направление перевода определяется автоматически. Возможны перевод отдельных слов, целых текстов и отдельных интернет-страниц (по ссылке). При ручном вводе текста система сама предлагает подсказки во всплывающем окне. Есть возможность двухоконного просмотра перевода и оригинала для веб-страниц. Помимо собственно машинного перевода, доступен и полный англо-русский и русско-английский словарь[7]. Имеется приложение для устройств на базe IOS, Windows phone и Android. Можно прослушать произношение перевода и оригинального текста.

Переводы предложений и слов можно добавлять в «Избранное» — соответствующий раздел располагается под полем ввода.

Переводчик от Яндекса, подобно другим инструментам автоматического перевода, имеет свои ограничения. Этот инструмент имеет целью помочь читателю понять общий смысл содержания текста на иностранном языке, он не предоставляет точных переводов. По словам руководителя сервиса Алейсея Байтина, сравнивать машинный перевод текста с литературным нельзя. Постоянно ведётся работа над качеством перевода, разрабатываются переводы на другие языки.

Google переводчик

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

В отличие от других сервисов перевода, таких, как Babel Fish и AOL, которые используют технологию SYSTRAN, Google использует собственное программное обеспечение. Видимо, используется самообучаемый алгоритм машинного. В марте 2017 года Google полностью перевела движок перевода на нейросети для более качественного перевода.

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

Google Переводчик, как и другие инструменты автоматического перевода, имеет свои ограничения. Этот инструмент может помочь читателю понять общий смысл содержания текста на иностранном языке, он не предоставляет точных переводов. Постоянно ведётся работа над качеством перевода, разрабатываются переводы на другие языки.
Из-за того, что выдача вариантов контролируется статистическим алгоритмом, при переводе обычных общеупотребительных слов Google Переводчик может предлагать в числе возможных вариантов нецензурные слова. На результат выдачи также можно повлиять, массово предлагая некий, в том числе заведомо неверный вариант перевода.

Google Переводчик предлагает перевод с любого поддерживаемого языка на любой поддерживаемый, но в большинстве случаев реально выполняет перевод через английский. Иногда качество от этого сильно страдает. Например, при переводе с польского на русский обычно нарушаются падежи (даже когда они в русском и польском одинаковы). Есть также языки, которые проходят двойной процесс обработки перевода сначала через близко-родственный язык, потом через английский.

Постановка задачи

Необходимо разработать приложение переводчик на основе Яндекс API. Для выполнения данной задачи необходимо разработать методы и функции по непосредственному взаимодействию пользователя с приложением. Стоит задача разработки следующих методов: получение списка поддерживаемых языков, перевод текста по выбранным языкам, добавление перевода в избранное. Подробное описание требований приведено в техническом задании в приложении А.

Целью данной работы было освоение основ работы с REST API, разработки под Android. Для реализации этой цели были поставлены следующие задачи:

· запрос списка поддерживаемых языков;

· кэширование списка поддерживаемых языков;

· перевод текста;

· добавление перевода в избранное;

· удаление перевода из избранного;

· поиск по избранному.

Наши рекомендации