Нужно было увеличить вовлеченность пользователей приложения для инвестиций.
Заказчик хотел добавить маркетинговый контент, чтобы упростить работу с инвестициями и удержать пользователей в приложении, где они могли бы следить за новостями компаний и за ситуацией на бирже в целом.
Внедрили обучающий и новостной контент в формате сторис. Такой формат позволяет быстро и удобно переключаться между материалами.
Создали специальные информационные секции с обновляющимися данными: рейтингами, статистикой, котировками и другой информацией.
Для клиентов важна безопасность и конфиденциальность процесса разработки, поэтому для работы над проектом нам выдали личные доступы к инфраструктуре заказчика. Проект закрытый и целиком нацелен на индийский рынок — для регистрации в приложении нужен индийский номер телефона.
Обсудили с заказчиком задачи, прописали техзадание и приступили к разработке.
Тесно работали с командой клиента. Ежедневно созванивались, чтобы обсудить все вопросы совместно с другими командами разработчиков Upstox. Общались в общем канале в Slack.
Для UI/UX-дизайна у Upstox была своя команда, а наша задача заключалась во внедрении контента в мобильные приложения.
Разработка велась на языках Kotlin и Swift для Android и iOS соответственно. У каждой версии были особенности разработки, которые мы должны были учитывать.
В версии приложения для iOS нам нужно было сверстать экраны с помощью кода, не используя визуальный Interface Builder. Мы использовали общую для всего проекта UI-библиотеку клиента. Изредка добавляли кастомные компоненты, когда стандартные не подходили для выбранного дизайна. Поначалу казалось, что верстка кодом — трата времени. Но в процессе мы хорошо оценили этот способ работы. Добавление новых фич шло медленнее, так как код приходилось внедрять в каждый экран. Зато сразу несколько команд могли работать над своими задачами, не боясь задеть другие части проекта.
Обе версии приложения по решению заказчика были сделаны по принципу Clean Architecture в комбинации с MVVM. Это «слоеный» тип архитектуры, в центре которого лежит изолированное ядро с бизнес-логикой, а уже вокруг него строятся интерфейсы и базы данных. Основной принцип такой логики заключается в том, что все зависимости идут строго из внешних кругов во внутренние. Это увеличивает объем кода, но позволяет использовать готовое независимое ядро в любом другом проекте с такой же архитектурой.
Еще мы совместно работали с бэкенд-командой над API для интеграции фронтенда с бэкендом, а также — с фронтенд-командой веб-версии приложения. Это помогало каждой команде быстрее и качественнее выполнить свою работу.
Все команды участвовали в обсуждении решений. Например, кто-то предлагал фичу, мы рассказывали, как она будет выглядеть с технической точки зрения, а отдел дизайна смотрел, насколько это следует общей концепции проекта. После чего свое мнение высказывала команда бэкенда: какой вид контента проще менеджить.
Верстка сторис для приложения. Изначально клиент ориентировался на сторис в Instagram. В них много разных элементов: реакции на жесты, автопереходы между экранами, прогресс-бары. Но заказчик решил внедрять в контент видео с YouTube, а не с собственных серверов.
С точки зрения управления контентом это гораздо удобнее: не нужны свои серверы или сложный интерфейс загрузки — это все делает за тебя YouTube. У этого есть и обратная сторона: видео с YouTube можно проигрывать только в плеере YouTube, а у него есть ограничения. Плеер YouTube всегда должен работать на переднем плане, иначе видео ставится на паузу. Это не позволяет одновременно взаимодействовать с интерфейсом и смотреть видео.
Мы несколько уменьшили область проигрывания видео и зарезервировали отдельное место для элементов навигации и информации. Это позволило использовать элементы управления, даже когда они не на переднем плане.
“В этом проекте хорошая документация: спецификации по архитектуре, оформлению кода, существующим API. Мы были рады такому высокому уровню поддержания документации. Это нам очень помогало во многих моментах, было удобно работать. Кода много, но он унифицированный, легко читаемый и легко поддерживаемый благодаря тому, что он соответствует изначальной архитектуре.
Документирование, конечно, забирает время, часто это откладывают на потом или вообще на это «забивают». Но в больших проектах важно, чтобы документация была в порядке. Это в разы ускоряет вхождение команды в проект и прохождение код-ревью. Работая с Upstox, мы еще раз убедились в этом.”
Backend
Мобильное приложение
Внедрили маркетинговый контент в приложение в виде сторис с обучающими или новостными материалами, в том числе видео. Также сверстали в приложении динамические информационные секции, где клиент видит биржевые рейтинги и котировки, которые обновляются в реальном времени.
С нашей стороны мы выполнили все работы и передали проект заказчику.
Маркетинговый контент выводится в формате сторис с ручным управлением (свайпы, тапы и прочие действия). В сторис проигрывается видео с YouTube.