Клиент
«Ведомости» — издание АО «Бизнес Ньюс Медиа». Одно из ведущих деловых медиа в России, выходит в печатном и цифровом формате. Основной сегмент аудитории издания составляют топ-менеджеры и владельцы бизнеса.
Задачи
- Разработать кроссплатформенное мобильное приложение «Ведомости» для iOS, Android, ОС Аврора.
- Реализовать быстрый доступ к новостям и выпускам газеты, включая офлайн-режим, с одинаковым опытом на всех платформах.
- Добавить способы оплаты подписки, доступные пользователям в России, альтернативные тем, что предлагают Google Play и App Store.
- Сделать приложение надежным и безопасным: защитить данные (HTTPS, обфускация кода), предусмотреть поддержку высокой нагрузки.
- Синхронизировать контент с веб-версией.
- Создать систему компонентов по атомарному принципу, обновить стиль под мобильные устройства, проработать экраны интерфейса для всех сценариев.
- Сохранить авторизацию пользователей при переходе со старого нативного приложения на новое кроссплатформенное.
Решения
Первое СМИ на Авроре
Приложение «Ведомости» стало первым СМИ в магазине приложений RuStore на Авроре. Это позволило изданию охватить аудиторию, которая использует устройства на российской операционной системе, например, из-за ограничений на работе в государственных структурах.
Тихое обновление
Раньше у «Ведомостей» было два отдельных нативных приложения, для Android и iOS. Новое кроссплатформенное вышло в сторах как обновление старых версий. Чтобы после обновления пользователям не пришлось снова входить в аккаунт, достали токены из защищенных хранилищ предыдущих приложений и переформатировали их. Авторизация осталась на месте.
Бесконечная лента и офлайн-режим
Использовали один API с веб-версией, чтобы контент обновлялся одновременно и выглядел одинаково во всех каналах. Для новостей сделали обновление через WebSocket. Как только выходит новая публикация, она сама появляется в ленте без перезагрузки, а читатель видит уведомление и может ее сразу открыть. Новости и статьи подгружаются бесконечной лентой.
В приложении есть раздел «Газета» с архивом выпусков за 25 лет. Чтобы любой выпуск можно скачать и посмотреть офлайн, архив загружается на устройство и сохраняется локально. С точки зрения дизайна предусмотрели сценарий, чтобы пользователь видел, какие выпуски он загрузил, и мог ими управлять.
Функции приложения
Главные новости
На главной странице приложения наряду с основной лентой есть блок «Новости дня», чтобы ключевые события были на виду и не терялись среди множества второстепенных.
Персонализированная лента
Персонализированная лента — это экран, где пользователь видит новости по рубрикам, которые его интересуют, без лишнего шума. Каждая новость относится к определенной рубрике, по которой ее можно найти. Пользователь выбирает темы, и лента автоматически подбирает материалы только по ним.
Газета
«Газета» — отдельный раздел для печатных выпусков «Ведомостей». Доступ к нему открыт только подписчикам.
Свежий выпуск можно посмотреть онлайн или сохранить, чтобы читать без интернета. Пользователь выбирает номер и загружает его на устройство. В архив входят все материалы выпуска в формате JSON, а также изображения, поэтому в офлайне газета выглядит, как в приложении.
В разделе есть поиск по архиву и быстрый переход через нижнюю панель навигации.
Поиск
Подключились к бэкенду «Ведомостей», где уже была своя логика поиска, и адаптировали ее под приложение. Поиск работает при неточном вводе, учитывает опечатки и похожие по смыслу слова. В выдаче можно увидеть не только точные совпадения, но и популярные статьи, которые часто читают другие.
История сохраняется. Для тех, кто ищет что‑то конкретное, добавили фильтры по темам и рубрикам. В расширенном режиме можно посмотреть все материалы, где встречаются ключевые слова.
Работа с материалами
Новость или статью можно сохранить в «Избранное» и вернуться к ней позже, в том числе офлайн. Кнопка «Поделиться» позволяет быстро отправить ссылку в мессенджеры или соцсети. Каждая статья открывается на отдельной странице с полным текстом и мультимедиа.
Регистрация, профиль и настройки
Войти в приложение можно по email, ВКонтакте или Яндекс ID. В профиле можно управлять подпиской, редактировать персональные данные, настраивать уведомления и внешний вид.
Особенности разработки
Аналитика
Собрали и структурировали требования к приложению, создали верхнеуровневое описание функций, а затем детально расписали каждую из них. По ходу работы согласовывали разные варианты с заказчиком и фиксировали итоговые решения. В результате собрали полную спецификацию, которая стала рабочей базой для команды.
Кроссплатформенность
Выбрали кроссплатформенный фреймворк Flutter, чтобы использовать одну кодовую базу на всех платформах: iOS, Android, ОС Аврора. Подготовили отдельные сборки для каждой платформы с учетом требований магазинов приложений.
Безопасность
Передача данных защищена по HTTPS, а пиннинг сертификатов не дает подключиться к поддельному серверу. Код приложения при сборке запутан (обфусцирован), чтобы его нельзя было скопировать или разобрать.
Важные данные вроде токенов авторизации, ключей API, сведений о подписке и платежах шифруются. Приложение проверяет, что сборка и цифровая подпись не изменялись, и не запускается на рутованных или взломанных устройствах, где проще перехватить данные.
На экранах с конфиденциальной информацией нельзя сделать скриншот. Сборка и публикация полностью автоматизированы на стороне заказчика, приватные ключи и пароли не передаются разработчикам.
Дизайн
Создали систему компонентов по атомарному принципу, когда интерфейс собирается из небольших элементов, а эти элементы много раз переиспользуются. Прописали уровни: атомы, молекулы, организмы, чтобы команда могла без проблем масштабировать решения. Подготовили рекомендации по использованию для каждого элемента.
Стиль обновили, но сохранили узнаваемые элементы. Например, фирменный шрифт, характерную структуру и бежевый цвет. Предусмотрели темную тему. Во время чтения можно менять размер шрифта и переключать тему со светлой или темную и обратно, выделять фрагменты текста и делиться им прямо из статьи.
Синхронизация
Приложение и сайт работают на одном API, поэтому материалы появляются в них одновременно. Приложение поддерживает все форматы контента сайта: текст, фото, видео, подкасты, документы и интерактивные блоки.
С точки зрения дизайна сохранили основные элементы веб-версии и адаптировали их под мобильные устройства. Продумали универсальное отображение всех форматов: текста, фото, видео, документов, интерактивных материалов. Тексты верстаются гибко, фотографии открываются в полноэкранной галерее, видео встроены в статьи, а документы и интерактивы доступны в отдельных модулях с навигацией.
Оплата подписки
Реализовали встроенные покупки в приложении. В App Store они работают полноценно, а в Google Play доступны технически, но оплачивать из России сейчас невозможно.
Поэтому добавили оплату через сайт Ведомостей. Когда оформляешь подписку, приложение открывает страницу оплаты в браузере. Чтобы этот способ работал, подключили банк «Русский стандарт» с поддержкой СБП и других способов эквайринга.
Результаты
- Приложение доступно в Google Play, App Store, RuStore, RuStore на Авроре.
- «Ведомости» стали первым СМИ с мобильным приложением на ОС Аврора.
Планы
Продолжаем улучшать приложение и его функциональность, запланировали развитие рекламного блока и новых форматов монетизации.
Другие кейсы
Поток Инвестиции
Мобильное приложение для инвестиционной платформы
Магнит
Мобильное приложение для сотрудников розничной сети