Найти тему

Разработка образовательного мобильного приложения для Восточной Африки

Оглавление
Сергей Курдюк - CTO
Сергей Курдюк - CTO

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

Итак, задача - создать гибкую платформу мобильного обучения для предоставления образовательных приложений в Восточной Африке.

Проект: Мобильный фреймворк для создания автономных образовательных приложений

Продолжительность: один год, постоянно

Технологии: Kotlin, Swift, Node.js , Ruby on Rails

Целевая аудитория: Пользователи мобильных приложений, заинтересованные в обучении

Заказчик - некоммерческая организация, изучающая инновационные способы создания долгосрочных положительных изменений в уровне образования в регионе Восточной Африки. Если быть точнее, компания стремится поднять уровень грамотности в регионе - на данный момент только 40% людей умеют читать.

Предыстория

Когда Заказчик обратился к нам, он уже запустил свою первую версию образовательного приложения для мобильных устройств на платформах Android и iOS. Это был быстрый и увлекательный способ изучения сомалийского языка. Однако у приложения было несколько технических проблем, и, в целом, Заказчик хотел создать не просто приложение, а платформу для разработки аналогичных образовательных инструментов по различным предметам.

Запрос

Клиент искал партнера, обладающего опытом в создании масштабируемых мобильных решений. Команда требовала, чтобы приложение было легко расширяемым различными функциями и адаптировано к различным областям обучения, поскольку предыдущий разработчик программного обеспечения не обладал таким опытом. Компания хотела разработать комплексную платформу для авторов, позволяющую быстро и эффективно создавать новые курсы и приложения. Таким образом, Заказчик обратился к нам с просьбой улучшить существующее приложение и создать подходящую платформу для будущих мобильных обучающих приложений.

Процесс

1. Редизайн модуля аналитики

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

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

В разгар планирования разработки приложений для других предметов с Заказчиком мы пришли к выводу, что оптимально будет создать фреймворк, позволяющий легко создавать приложение, используя общие элементы, которые есть в каждом приложении: курсы, модули, темы, уроки, тесты, виды деятельности, бюджеты, пользовательский интерфейс и т.д.

Задача состояла в том, чтобы разработать базовое приложение, которое можно было бы расширить. Поскольку мы полагались на принципы Agile, каждая функция внедрялась итеративно, чтобы посмотреть, как она будет работать с пользователями. Было трудно предсказать, какие функции придется добавлять в будущем, поэтому крайне важно сохранять гибкость. Кроме того, мы должны были построить архитектуру приложения таким образом, чтобы можно было добавлять или удалять функциональные модули проекта в зависимости от их использования в конкретном решении.

3. Внедрение платформы мобильного обучения в соответствии с лучшими практиками TDD

Благодаря современному Android SDK мы предложили и внедрили высоко модульную архитектуру, в которой каждая функция может быть легко включена или исключена из приложения. Это также позволяет нам тестировать каждую функцию отдельно и работать с использованием принципов TDD, чтобы гарантировать, что платформа остается стабильной и модульной.

Мы использовали JUnit и Espresso framework для автотестирования и охватили функции тестовыми примерами для ручного тестирования. Кроме того, мы использовали инструменты CI / CD из Android SDK и GitLab, чтобы сократить время и усилия на разработку.

4. Agile управление проектами на основе отзывов пользователей

Мы использовали Agile, чтобы уделять больше внимания конкретным потребностям клиентов. Кроме того, это позволяет нам использовать возможности, предоставляемые процессом CustDev. Мы связались с конечными пользователями, авторами курсов и заинтересованными сторонами, чтобы создать приложение, позволяющее эффективно обучать целевую аудиторию.

Проблемы

Когда мы создавали платформу мобильного обучения, наша команда столкнулась с проблемами, которые требовали особого внимания.

Во-первых, приложение должно было иметь возможность работать и обновляться “в автономном режиме” из-за отсутствия или большой стоимости Интернета. Поэтому обычное взаимодействие на стороне сервера не подходило для этой задачи. После нескольких обсуждений мы пришли к подходу, который позволяет приложению работать, обновляться и даже собирать аналитику в автономном режиме.

Еще одной большой проблемой при разработке была поддержка согласованности продукта в условиях постоянного изменения бизнес-требований. В таком сценарии потребовалось дополнительное время для поддержки архитектуры модуля и процесса TDD. Поскольку это обычный компромисс в гибком стиле разработки, мы использовали наш опыт, чтобы минимизировать потери.

Результат

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

Поскольку Заказчик в настоящее время ориентирован на пользователей Android из-за того, что 98% целевой аудитории имеют телефоны с этой операционной системой, мы разработали эту версию приложения исключительно для Android.

Социальный эффект приложения был ощутимым. В общей сложности приложением воспользовались 100 000 пользователей, и более 10 000 успешно выучили сомалийский язык. Мы уверены, что все больше и больше людей будут использовать эту возможность для обучения, и наше приложение будет продолжать оказывать влияние не только на одного человека, но и на целые регионы.

Часть команды United Developers
Часть команды United Developers

Что дальше?

Мы продолжаем работать с проектом образовательного приложения, и у нас постоянно появляются новые аспекты для работы и улучшения. Наша команда с энтузиазмом относится к этому и планирует:

  1. Протестировать и добавить новые курсы по таким предметам, как английский, естественные науки и математика
  2. Сделать приложение еще более интерактивным и интересным с помощью обучения на основе сценариев, геймификации и постановки целей обучения.

#case #androiddevelopment #developer #softwaredevelopment #кейс #программист #программирование #разработкамобильныхприложений #разработкаприложений #разработка