Английский язык один из самых востребованных языков в мире. В наши дни он является международным языков. С помощью английского можно общаться с иностранцами, путешествовать, читать популярную литературу, поскольку весь мир потихоньку стремиться к изучению этого языка. Даже в сфере It всё больше и больше внимания уделяется именно этому пункту. Ведь документацию полную точно можно прочесть на английском, общаться с представителями международных компаний, с сотрудниками, которые, скорее всего, уже знают английский. Даже русские It-шники пишут коммиты в системах контроля версий на данном языке, ведь важно, чтобы твой код мог прочесть любой. Это уже не говоря о названиях сущностей, которые, естественно, тоже на английском: классы, функции, переменные и прочее. Знание языка делает адаптацию в отрасли гораздо легче. Даёт преимущество человеку, ведь перед ним открыты врата знаний.
А для изучения языка и пишутся приложения на телефоне, об этом и поговорим далее. За пример возьмём реализацию приложения [1].
Для начала определяем задачи при разработке приложения: выявление требований к приложению, анализ существующих решений, выбор методов и алгоритмов решений, создание визуального прототипа, анализ и разработка архитектуры приложения и, наконец, разработка технической документации.
Далее сравниваем лидеров в данном рынке: приложения от Duolingo и от Lingualeo.
На основе анализа выявлены следующие ключевые факторы их популярности: авторизация через Google, прохождения вступительного теста на уровень владения языком, прохождения уроков, соответствующих Вашему уровню английского, уведомления с напоминаниями о прохождении урока, вознаграждение за прохождение уроков, покупка вещей за внутриигровую валюту, офлайн доступ к приложению, анализ скорости усвоения материала пользователем и привязка игровых элементов к изучаемой теме. На основе этих факторов и была выстроена логика работы приложения. На рисунке 1 продемонстрирован use case.
Рис. 1. Основные сценарии использования приложения
При реализации выбрали архитектуру как на рисунке 2.
Рис. 2. Архитектура приложения
Код написан на языке Kotlin и представляет собой Model-View-ViewModel(MVVM) паттерн, что типичен для подобного рода логике [2].
Описание пользовательского интерфейса на рисунке 3.
Рис. 3. Прототип пользовательского интерфейса приложения
В зависимости от скорости усвоения материала будет предложена возможность повторить урок или перейти на следующий уровень.
Рис. 4. Прогресс успеваемости пользователя
В дальнейшем можно добавить функционал интерактива между пользователями, чат, общение, соревнования или даже формат звонков.
Основные задачи приложение выполняет благодаря грамотно выстроенной архитектуре, поставленным целям и алгоритму работы. При этом с минимальными затратами приложение будет работать в течение очень долго времени. Направление является очень востребованным и перспективным, можно усложнять и развивать сколько угодно и дальше будет пользоваться спросом.