Разработка основных модулей приложения 7
КУРСОВАЯ РАБОТА
По дисциплине «Программирование в компьютерных системах»
Разработка Android приложение “Я Переводчик”
Подготовил:
Студент 3-го курса группы П-35
Шемягин С.О
Проверил:
Преподаватель
Милютина С.Н
СОДЕРЖАНИЕ:
Введение и область применения3
1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ3
2. ОПИСАНИЕ И ОБОСНОВАНИЕ 4
2.1 Выбор технологии разработки приложения 4-7
РАЗРАБОТКА ОСНОВНЫХ МОДУЛЕЙ ПРИЛОЖЕНИЯ 7
3.1 Модуль работы с сервисом перевода текста 8-10
3.2 Модуль работы с сервисом словаря 10-12
3.3 Модуль работы с базой данных 12-16
4 РАЗРАБОТКА ОСНОВНОГО ФУНКЦИОНАЛА16-27
ЗАКЛЮЧЕНИЕ 28
СПИСОК ЛИТЕРАТУРЫ 29
Введение
Передо мной стояла задача разработать Android приложение “Я Переводчик” с возможностью онлайн и офлайн перевода текста, показа словаря, а также возможностью добавление переводов в избранное.
Приложение выступало в качестве тестового задания для проекта “Яндекс Мобилизация”.
Область применения.
Приложение позволяет преодолеть языковой барьер. Имеет возможность перевода любого текста на 51 доступный язык, включая “Урду, Хинди, Коса, Каталанский” языки. Может показать словарь с любыми похожими словами на большинстве языков.
Техническое Задание
Необходимо создать приложение для Android на языке Java. Оно должно обладать такой минимальной функциональностью:
· Поле для ввода текста, который будет переведён на другой язык; переключатель языка и варианты перевода, которые появляются, когда пользователь вводит текст в поле.
· Возможность добавить переведённое слово или предложение в избранное.
· Возможность просмотра истории переводов.
· Возможность просмотра избранного.
· Перевод с одного языка на другой с помощью API Яндекс.Переводчика.
· Чтобы вам было легче, мы подготовили примерный вид экранов тестового приложения:
Приложение желательно должно иметь:
· общую плавность и отзывчивость интерфейса, красивую анимацию,
· понятный интерфейс — чтобы перед использованием приложения не приходилось читать инструкции.
· отсутствие «падений» и непредусмотренного поведения приложения при выполнении основных действий
- обработку ошибок,
- кэширование (например, можно научить приложение сохранять предыдущий ответ сервера),
- комментарии в коде
Описание и обоснование
2.1 Выбор технологии разработки приложение
В данном приложении должный выполняться сетевые запросы. В качестве библиотеки для сетевых запросов использовалась библиотека Volley от Google.
Volley - это библиотека HTTP, которая делает работу в сети для приложений Android проще, а главное, быстрее.
Volley предлагает следующие преимущества:
· Автоматическое планирование сетевых запросов.
· Несколько одновременных сетевых подключений.
· Кэширование ответов на диски и память со стандартной связностью кеша HTTP.
· Поддержка приоритетов запросов.
· API-запрос отмены. Вы можете отменить один запрос, или вы можете установить блоки или области запросов для отмены.
· Простота настройки, например, для повтора и задержки.
· Сильный порядок, который упрощает правильное заполнение пользовательского интерфейса данными, извлекаемыми из сети асинхронно.
· Средства отладки и трассировки.
Volley легко интегрируется с любым протоколом и поставляется в комплекте с поддержкой необработанных строк, изображений и JSON.
Предоставляя встроенную поддержку необходимых вам функций, Volley освобождает вас от написания кода шаблона и позволяет сконцентрироваться на логике, характерной для вашего приложения.
Пример GET запроса через библиотеку Volley:
RequestQueue queue = Volley.newRequestQueue(context); /** Новый запрос */
queue.cancelAll(new RequestQueue.RequestFilter() { //Stop all request
@Override
public boolean apply(Request<?> request) {
return true;
}
}); /** Отмена всех запросов */
String url = String.format("https://translate.yandex.net/api/v1.5/tr.json/translate?key=%s&text=%s&lang=%s"
,apiKey, Uri.encode(text),lang); /** Создание URL запроса */
Log.d("tran","Request URL: " + url);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,callback,errorCallback);
queue.add(stringRequest); /** Добавление в очередь */
Разрабатывая приложение под ОС Android стоит учитывать тот факт, что не все функции могут работать на более старых версиях системы.
Для решения этой проблемы, корпорация Google разработала специальную библиотеку Support Library
Support Library – библиотека, которая на старых версиях Android делает доступными возможности новых версий.
Например, фрагменты появились только в третьей версии (API Level 11). Если вы хотите использовать их в своем приложении, это приложение не будет работать на более старых версиях Android, т.к. эти старые версии никогда не слышали про класс android.app.Fragment. Какие тут есть выходы?
1) Добавить в код проверку версии системы и в зависимости от результата выполнять тот или иной код. Т.е. если версия 11 и выше, используем фрагменты, иначе Activity. Вполне выполнимо, но не совсем просто. Можно ошибиться и запутаться. Т.е. при запуске приложения на старых версиях приходится либо отказываться от новшеств и пользоваться тем, что есть, либо изобретать велосипед и реализовывать новшества самому.
2) Можно опустить старые версии и позиционировать свое приложение только для новых версий. Тогда теряется ощутимая часть потенциальных пользователей вашей программы. На момент написания этого материала на версии Android ниже третьей сидит 69,7% пользователей. Ощутимая такая потеря получится - больше, чем две трети! Конечно, со временем все перейдут на третью и последующие версии, и смогут использовать ваше приложение. Но к тому времени выйдут новые версии Android с новыми возможностями, вы их реализуете в своем приложении и, тем самым, снова отсеете часть пользователей. В общем, вырисовывается постоянная дискриминация пользователей по версии.
3) Использовать библиотеку Support Library. Она содержит классы - аналоги новшеств последних версий, которые будут работать на старых версиях.
Среда разработки приложения Android Studio — это интегрированная среда разработки (IDE) для работы с платформой Android, анонсированная 16 мая 2013 года на конференции Google I/O.
Особенности:
· Расширенный редактор макетов: WYSIWYG, способность работать с UI компонентами при помощи Drag-and-Drop, функция предпросмотра макета на нескольких конфигурациях экрана.
· Сборка приложений, основанная на Gradle.
· Различные виды сборок и генерация нескольких. apk файлов
· Рефакторинг кода
· Статический анализатор кода (Lint), позволяющий находить проблемы производительности, несовместимости версий и другое.
· Встроенный ProGuard и утилита для подписывания приложений.
· Шаблоны основных макетов и компонентов Android.
· Поддержка разработки приложений для Android Wear и Android TV[6].
· Встроенная поддержка Google Cloud Platform, которая включает в себя интеграцию с сервисами Google Cloud Messaging и App Engine.
· Android Studio 2.1 поддерживает Android N Preview SDK, а это значит, что разработчики смогут начать работу по созданию приложения для новой программной платформы.
· Новая версия Android Studio 2.1 способна работать с обновленным компилятором Jack, а также получила улучшенную поддержку Java 8 и усовершенствованную функцию Instant Run.
· Platform-tools 23.1.0 для Linux без объявления стала исключительно 64-разрядной, даже при попытке установить 32-разрядную версию. Иными словами, Android Studio больше НЕ работает (выдаёт неустранимые ошибки) в 32-разрядных версиях Linux.
· В Android Studio 3.0 будут по стандарту включены инструменты языка Kotlin основанные на JetBrains IDE
Заключение
Мною было разработано полноценное приложение в точности по ТЗ имеющее полный функционал переводчика включая:
1. Онлайн/оффлайн перевод текста
2. Показа словаря
3. История и избранные переводы
В качестве референса для дизайна использовалось официальное приложение Yandex Переводчик.
Также использовались технологии API Yandex Translate и API Yandex Dictionary через которые был реализован перевод текста и показ словаря.
Для сетевых запросов использовалась библиотека Volley.
Поддержка старых версий ОС Android реализована через библиотеку Support Library
Список литературы
1. IDE Android Studio -https://ru.wikipedia.org/wiki/Android_Studio
2. Сервис перевода текста API Yandex Translate - https://tech.yandex.ru/translate/
3. Yandex Mobilization - https://academy.yandex.ru/events/mobdev/msk-2017/
4. Сервис словаря API Yandex Dictionary - https://tech.yandex.ru/dictionary/
5. Библиотека сетевых запросов Volley - https://developer.android.com/training/volley/index.html
6. Фрагменты в ОС Android - https://developer.android.com/guide/components/fragments.html?hl=ru
КУРСОВАЯ РАБОТА
По дисциплине «Программирование в компьютерных системах»
Разработка Android приложение “Я Переводчик”
Подготовил:
Студент 3-го курса группы П-35
Шемягин С.О
Проверил:
Преподаватель
Милютина С.Н
СОДЕРЖАНИЕ:
Введение и область применения3
1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ3
2. ОПИСАНИЕ И ОБОСНОВАНИЕ 4
2.1 Выбор технологии разработки приложения 4-7
РАЗРАБОТКА ОСНОВНЫХ МОДУЛЕЙ ПРИЛОЖЕНИЯ 7
3.1 Модуль работы с сервисом перевода текста 8-10
3.2 Модуль работы с сервисом словаря 10-12
3.3 Модуль работы с базой данных 12-16
4 РАЗРАБОТКА ОСНОВНОГО ФУНКЦИОНАЛА16-27
ЗАКЛЮЧЕНИЕ 28
СПИСОК ЛИТЕРАТУРЫ 29
Введение
Передо мной стояла задача разработать Android приложение “Я Переводчик” с возможностью онлайн и офлайн перевода текста, показа словаря, а также возможностью добавление переводов в избранное.
Приложение выступало в качестве тестового задания для проекта “Яндекс Мобилизация”.
Область применения.
Приложение позволяет преодолеть языковой барьер. Имеет возможность перевода любого текста на 51 доступный язык, включая “Урду, Хинди, Коса, Каталанский” языки. Может показать словарь с любыми похожими словами на большинстве языков.
Техническое Задание
Необходимо создать приложение для Android на языке Java. Оно должно обладать такой минимальной функциональностью:
· Поле для ввода текста, который будет переведён на другой язык; переключатель языка и варианты перевода, которые появляются, когда пользователь вводит текст в поле.
· Возможность добавить переведённое слово или предложение в избранное.
· Возможность просмотра истории переводов.
· Возможность просмотра избранного.
· Перевод с одного языка на другой с помощью API Яндекс.Переводчика.
· Чтобы вам было легче, мы подготовили примерный вид экранов тестового приложения:
Приложение желательно должно иметь:
· общую плавность и отзывчивость интерфейса, красивую анимацию,
· понятный интерфейс — чтобы перед использованием приложения не приходилось читать инструкции.
· отсутствие «падений» и непредусмотренного поведения приложения при выполнении основных действий
- обработку ошибок,
- кэширование (например, можно научить приложение сохранять предыдущий ответ сервера),
- комментарии в коде
Описание и обоснование
2.1 Выбор технологии разработки приложение
В данном приложении должный выполняться сетевые запросы. В качестве библиотеки для сетевых запросов использовалась библиотека Volley от Google.
Volley - это библиотека HTTP, которая делает работу в сети для приложений Android проще, а главное, быстрее.
Volley предлагает следующие преимущества:
· Автоматическое планирование сетевых запросов.
· Несколько одновременных сетевых подключений.
· Кэширование ответов на диски и память со стандартной связностью кеша HTTP.
· Поддержка приоритетов запросов.
· API-запрос отмены. Вы можете отменить один запрос, или вы можете установить блоки или области запросов для отмены.
· Простота настройки, например, для повтора и задержки.
· Сильный порядок, который упрощает правильное заполнение пользовательского интерфейса данными, извлекаемыми из сети асинхронно.
· Средства отладки и трассировки.
Volley легко интегрируется с любым протоколом и поставляется в комплекте с поддержкой необработанных строк, изображений и JSON.
Предоставляя встроенную поддержку необходимых вам функций, Volley освобождает вас от написания кода шаблона и позволяет сконцентрироваться на логике, характерной для вашего приложения.
Пример GET запроса через библиотеку Volley:
RequestQueue queue = Volley.newRequestQueue(context); /** Новый запрос */
queue.cancelAll(new RequestQueue.RequestFilter() { //Stop all request
@Override
public boolean apply(Request<?> request) {
return true;
}
}); /** Отмена всех запросов */
String url = String.format("https://translate.yandex.net/api/v1.5/tr.json/translate?key=%s&text=%s&lang=%s"
,apiKey, Uri.encode(text),lang); /** Создание URL запроса */
Log.d("tran","Request URL: " + url);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,callback,errorCallback);
queue.add(stringRequest); /** Добавление в очередь */
Разрабатывая приложение под ОС Android стоит учитывать тот факт, что не все функции могут работать на более старых версиях системы.
Для решения этой проблемы, корпорация Google разработала специальную библиотеку Support Library
Support Library – библиотека, которая на старых версиях Android делает доступными возможности новых версий.
Например, фрагменты появились только в третьей версии (API Level 11). Если вы хотите использовать их в своем приложении, это приложение не будет работать на более старых версиях Android, т.к. эти старые версии никогда не слышали про класс android.app.Fragment. Какие тут есть выходы?
1) Добавить в код проверку версии системы и в зависимости от результата выполнять тот или иной код. Т.е. если версия 11 и выше, используем фрагменты, иначе Activity. Вполне выполнимо, но не совсем просто. Можно ошибиться и запутаться. Т.е. при запуске приложения на старых версиях приходится либо отказываться от новшеств и пользоваться тем, что есть, либо изобретать велосипед и реализовывать новшества самому.
2) Можно опустить старые версии и позиционировать свое приложение только для новых версий. Тогда теряется ощутимая часть потенциальных пользователей вашей программы. На момент написания этого материала на версии Android ниже третьей сидит 69,7% пользователей. Ощутимая такая потеря получится - больше, чем две трети! Конечно, со временем все перейдут на третью и последующие версии, и смогут использовать ваше приложение. Но к тому времени выйдут новые версии Android с новыми возможностями, вы их реализуете в своем приложении и, тем самым, снова отсеете часть пользователей. В общем, вырисовывается постоянная дискриминация пользователей по версии.
3) Использовать библиотеку Support Library. Она содержит классы - аналоги новшеств последних версий, которые будут работать на старых версиях.
Среда разработки приложения Android Studio — это интегрированная среда разработки (IDE) для работы с платформой Android, анонсированная 16 мая 2013 года на конференции Google I/O.
Особенности:
· Расширенный редактор макетов: WYSIWYG, способность работать с UI компонентами при помощи Drag-and-Drop, функция предпросмотра макета на нескольких конфигурациях экрана.
· Сборка приложений, основанная на Gradle.
· Различные виды сборок и генерация нескольких. apk файлов
· Рефакторинг кода
· Статический анализатор кода (Lint), позволяющий находить проблемы производительности, несовместимости версий и другое.
· Встроенный ProGuard и утилита для подписывания приложений.
· Шаблоны основных макетов и компонентов Android.
· Поддержка разработки приложений для Android Wear и Android TV[6].
· Встроенная поддержка Google Cloud Platform, которая включает в себя интеграцию с сервисами Google Cloud Messaging и App Engine.
· Android Studio 2.1 поддерживает Android N Preview SDK, а это значит, что разработчики смогут начать работу по созданию приложения для новой программной платформы.
· Новая версия Android Studio 2.1 способна работать с обновленным компилятором Jack, а также получила улучшенную поддержку Java 8 и усовершенствованную функцию Instant Run.
· Platform-tools 23.1.0 для Linux без объявления стала исключительно 64-разрядной, даже при попытке установить 32-разрядную версию. Иными словами, Android Studio больше НЕ работает (выдаёт неустранимые ошибки) в 32-разрядных версиях Linux.
· В Android Studio 3.0 будут по стандарту включены инструменты языка Kotlin основанные на JetBrains IDE